]> git.lyx.org Git - features.git/blobdiff - src/insets/InsetLayout.h
Typo
[features.git] / src / insets / InsetLayout.h
index c1bbe5c07371afa2b14764d9d6c0dc85de57b493..ed3c9a96ba830b1959fedc559a5fecb388795a4e 100644 (file)
@@ -5,7 +5,7 @@
  * Licence details can be found in the file COPYING.
  *
  * \author Martin Vermeer
- * \author Richard Heck
+ * \author Richard Kimberly Heck
  *
  * Full author contact details are available in file CREDITS.
  */
@@ -27,36 +27,38 @@ namespace lyx {
 class Lexer;
 class TextClass;
 
+
+enum class InsetDecoration : int {
+       CLASSIC,
+       MINIMALISTIC,
+       CONGLOMERATE,
+       DEFAULT
+};
+
+enum class InsetLyXType : int {
+       NOLYXTYPE,
+       CHARSTYLE,
+       CUSTOM,
+       END,
+       STANDARD
+};
+
+enum class InsetLaTeXType : int {
+       NOLATEXTYPE,
+       COMMAND,
+       ENVIRONMENT,
+       ILT_ERROR
+};
+
+
 ///
 class InsetLayout {
 public:
        ///
-       InsetLayout();
-       ///
-       enum InsetDecoration {
-               CLASSIC,
-               MINIMALISTIC,
-               CONGLOMERATE,
-               DEFAULT
-       };
-       ///
-       enum InsetLyXType {
-               NOLYXTYPE,
-               CHARSTYLE,
-               CUSTOM,
-               ELEMENT,
-               END,
-               STANDARD
-       };
-       ///
-       enum InsetLaTeXType {
-               NOLATEXTYPE,
-               COMMAND,
-               ENVIRONMENT,
-               ILT_ERROR
-       };
-       ///
-       bool read(Lexer & lexrc, TextClass const & tclass);
+       InsetLayout() { labelfont_.setColor(Color_error); }
+       ///
+       bool read(Lexer & lexrc, TextClass const & tclass,
+                       bool validating = false);
        ///
        docstring name() const { return name_; }
        ///
@@ -66,6 +68,8 @@ public:
        ///
        docstring labelstring() const { return labelstring_; }
        ///
+       docstring menustring() const { return menustring_; }
+       ///
        bool contentaslabel() const { return contentaslabel_; }
        ///
        InsetDecoration decoration() const { return decoration_; }
@@ -85,21 +89,21 @@ public:
        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 
+       /// 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;
+       int optArgs() const;
        ///
-       unsigned int requiredArgs() const;
+       int requiredArgs() const;
        ///
        docstring preamble() const { return preamble_; }
        /// Get language dependent macro definitions needed for this inset
@@ -120,7 +124,7 @@ public:
        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: 
+       /// 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
@@ -132,7 +136,7 @@ public:
        ///
        inline std::string htmllabeltag() const { return "span"; }
        ///
-       std::string htmllabelattr() const 
+       std::string htmllabelattr() const
                { return "class=\"" + defaultCSSClass() + "_label\""; }
        /// CSS associated with this inset.
        docstring htmlstyle() const;
@@ -146,7 +150,51 @@ public:
        /// Defaults to true.
        bool htmlisblock() const { return htmlisblock_; }
        ///
-       std::set<std::string> requires() const { return requires_; }
+       std::string docbooktag() const { return docbooktag_; }
+       ///
+       std::string docbooktagtype() const;
+       ///
+       std::string docbookattr() const { return docbookattr_; }
+       ///
+       std::string docbookinnertag() const { return docbookinnertag_; }
+       ///
+       std::string docbookinnertagtype() const;
+       ///
+       std::string docbookinnerattr() const { return docbookinnerattr_; }
+       ///
+       std::string const & docbookininfo() const;
+       ///
+       bool docbooksection() const { return docbooksection_; }
+       ///
+       bool docbooknotinpara() const { return docbooknotinpara_; }
+       ///
+       bool docbookargumentbeforemaintag() const { return docbookargumentbeforemaintag_; }
+       ///
+       bool docbookargumentaftermaintag() const { return docbookargumentaftermaintag_; }
+       ///
+       std::string docbookwrappertag() const { return docbookwrappertag_; }
+       ///
+       std::string docbookwrappertagtype() const;
+       ///
+       std::string docbookwrapperattr() const { return docbookwrapperattr_; }
+       ///
+       std::string docbookitemwrappertag() const { return docbookitemwrappertag_; }
+       ///
+       std::string docbookitemwrappertagtype() const;
+       ///
+       std::string docbookitemwrapperattr() const { return docbookitemwrapperattr_; }
+       ///
+       std::string docbookitemtag() const { return docbookitemtag_; }
+       ///
+       std::string docbookitemtagtype() const;
+       ///
+       std::string docbookitemattr() const { return docbookitemattr_; }
+       ///
+       bool docbooknofontinside() const { return docbooknofontinside_; }
+       ///
+       bool docbookrenderasimage() const { return docbookrenderasimage_; }
+       ///
+       std::set<std::string> required() const { return required_; }
        ///
        bool isMultiPar() const { return multipar_; }
        ///
@@ -158,10 +206,19 @@ public:
        ///
        docstring passThruChars() const { return passthru_chars_; }
        ///
+       std::string newlineCmd() const { return newline_cmd_; }
+       ///
        bool parbreakIsNewline() const { return parbreakisnewline_; }
        ///
+       bool parbreakIgnored() const { return parbreakignored_; }
+       ///
        bool isNeedProtect() const { return needprotect_; }
        ///
+       bool needsCProtect() const { return needcprotect_; }
+       /// Protection of some elements such as \ref and \cite
+       /// in \mbox (needed by commands building on soul or ulem)
+       bool isNeedMBoxProtect() const { return needmboxprotect_; }
+       ///
        bool isFreeSpacing() const { return freespacing_; }
        ///
        bool isKeepEmpty() const { return keepempty_; }
@@ -178,7 +235,7 @@ public:
        ///
        bool isDisplay() const { return display_; }
        ///
-       bool forcelocalfontswitch() const { return forcelocalfontswitch_; }
+       bool forceLocalFontSwitch() const { return forcelocalfontswitch_; }
        ///
        docstring const & obsoleted_by() const { return obsoleted_by_; }
        ///
@@ -187,6 +244,8 @@ public:
        std::string tocType() const { return toc_type_; }
        ///
        bool isTocCaption() const { return is_toc_caption_; }
+       ///
+       bool editExternally () const { return edit_external_; }
 private:
        ///
        void makeDefaultCSS() const;
@@ -195,21 +254,23 @@ private:
        ///
        void readArgument(Lexer &);
        ///
-       docstring name_;
+       docstring name_ = from_ascii("undefined");
        /**
                * This is only used (at present) to decide where to put them on the menus.
                * Values are 'charstyle', 'custom' (things that by default look like a
-               * footnote), 'element' (docbook), 'standard'.
+               * footnote), 'standard'.
                */
-       InsetLyXType lyxtype_;
+       InsetLyXType lyxtype_ = InsetLyXType::STANDARD;
        ///
-       docstring labelstring_;
+       docstring labelstring_ = from_ascii("UNDEFINED");
        ///
-       bool contentaslabel_;
+       docstring menustring_;
        ///
-       InsetDecoration decoration_;
+       bool contentaslabel_ = false;
        ///
-       InsetLaTeXType latextype_;
+       InsetDecoration decoration_ = InsetDecoration::DEFAULT;
+       ///
+       InsetLaTeXType latextype_ = InsetLaTeXType::NOLATEXTYPE;
        ///
        std::string latexname_;
        ///
@@ -219,11 +280,11 @@ private:
        ///
        docstring rightdelim_;
        ///
-       FontInfo font_;
+       FontInfo font_ = inherit_font;
        ///
-       FontInfo labelfont_;
+       FontInfo labelfont_ = sane_font;
        ///
-       ColorCode bgcolor_;
+       ColorCode bgcolor_ = Color_error;
        ///
        docstring counter_;
        ///
@@ -233,7 +294,7 @@ private:
        /// Language and babel dependent macro definitions needed for this inset
        docstring babelpreamble_;
        ///
-       bool fixedwidthpreambleencoding_;
+       bool fixedwidthpreambleencoding_ = false;
        ///
        docstring refprefix_;
        ///
@@ -254,45 +315,97 @@ private:
        mutable std::string defaultcssclass_;
        /// Whether to force generation of default CSS even if some is given.
        /// False by default.
-       bool htmlforcecss_;
+       bool htmlforcecss_ = false;
        ///
        docstring htmlpreamble_;
        ///
-       bool htmlisblock_;
+       bool htmlisblock_ = true;
+       ///
+       std::string docbooktag_;
+       ///
+       mutable std::string docbooktagtype_;
+       ///
+       std::string docbookattr_;
+       ///
+       std::string docbookinnertag_;
+       ///
+       mutable std::string docbookinnertagtype_;
+       ///
+       std::string docbookinnerattr_;
+       ///
+       mutable std::string docbookininfo_;
+       ///
+       bool docbooknotinpara_ = false;
+       ///
+       bool docbookargumentbeforemaintag_ = false;
+    ///
+    bool docbookargumentaftermaintag_ = false;
+       ///
+       bool docbooksection_ = false;
+       ///
+       std::string docbookwrappertag_;
        ///
-       std::set<std::string> requires_;
+       mutable std::string docbookwrappertagtype_;
        ///
-       bool multipar_;
-       /// 
-       bool custompars_;
+       std::string docbookwrapperattr_;
        ///
-       bool forceplain_;
+       std::string docbookitemtag_;
        ///
-       bool passthru_;
+       mutable std::string docbookitemtagtype_;
+       ///
+       std::string docbookitemattr_;
+       ///
+       std::string docbookitemwrappertag_;
+       ///
+       mutable std::string docbookitemwrappertagtype_;
+       ///
+       std::string docbookitemwrapperattr_;
+       ///
+       bool docbooknofontinside_ = false;
+       ///
+       bool docbookrenderasimage_ = false;
+       ///
+       std::set<std::string> required_;
+       ///
+       bool multipar_ = true;
+       ///
+       bool custompars_ = true;
+       ///
+       bool forceplain_ = false;
+       ///
+       bool passthru_ = false;
        ///
        docstring passthru_chars_;
        ///
-       bool parbreakisnewline_;
+       std::string newline_cmd_;
+       ///
+       bool parbreakisnewline_ = false;
        ///
-       bool freespacing_;
+       bool parbreakignored_ = false;
        ///
-       bool keepempty_;
+       bool freespacing_ = false;
        ///
-       bool forceltr_;
+       bool keepempty_ = false;
        ///
-       bool forceownlines_;
+       bool forceltr_ = false;
        ///
-       bool needprotect_;
+       bool forceownlines_ = false;
+       ///
+       bool needprotect_ = false;
+       ///
+       bool needcprotect_ = false;
+       ///
+       bool needmboxprotect_ = false;
        /// should the contents be written to TOC strings?
-       bool intoc_;
+       bool intoc_ = false;
        /// check spelling of this inset?
-       bool spellcheck_;
+       bool spellcheck_ = true;
        ///
-       bool resetsfont_;
+       bool resetsfont_ = false;
        ///
-       bool display_;
+       bool display_ = true;
        ///
-       bool forcelocalfontswitch_;
+       bool forcelocalfontswitch_ = false;
        /** Name of an insetlayout that has replaced this insetlayout.
            This is used to rename an insetlayout, while keeping backward
            compatibility
@@ -303,16 +416,18 @@ private:
        ///
        Layout::LaTeXArgMap postcommandargs_;
        ///
-       bool add_to_toc_;
+       bool add_to_toc_ = false;
        ///
        std::string toc_type_;
        ///
-       bool is_toc_caption_;
+       bool is_toc_caption_ = false;
+       ///
+       bool edit_external_ = false;
 };
 
 ///
-InsetLayout::InsetLyXType translateLyXType(std::string const & str);
-InsetLayout::InsetDecoration translateDecoration(std::string const & str);
+InsetLyXType translateLyXType(std::string const & str);
+InsetDecoration translateDecoration(std::string const & str);
 
 } // namespace lyx