]> git.lyx.org Git - lyx.git/blobdiff - src/Layout.h
Fix build with GNU libstdc++ C++11 ABI
[lyx.git] / src / Layout.h
index 3ffd54246b94f1d4cff8cd44d4529a7051bfd62d..a458f2f6dc07619faa180273f6e3fa78c22b6924 100644 (file)
@@ -89,8 +89,6 @@ 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;
@@ -106,17 +104,23 @@ public:
                FontInfo font;
                FontInfo labelfont;
                bool autoinsert;
+               docstring pass_thru_chars;
        };
        ///
        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 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;
        ///
@@ -277,9 +281,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
@@ -312,9 +320,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;
        ///
@@ -421,7 +443,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_;