X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLayout.h;h=0c0b4ae0ef89f29a88c3ffafa16b6474077ecb9d;hb=a4d9315bc49445e4419b3b59fd238a13c5f7be31;hp=102bab6abab71310932534c73f565cd3498d6deb;hpb=060c3de2f08b21fd2695a1b445d0b8f3d0ff9186;p=lyx.git diff --git a/src/Layout.h b/src/Layout.h index 102bab6aba..0c0b4ae0ef 100644 --- a/src/Layout.h +++ b/src/Layout.h @@ -26,7 +26,8 @@ namespace lyx { -class Lexer; +namespace support { class Lexer; } + class TextClass; /* Fixed labels are printed flushright, manual labels flushleft. @@ -58,23 +59,23 @@ public: void setUnknown(bool unknown) { unknown_ = unknown; } /// Reads a layout definition from file /// \return true on success. - bool read(Lexer &, TextClass const &, bool validating = false); + bool read(support::Lexer &, TextClass const &, bool validating = false); /// - void readAlign(Lexer &); + void readAlign(support::Lexer &); /// - void readAlignPossible(Lexer &); + void readAlignPossible(support::Lexer &); /// - void readLabelType(Lexer &); + void readLabelType(support::Lexer &); /// - void readEndLabelType(Lexer &); + void readEndLabelType(support::Lexer &); /// - void readMargin(Lexer &); + void readMargin(support::Lexer &); /// - void readLatexType(Lexer &); + void readLatexType(support::Lexer &); /// - void readSpacing(Lexer &); + void readSpacing(support::Lexer &); /// - void readArgument(Lexer &, bool); + void readArgument(support::Lexer &, bool); /// Write a layout definition in utf8 encoding void write(std::ostream &) const; /// @@ -89,7 +90,7 @@ public: std::string const & latexname() const { return latexname_; } /// std::string const & itemcommand() const { return itemcommand_; } - /// The arguments of this layout + /// One argument of this layout struct latexarg { docstring labelstring; docstring menustring; @@ -112,9 +113,16 @@ public: bool is_toc_caption = false; bool free_spacing = false; std::string newlinecmd; + /// The DocBook tag corresponding to this argument. docstring docbooktag; docstring docbooktagtype; docstring docbookattr; + /// Whether this argument should be output after the main tag (default: inside). The result if the argument + /// should be output both before and after the main tag is undefined. + bool docbookargumentbeforemaintag = false; + /// Whether this argument should be output before the main tag (default: inside). The result if the argument + /// should be output both before and after the main tag is undefined. + bool docbookargumentaftermaintag = false; }; /// typedef std::map LaTeXArgMap; @@ -176,7 +184,11 @@ public: /// std::string const & htmltag() const; /// - std::string const & htmlattr() const; + std::string const & htmlattr() const { return htmlattr_; } + /// + std::string const & htmlclass() const; + /// Returns a complete attribute string, including class, etc. + std::string const & htmlGetAttrString() const; /// std::string const & htmlitemtag() const; /// @@ -186,6 +198,8 @@ public: /// std::string const & htmllabelattr() const; /// + bool htmlintoc() const { return htmlintoc_; } + /// std::string defaultCSSClass() const; /// bool htmllabelfirst() const { return htmllabelfirst_; } @@ -250,6 +264,10 @@ public: /// std::string const & docbookforceabstracttag() const; /// + bool docbooknofontinside() const { return docbooknofontinside_; } + /// + bool docbookgeneratetitle() const { return docbookgeneratetitle_; } + /// bool isParagraph() const { return latextype == LATEX_PARAGRAPH; } /// bool isCommand() const { return latextype == LATEX_COMMAND; } @@ -267,13 +285,18 @@ public: bool labelIsInline() const { return labeltype == LABEL_STATIC || labeltype == LABEL_SENSITIVE - || labeltype == LABEL_ENUMERATE + || labeltype == LABEL_ENUMERATE || labeltype == LABEL_ITEMIZE; } bool labelIsAbove() const { return labeltype == LABEL_ABOVE || labeltype == LABEL_CENTERED - || labeltype == LABEL_BIBLIO; + || labeltype == LABEL_BIBLIO; + } + bool isNumHeadingLabelType() const { + return labeltype == LABEL_ABOVE + || labeltype == LABEL_CENTERED + || labeltype == LABEL_STATIC; } /// bool addToToc() const { return add_to_toc_; } @@ -399,11 +422,6 @@ public: /// Depth of XML command int commanddepth; - /// Return a pointer on a new layout suitable to describe a caption. - /// FIXME: remove this eventually. This is only for tex2lyx - /// until it has proper support for the caption inset (JMarc) - static Layout * forCaption(); - /// Is this spellchecked? bool spellcheck; /** @@ -422,7 +440,7 @@ public: private: /// Reads a layout definition from file /// \return true on success. - bool readIgnoreForcelocal(Lexer &, TextClass const &, bool validating); + bool readIgnoreForcelocal(support::Lexer &, TextClass const &, bool validating); /// generates the default CSS for this layout void makeDefaultCSS() const; /// @@ -485,9 +503,13 @@ private: /// /// Defaults to "div". mutable std::string htmltag_; - /// Additional attributes for inclusion with the start tag. Defaults - /// to: class="layoutname". - mutable std::string htmlattr_; + /// Additional attributes for inclusion with the start tag. + /// Note that the CSS class is handled separately. + std::string htmlattr_; + /// The CSS class to use. Calculated from the layout name if not given. + mutable std::string htmlclass_; + /// cached + mutable std::string htmlfullattrs_; /// Tag for individual paragraphs in an environment. In lists, this /// would be something like "li". But it also needs to be set for /// quotation, e.g., since the paragraphs in a quote need to be @@ -512,6 +534,8 @@ private: /// ... /// The latter is the default. bool htmllabelfirst_; + /// Is this to be output with the toc? + bool htmlintoc_; /// CSS information needed by this layout. docstring htmlstyle_; /// DocBook tag corresponding to this layout. @@ -566,12 +590,19 @@ private: bool docbooksection_; /// Whether this tag must/can/can't go into an tag (default: never, as it only makes sense for metadata). mutable std::string docbookininfo_; - /// Wehther this paragraph should be considered as abstract. + /// Whether this paragraph should be considered as abstract. Such paragraphs are output as a part of the document + /// abstract element (corresponding to the root tag). bool docbookabstract_; /// Whether this element (root or not) does not accept text without a section (i.e. the first text that is met /// in LyX must be considered as the abstract if this is true); this text must be output with the specific tag - /// held by this attribute + /// held by this attribute. mutable std::string docbookforceabstracttag_; + /// Whether font tags are allowed inside this tag. + bool docbooknofontinside_ = false; + /// Whether LyX should create a title on its own, just after the wrapper tag. Typically, this parameter is required + /// because the wrapper tag requires a title (like a figure). The generated title will be similar to a LyXHTML label + /// (environment type and a number). + bool docbookgeneratetitle_ = false; /// Should we generate the default CSS for this layout, even if HTMLStyle /// has been given? Default is false. /// Note that the default CSS is output first, then the user CSS, so it is