]> git.lyx.org Git - lyx.git/blobdiff - src/TextClass.h
simplify GuiToc / TocWidget interaction. Much can still be simplified...
[lyx.git] / src / TextClass.h
index a6b0bbb13d786fa7f1b7b9f0aef1a2c4db2dace2..a64aff64632b347a04cbb3be625c0cd19015cc99 100644 (file)
@@ -7,15 +7,18 @@
  * Full author contact details are available in file CREDITS.
  */
 
-#ifndef LYXTEXTCLASS_H
-#define LYXTEXTCLASS_H
+#ifndef TEXTCLASS_H
+#define TEXTCLASS_H
 
 #include "ColorCode.h"
 #include "FontInfo.h"
 #include "LayoutEnums.h"
 #include "LayoutPtr.h"
 
+#include "insets/InsetLayout.h"
+
 #include "support/docstring.h"
+#include "support/types.h"
 
 #include <boost/shared_ptr.hpp>
 
@@ -32,30 +35,6 @@ class Lexer;
 class Counters;
 class FloatList;
 
-
-///
-class InsetLayout {
-public:
-       std::string name;
-       std::string lyxtype;
-       docstring labelstring;
-       std::string decoration;
-       std::string latextype;
-       std::string latexname;
-       std::string latexparam;
-       FontInfo font;
-       FontInfo labelfont;
-       ColorCode bgcolor;
-       std::string preamble;
-       bool multipar;
-       bool passthru;
-       bool needprotect;
-       bool freespacing;
-       bool keepempty;
-       bool forceltr;
-};
-
-
 /// List of inset layouts
 typedef std::map<docstring, InsetLayout> InsetLayouts;
 
@@ -158,17 +137,12 @@ public:
 
        /// is this feature already provided by the class?
        bool provides(std::string const & p) const;
+       /// features required by the class?
+       std::set<std::string> const & requires() const { return requires_; }
 
        ///
        unsigned int columns() const;
        ///
-       enum PageSides {
-               ///
-               OneSide,
-               ///
-               TwoSides
-       };
-       ///
        PageSides sides() const;
        ///
        int secnumdepth() const;
@@ -202,9 +176,9 @@ public:
        bool hasTocLevels() const;
 private:
        ///
-       bool delete_layout(docstring const &);
+       bool deleteLayout(docstring const &);
        ///
-       bool do_readStyle(Lexer &, Layout &);
+       bool readStyle(Lexer &, Layout &);
        /// Layout file name
        std::string name_;
        /// document class name
@@ -230,6 +204,8 @@ private:
        docstring preamble_;
        /// latex packages loaded by document class.
        std::set<std::string> provides_;
+       /// latex packages requested by document class.
+       std::set<std::string> requires_;
        ///
        unsigned int columns_;
        ///
@@ -283,14 +259,7 @@ private:
 
 
 /// convert page sides option to text 1 or 2
-std::ostream & operator<<(std::ostream & os, TextClass::PageSides p);
-
-/** Shared pointer for possibly modular layout. Needed so that paste,
- *  for example, will still be able to retain the pointer, even when
- *  the buffer itself is closed.
- */
-typedef boost::shared_ptr<TextClass> TextClassPtr;
-
+std::ostream & operator<<(std::ostream & os, PageSides p);
 
 } // namespace lyx