X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTextClass.h;h=a64aff64632b347a04cbb3be625c0cd19015cc99;hb=8c73b3d2ce356e2720186f8cf5208614d124fdcf;hp=e3a4a66fb37d57400a68b4f997e5ee0e16d91279;hpb=b99433e73b1cb96553cd8558c7c2a5da72bb1f4f;p=lyx.git diff --git a/src/TextClass.h b/src/TextClass.h index e3a4a66fb3..a64aff6463 100644 --- a/src/TextClass.h +++ b/src/TextClass.h @@ -7,14 +7,19 @@ * Full author contact details are available in file CREDITS. */ -#ifndef LYXTEXTCLASS_H -#define LYXTEXTCLASS_H +#ifndef TEXTCLASS_H +#define TEXTCLASS_H -#include "Color.h" -#include "Font.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 #include @@ -30,26 +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; - Font font; - Font labelfont; - Color::color bgcolor; - std::string preamble; - bool multipar; - bool verbatim; -}; - - /// List of inset layouts typedef std::map InsetLayouts; @@ -152,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 const & requires() const { return requires_; } /// unsigned int columns() const; /// - enum PageSides { - /// - OneSide, - /// - TwoSides - }; - /// PageSides sides() const; /// int secnumdepth() const; @@ -173,7 +153,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; @@ -196,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 @@ -224,6 +204,8 @@ private: docstring preamble_; /// latex packages loaded by document class. std::set provides_; + /// latex packages requested by document class. + std::set requires_; /// unsigned int columns_; /// @@ -236,10 +218,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_; @@ -277,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 TextClassPtr; - +std::ostream & operator<<(std::ostream & os, PageSides p); } // namespace lyx