]> git.lyx.org Git - lyx.git/blobdiff - src/TextClass.h
Streamlining CollapseStatus stuff
[lyx.git] / src / TextClass.h
index c3847ff497725df5f1eda6d6d101e755e74492a3..64716c1741e87cc4553196e705310e8149d3610a 100644 (file)
@@ -17,6 +17,7 @@
 
 #include <vector>
 #include <set>
+#include <map>
 
 namespace lyx {
 
@@ -40,9 +41,23 @@ public:
 };
 
 
+class InsetLayout {
+public:
+       docstring labelstring;
+       std::string latextype;
+       std::string latexname;
+       std::string latexparam;
+       Font font;
+       Font labelfont;
+       docstring preamble;
+};
+
+
 /// List of semantically defined character style insets
 typedef std::vector<CharStyle> CharStyles;
 
+/// List of inset layouts
+typedef std::map<docstring, InsetLayout> InsetLayouts;
 
 /// Stores the layout specification of a LyX document class.
 class TextClass {
@@ -79,14 +94,16 @@ public:
        ///
        void readCharStyle(Lexer &, std::string const &);
        ///
+       void readInsetLayout(Lexer &, docstring const &);
+       ///
        void readFloat(Lexer &);
        ///
        void readCounter(Lexer &);
        ///
-       bool hasLayout(std::string const & name) const;
+       bool hasLayout(docstring const & name) const;
 
        ///
-       Layout_ptr const & operator[](std::string const & vname) const;
+       Layout_ptr const & operator[](docstring const & vname) const;
 
        /// Sees to that the textclass structure has been loaded
        bool load(std::string const & path = std::string()) const;
@@ -101,15 +118,19 @@ public:
        Counters & counters() const;
        /// CharStyles of this doc class
        CharStyles & charstyles() const { return charstylelist_; };
+       ///  Inset layouts of this doc class
+       InsetLayout const & insetlayout(docstring const & name) const;
        /// Retrieve element of name s:
        CharStyles::iterator charstyle(std::string const & s) const;
        ///
-       std::string const & defaultLayoutName() const;
+       docstring const & defaultLayoutName() const;
        ///
        Layout_ptr const & defaultLayout() const;
        ///
        std::string const & name() const;
        ///
+       docstring const & labelstring() const;
+       ///
        std::string const & latexname() const;
        ///
        std::string const & description() const;
@@ -172,7 +193,7 @@ public:
        bool hasTocLevels() const;
 private:
        ///
-       bool delete_layout(std::string const &);
+       bool delete_layout(docstring const &);
        ///
        bool do_readStyle(Lexer &, Layout &);
        /// Layout file name
@@ -192,7 +213,7 @@ private:
        ///
        std::string class_header_;
        ///
-       std::string defaultlayout_;
+       docstring defaultlayout_;
        /// preamble text to support layout styles
        docstring preamble_;
        /// latex packages loaded by document class.
@@ -229,11 +250,14 @@ private:
        /// CharStyles available to this layout
        mutable CharStyles charstylelist_;
 
+       /// Input layouts available to this layout
+       mutable InsetLayouts insetlayoutlist_;
+
        /// available types of float, eg. figure, algorithm.
        boost::shared_ptr<FloatList> floatlist_;
 
        /// Types of counters, eg. sections, eqns, figures, avail. in document class.
-       boost::shared_ptr<Counters> ctrs_;
+       boost::shared_ptr<Counters> counters_;
 
        /// Has this layout file been loaded yet?
        mutable bool loaded_;