X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLayout.h;h=b02c5289be2a9f315b3c40dbca3197b0913a5a5e;hb=90f7007a2e6c78ffd031e4636ff909ab1bc2ddec;hp=e5de52df44c5fed23a465fe2eaf489328345aee4;hpb=08ba2b9b450f3b4f8a720a5a0fa59b186fe3d1af;p=lyx.git diff --git a/src/Layout.h b/src/Layout.h index e5de52df44..b02c5289be 100644 --- a/src/Layout.h +++ b/src/Layout.h @@ -14,18 +14,18 @@ #ifndef LAYOUT_H #define LAYOUT_H -#include "Encoding.h" #include "FontInfo.h" #include "LayoutEnums.h" #include "Spacing.h" +#include "support/debug.h" #include "support/docstring.h" +#include #include #include namespace lyx { -class Language; class Lexer; class TextClass; @@ -74,6 +74,8 @@ public: /// void readSpacing(Lexer &); /// + void readArgument(Lexer &); + /// docstring const & name() const { return name_; } /// void setName(docstring const & n) { name_ = n; } @@ -84,7 +86,38 @@ public: /// std::string const & latexname() const { return latexname_; } /// + std::string const & itemcommand() const { return itemcommand_; } + /// void setLatexName(std::string const & n) { latexname_ = n; } + /// The arguments of this layout + struct latexarg { + docstring labelstring; + docstring menustring; + bool mandatory; + docstring ldelim; + docstring rdelim; + docstring presetarg; + docstring tooltip; + std::string requires; + std::string decoration; + FontInfo font; + FontInfo labelfont; + bool autoinsert; + }; + /// + typedef std::map LaTeXArgMap; + /// + LaTeXArgMap args() const; + /// + LaTeXArgMap const & latexargs() const { return latexargs_; } + /// + LaTeXArgMap const & postcommandargs() const { return postcommandargs_; } + /// + LaTeXArgMap const & itemargs() const { return itemargs_; } + /// + int optArgs() const; + /// + int requiredArgs() const; /// docstring const & labelstring(bool in_appendix) const { return in_appendix ? labelstring_appendix_ : labelstring_; } @@ -96,15 +129,19 @@ 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, Encoding const & enc, bool const polyglossia, bool const unicode) const; + docstring const langpreamble() const { return langpreamble_; } /// Get language and babel dependent macro definitions needed for /// this layout for language \p lang - docstring const babelpreamble(Language const * lang, Encoding const & enc, bool const polyglossia, bool const unicode) const; + docstring const babelpreamble() const { return babelpreamble_; } /// std::set const & requires() const { return requires_; } /// std::string const & latexparam() const { return latexparam_; } /// + docstring leftdelim() const { return leftdelim_; } + /// + docstring rightdelim() const { return rightdelim_; } + /// std::string const & innertag() const { return innertag_; } /// std::string const & labeltag() const { return labeltag_; } @@ -240,15 +277,6 @@ public: bool intitle; /// 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 @@ -304,6 +332,12 @@ private: docstring labelstring_appendix_; /// LaTeX parameter for environment std::string latexparam_; + /// Item command in lists + std::string itemcommand_; + /// Left delimiter of the content + docstring leftdelim_; + /// Right delimiter of the content + docstring rightdelim_; /// Internal tag to use (e.g., for sect header) std::string innertag_; /// Internal tag to use (e.g. to surround varentrylist label) @@ -376,6 +410,12 @@ private: docstring babelpreamble_; /// Packages needed for this layout std::set requires_; + /// + LaTeXArgMap latexargs_; + /// + LaTeXArgMap postcommandargs_; + /// + LaTeXArgMap itemargs_; }; } // namespace lyx