]> git.lyx.org Git - lyx.git/blobdiff - src/Layout.h
Account for old versions of Pygments
[lyx.git] / src / Layout.h
index b7c6e708cd1f1c02db73fb28ec3a8b6ce212ee16..ba4d26fb37c76a475a280f1bf2a91c5bde7615a0 100644 (file)
@@ -104,17 +104,29 @@ public:
                FontInfo font;
                FontInfo labelfont;
                bool autoinsert;
+               bool insertcotext;
+               ArgPassThru passthru;
+               docstring pass_thru_chars;
+               bool is_toc_caption;
        };
        ///
        typedef std::map<std::string, latexarg> LaTeXArgMap;
        ///
-       LaTeXArgMap args() const;
-       ///
        LaTeXArgMap const & latexargs() const { return latexargs_; }
        ///
        LaTeXArgMap const & postcommandargs() const { return postcommandargs_; }
        ///
        LaTeXArgMap const & itemargs() const { return itemargs_; }
+       /// Returns true is the layout has arguments. If false, then an
+       /// InsetArgument in this layout stands for the parent InsetText.
+       bool hasArgs() const;
+       /// Returns latexargs() + postcommandargs() + itemargs().
+       /// 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.
+       LaTeXArgMap args() const;
        ///
        int optArgs() const;
        ///
@@ -183,10 +195,7 @@ public:
        }
        /// Is this the kind of layout in which adjacent paragraphs
        /// are handled as one group?
-       bool isParagraphGroup() const {
-       return latextype == LATEX_ENVIRONMENT
-               || latextype == LATEX_BIB_ENVIRONMENT;
-       }
+       bool isParagraphGroup() const { return par_group_; }
        ///
        bool labelIsInline() const {
                return labeltype == LABEL_STATIC
@@ -199,6 +208,12 @@ public:
                        || labeltype == LABEL_CENTERED
                  || labeltype == LABEL_BIBLIO;
        }
+       ///
+       bool addToToc() const { return add_to_toc_; }
+       ///
+       std::string tocType() const { return toc_type_; }
+       ///
+       bool isTocCaption() const { return is_toc_caption_; }
 
        ///
        bool operator==(Layout const &) const;
@@ -275,9 +290,13 @@ public:
        ///
        bool nextnoindent;
        ///
+       ToggleIndentation toggle_indent;
+       ///
        bool free_spacing;
        ///
        bool pass_thru;
+       /// Individual chars to be passed verbatim
+       docstring pass_thru_chars;
        ///
        bool parbreak_is_newline;
        /// show this in toc
@@ -298,6 +317,10 @@ public:
        bool inpreamble;
        /// Which counter to step
        docstring counter;
+       /// Resume counter?
+       bool resumecounter;
+       /// Step master counter?
+       bool stepmastercounter;
        /// Prefix to use when creating labels
        docstring refprefix;
        /// Depth of XML command
@@ -310,9 +333,23 @@ public:
 
        /// Is this spellchecked?
        bool spellcheck;
+       /**
+        * Should this layout definition always be written to the document preamble?
+        * Possible values are:
+        *   0: Do not enforce local layout
+        * >=1: Enforce local layout with version forcelocal
+        *  -1: Enforce local layout with infinite version
+        * On reading, the forced local layout is only used if its version
+        * number is greater than the version number of the same layout in the
+        * document class. Otherwise, it is ignored.
+        */
+       int forcelocal;
 
 
 private:
+       /// Reads a layout definition from file
+       /// \return true on success.
+       bool readIgnoreForcelocal(Lexer &, TextClass const &);
        /// generates the default CSS for this layout
        void makeDefaultCSS() const;
        ///
@@ -419,7 +456,7 @@ private:
        mutable std::string defaultcssclass_;
        /// This is the `category' for this layout. The following are
        /// recommended basic categories: FrontMatter, BackMatter, MainText,
-       /// Section, Starred, List, Theorem.
+       /// Sectioning, Starred, List, Reasoning.
        docstring category_;
        /// Macro definitions needed for this layout
        docstring preamble_;
@@ -427,6 +464,8 @@ private:
        docstring langpreamble_;
        /// Language and babel dependent macro definitions needed for this layout
        docstring babelpreamble_;
+       /// Are adjacent paragraphs handled as one group?
+       bool par_group_;
        /// Packages needed for this layout
        std::set<std::string> requires_;
        ///
@@ -435,8 +474,15 @@ private:
        LaTeXArgMap postcommandargs_;
        ///
        LaTeXArgMap itemargs_;
+       ///
+       bool add_to_toc_;
+       ///
+       std::string toc_type_;
+       ///
+       bool is_toc_caption_;
 };
 
+
 } // namespace lyx
 
 #endif