X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTextClass.h;h=a6b0bbb13d786fa7f1b7b9f0aef1a2c4db2dace2;hb=09df753df4c24470617c64d25eae6df2db85dfed;hp=699dae557d020701a92c8dea56138f4558c463df;hpb=8a947f63da25582224d20b29fadba6128f271555;p=lyx.git diff --git a/src/TextClass.h b/src/TextClass.h index 699dae557d..a6b0bbb13d 100644 --- a/src/TextClass.h +++ b/src/TextClass.h @@ -10,9 +10,12 @@ #ifndef LYXTEXTCLASS_H #define LYXTEXTCLASS_H -#include "Color.h" -#include "Layout.h" -#include "lyxlayout_ptr_fwd.h" +#include "ColorCode.h" +#include "FontInfo.h" +#include "LayoutEnums.h" +#include "LayoutPtr.h" + +#include "support/docstring.h" #include @@ -24,6 +27,7 @@ namespace lyx { namespace support { class FileName; } +class Layout; class Lexer; class Counters; class FloatList; @@ -39,16 +43,19 @@ public: std::string latextype; std::string latexname; std::string latexparam; - Font font; - Font labelfont; - Color::color bgcolor; + FontInfo font; + FontInfo labelfont; + ColorCode bgcolor; std::string preamble; + bool multipar; + bool passthru; + bool needprotect; + bool freespacing; + bool keepempty; + bool forceltr; }; -/// List of semantically defined character style insets -typedef std::vector CharStyles; - /// List of inset layouts typedef std::map InsetLayouts; @@ -115,8 +122,6 @@ public: FloatList const & floats() const; /// The Counters present in this document class. Counters & counters() const; - /// CharStyles of this doc class - CharStyles & charstyles() const { return charstylelist_; }; /// Inset layouts of this doc class InsetLayouts & insetlayouts() const { return insetlayoutlist_; }; /// @@ -174,7 +179,7 @@ public: OutputType outputType() const; /// - Font const & defaultfont() const; + FontInfo const & defaultfont() const; /// Text that dictates how wide the left margin is on the screen docstring const & leftmargin() const; @@ -183,7 +188,7 @@ public: docstring const & rightmargin() const; /// The type of command used to produce a title - LYX_TITLE_LATEX_TYPES titletype() const; + TitleLatexType titletype() const; /// The name of the title command std::string const & titlename() const; @@ -237,10 +242,10 @@ private: OutputType outputType_; /** Base font. The paragraph and layout fonts are resolved against this font. This has to be fully instantiated. Attributes - Font::INHERIT, Font::IGNORE, and Font::TOGGLE are + FONT_INHERIT, FONT_IGNORE, and FONT_TOGGLE are extremely illegal. */ - Font defaultfont_; + FontInfo defaultfont_; /// Text that dictates how wide the left margin is on the screen docstring leftmargin_; @@ -248,14 +253,12 @@ private: docstring rightmargin_; /// The type of command used to produce a title - LYX_TITLE_LATEX_TYPES titletype_; + TitleLatexType titletype_; /// The name of the title command std::string titlename_; /// Paragraph styles used in this layout LayoutList layoutlist_; - /// CharStyles available to this layout - mutable CharStyles charstylelist_; /// Input layouts available to this layout mutable InsetLayouts insetlayoutlist_; @@ -282,6 +285,12 @@ 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 TextClassPtr; + } // namespace lyx