X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLayout.h;h=1db9a23a386896ac0248fb08df98c33a34506154;hb=612109bb6e5e61ba3c3693696f329eac3a288b5b;hp=2601baad068a93186b654e6e46e104f1305a61e2;hpb=e90add4f152c9fa97480f75a70492dd2eaff1a1e;p=lyx.git diff --git a/src/Layout.h b/src/Layout.h index 2601baad06..1db9a23a38 100644 --- a/src/Layout.h +++ b/src/Layout.h @@ -14,6 +14,7 @@ #ifndef LAYOUT_H #define LAYOUT_H +#include "Encoding.h" #include "FontInfo.h" #include "LayoutEnums.h" #include "Spacing.h" @@ -73,7 +74,7 @@ public: /// void readSpacing(Lexer &); /// - docstring const & name() const { return name_; }; + docstring const & name() const { return name_; } /// void setName(docstring const & n) { name_ = n; } /// @@ -95,10 +96,10 @@ public: docstring const & preamble() const { return preamble_; } /// Get language dependent macro definitions needed for this layout /// for language \p lang - docstring const langpreamble(Language const * lang) const; + docstring const langpreamble(Language const * lang, Encoding const & enc, bool const polyglossia) const; /// Get language and babel dependent macro definitions needed for /// this layout for language \p lang - docstring const babelpreamble(Language const * lang) const; + docstring const babelpreamble(Language const * lang, Encoding const & enc, bool const polyglossia) const; /// std::set const & requires() const { return requires_; } /// @@ -122,12 +123,16 @@ public: /// std::string const & htmllabelattr() const; /// + std::string defaultCSSClass() const; + /// bool htmllabelfirst() const { return htmllabelfirst_; } /// docstring htmlstyle() const; /// docstring const & htmlpreamble() const { return htmlpreamble_; } /// + bool htmltitle() const { return htmltitle_; } + /// bool isParagraph() const { return latextype == LATEX_PARAGRAPH; } /// bool isCommand() const { return latextype == LATEX_COMMAND; } @@ -210,10 +215,6 @@ public: /// MarginType margintype; /// - bool fill_top; - /// - bool fill_bottom; - /// bool newline_allowed; /// bool nextnoindent; @@ -221,6 +222,8 @@ public: bool free_spacing; /// bool pass_thru; + /// + bool parbreak_is_newline; /// show this in toc int toclevel; /// special value of toclevel for non-section layouts @@ -235,10 +238,21 @@ public: LatexType latextype; /// Does this object belong in the title part of the document? bool intitle; - /// Does this layout allow for an optional parameter? - int optionalargs; + /// Is the content to go in the preamble rather than the body? + bool inpreamble; + /// Number of requried arguments for this command or environment + unsigned int reqargs; + /// Number of optional arguments for this command or environment + /// These MUST come at the beginning, so: + /// \cmd[opt1][opt2]{req1}{here is the text from LyX} + /// is fine. But: + /// \cmd[opt1]{req1}[opt2]{here is the text from LyX} + /// is not. + unsigned int optargs; /// Which counter to step docstring counter; + /// Prefix to use when creating labels + docstring refprefix; /// Depth of XML command int commanddepth; @@ -247,16 +261,17 @@ public: /// until it has proper support for the caption inset (JMarc) static Layout * forCaption(); + /// Is this spellchecked? + bool spellcheck; + private: /// generates the default CSS for this layout void makeDefaultCSS() const; /// - std::string defaultCSSClass() const; - /// - std::string defaultCSSItemClass() const { return to_utf8(name()) + "item"; } + std::string defaultCSSItemClass() const { return defaultCSSClass() + "_item"; } /// - std::string defaultCSSLabelClass() const { return to_utf8(name()) + "label"; } + std::string defaultCSSLabelClass() const { return defaultCSSClass() + "_label"; } /// Name of the layout/paragraph environment docstring name_; @@ -317,7 +332,7 @@ private: /// Note that when I said "environment", I meant it: This has no /// effect for LATEX_PARAGRAPH type layouts. mutable std::string htmlitemtag_; - /// Attributes for htmlitemtag_. Default is: class="layoutnameitem". + /// Attributes for htmlitemtag_. Default is: class="layoutname_item". mutable std::string htmlitemattr_; /// Tag for labels, of whatever sort. One use for this is in setting /// descriptions, in which case it would be: dt. Another use is to @@ -325,7 +340,7 @@ private: /// sections. Defaults to "span". /// If set to "NONE", this suppresses the printing of the label. mutable std::string htmllabeltag_; - /// Attributes for the label. Defaults to: class="layoutnamelabel". + /// Attributes for the label. Defaults to: class="layoutname_label". mutable std::string htmllabelattr_; /// Whether to put the label before the item, or within the item. /// I.e., do we have (true): @@ -340,11 +355,13 @@ private: /// has been given? Default is false. /// Note that the default CSS is output first, then the user CSS, so it is /// possible to override what one does not want. - bool htmlforcedefault_; + bool htmlforcecss_; /// A cache for the default style info so generated. mutable docstring htmldefaultstyle_; /// Any other info for the HTML header. docstring htmlpreamble_; + /// Whether this is the paragraph. + bool htmltitle_; /// calculating this is expensive, so we cache it. mutable std::string defaultcssclass_; /// This is the `category' for this layout. The following are