X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetLayout.h;h=9398e915822fc35b09f98dfb766e9a58cb228e7a;hb=9b530e59c2b74828f3a68f3bb7ee3dee0365cdc0;hp=673b4d26be13d482e808b43d128e52790f4e04c5;hpb=70899f0c154bed67e376080169f52e853bb9e9bd;p=lyx.git diff --git a/src/insets/InsetLayout.h b/src/insets/InsetLayout.h index 673b4d26be..9398e91582 100644 --- a/src/insets/InsetLayout.h +++ b/src/insets/InsetLayout.h @@ -15,6 +15,7 @@ #include "ColorCode.h" #include "FontInfo.h" +#include "Layout.h" #include "support/docstring.h" @@ -38,6 +39,7 @@ public: CONGLOMERATE, DEFAULT }; + /// enum InsetLyXType { NOLYXTYPE, CHARSTYLE, @@ -46,6 +48,7 @@ public: END, STANDARD }; + /// enum InsetLaTeXType { NOLATEXTYPE, COMMAND, @@ -55,58 +58,128 @@ public: /// bool read(Lexer & lexrc, TextClass const & tclass); /// - docstring name() const { return name_; }; + docstring name() const { return name_; } /// void setName(docstring const & n) { name_ = n; } /// - InsetLyXType lyxtype() const { return lyxtype_; }; + InsetLyXType lyxtype() const { return lyxtype_; } /// - docstring labelstring() const { return labelstring_; }; + docstring labelstring() const { return labelstring_; } /// - InsetDecoration decoration() const { return decoration_; }; + bool contentaslabel() const { return contentaslabel_; } /// - InsetLaTeXType latextype() const { return latextype_; }; + InsetDecoration decoration() const { return decoration_; } /// - std::string latexname() const { return latexname_; }; + InsetLaTeXType latextype() const { return latextype_; } /// - std::string latexparam() const { return latexparam_; }; + std::string latexname() const { return latexname_; } /// - FontInfo font() const { return font_; }; + std::string latexparam() const { return latexparam_; } /// - FontInfo labelfont() const { return labelfont_; }; + docstring leftdelim() const { return leftdelim_; } /// - ColorCode bgcolor() const { return bgcolor_; }; + docstring rightdelim() const { return rightdelim_; } /// - docstring preamble() const { return preamble_; }; - /// - std::string const & htmltag() const { return htmltag_; } - /// - std::string const & htmlattr() const { return htmlattr_; } - /// - docstring htmlstyle() const { return htmlstyle_; } + FontInfo font() const { return font_; } + /// + FontInfo labelfont() const { return labelfont_; } + /// + ColorCode bgcolor() const { return bgcolor_; } /// + Layout::LaTeXArgMap const & latexargs() const { return latexargs_; } + /// + Layout::LaTeXArgMap const & postcommandargs() const { return postcommandargs_; } + /// Returns latexargs() + postcommandargs(). + /// But note that it returns a *copy*, not a reference, so do not do + /// anything like: + /// Layout::LaTeXArgMap::iterator it = args().begin(); + /// Layout::LaTeXArgMap::iterator en = args().end(); + /// Those are iterators for different containers. + Layout::LaTeXArgMap args() const; + /// + unsigned int optArgs() const; + /// + unsigned int requiredArgs() const; + /// + docstring preamble() const { return preamble_; } + /// Get language dependent macro definitions needed for this inset + docstring const langpreamble() const { return langpreamble_; } + /// Get language and babel dependent macro definitions needed for + /// this inset + docstring const babelpreamble() const { return babelpreamble_; } + /// + docstring counter() const { return counter_; } + /// + docstring refprefix() const { return refprefix_; } + /// The tag enclosing all the material in this inset. Default is "span". + std::string const & htmltag() const; + /// Additional attributes for inclusion with the start tag. Default (if + /// a tag is provided) is: class="name". + std::string const & htmlattr() const; + /// Tag for individual paragraphs in the inset. Default is none. + std::string const & htmlinnertag() const { return htmlinnertag_; } + /// Attributes for that tag. Default (if a tag is provided) is: + /// class="name_inner". + std::string const & htmlinnerattr() const; + /// A label for this environment, possibly including a reference + /// to a counter. E.g., for footnote, it might be: + /// \arabic{footnote} + /// No default. + /// FIXME Could we get this from the layout? + std::string const & htmllabel() const { return htmllabel_; } + /// + inline std::string htmllabeltag() const { return "span"; } + /// + std::string htmllabelattr() const + { return "class=\"" + defaultCSSClass() + "_label\""; } + /// CSS associated with this inset. + docstring htmlstyle() const; + /// Additional material for the header. docstring htmlpreamble() const { return htmlpreamble_; } + /// Whether this inset represents a "block" of material, i.e., a set + /// of paragraphs of its own (true), or should be run into the previous + /// paragraph (false). Examples: + /// For branches, this is false. + /// For footnotes, this is true. + /// Defaults to true. + bool htmlisblock() const { return htmlisblock_; } /// - std::set requires() const { return requires_; }; + std::set requires() const { return requires_; } /// - bool isMultiPar() const { return multipar_; }; + bool isMultiPar() const { return multipar_; } /// bool forcePlainLayout() const { return forceplain_; } /// bool allowParagraphCustomization() const { return custompars_; } /// - bool isPassThru() const { return passthru_; }; + bool isPassThru() const { return passthru_; } + /// + bool parbreakIsNewline() const { return parbreakisnewline_; } + /// + bool isNeedProtect() const { return needprotect_; } + /// + bool isFreeSpacing() const { return freespacing_; } /// - bool isNeedProtect() const { return needprotect_; }; + bool isKeepEmpty() const { return keepempty_; } /// - bool isFreeSpacing() const { return freespacing_; }; + bool forceLTR() const { return forceltr_; } /// - bool isKeepEmpty() const { return keepempty_; }; + bool isInToc() const { return intoc_; } /// - bool isForceLtr() const { return forceltr_; }; + bool spellcheck() const { return spellcheck_; } /// - bool isInToc() const { return intoc_; }; + bool resetsFont() const { return resetsfont_; } + /// + bool isDisplay() const { return display_; } + /// + bool forcelocalfontswitch() const { return forcelocalfontswitch_; } private: + /// + void makeDefaultCSS() const; + /// + std::string defaultCSSClass() const; + /// + void readArgument(Lexer &); /// docstring name_; /** @@ -118,6 +191,8 @@ private: /// docstring labelstring_; /// + bool contentaslabel_; + /// InsetDecoration decoration_; /// InsetLaTeXType latextype_; @@ -126,22 +201,49 @@ private: /// std::string latexparam_; /// + docstring leftdelim_; + /// + docstring rightdelim_; + /// FontInfo font_; /// FontInfo labelfont_; /// ColorCode bgcolor_; /// + docstring counter_; + /// docstring preamble_; - /// - std::string htmltag_; - /// - std::string htmlattr_; - /// + /// Language dependent macro definitions needed for this inset + docstring langpreamble_; + /// Language and babel dependent macro definitions needed for this inset + docstring babelpreamble_; + /// + docstring refprefix_; + /// + mutable std::string htmltag_; + /// + mutable std::string htmlattr_; + /// + std::string htmlinnertag_; + /// + mutable std::string htmlinnerattr_; + /// + std::string htmllabel_; + /// docstring htmlstyle_; - /// + /// Cache for default CSS info for this inset. + mutable docstring htmldefaultstyle_; + /// Cache for default CSS class. + mutable std::string defaultcssclass_; + /// Whether to force generation of default CSS even if some is given. + /// False by default. + bool htmlforcecss_; + /// docstring htmlpreamble_; /// + bool htmlisblock_; + /// std::set requires_; /// bool multipar_; @@ -152,19 +254,34 @@ private: /// bool passthru_; /// - bool needprotect_; + bool parbreakisnewline_; /// bool freespacing_; /// bool keepempty_; /// bool forceltr_; + /// + bool needprotect_; /// should the contents be written to TOC strings? bool intoc_; + /// check spelling of this inset? + bool spellcheck_; + /// + bool resetsfont_; + /// + bool display_; + /// + bool forcelocalfontswitch_; + /// + Layout::LaTeXArgMap latexargs_; + /// + Layout::LaTeXArgMap postcommandargs_; }; /// InsetLayout::InsetLyXType translateLyXType(std::string const & str); +InsetLayout::InsetDecoration translateDecoration(std::string const & str); } // namespace lyx