X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTextClass.h;h=88f93036e029ae4b9c4dd959cf5d7e74cab074fb;hb=d8f6e65ec73e3a4aa4bfba510ee42dbe353e2742;hp=e4c2461543af7fb4af979a4ba0590b503b77aa65;hpb=7bdc34a98700f487a923ea2b3546f476b9d5d98c;p=lyx.git diff --git a/src/TextClass.h b/src/TextClass.h index e4c2461543..88f93036e0 100644 --- a/src/TextClass.h +++ b/src/TextClass.h @@ -11,7 +11,6 @@ #define TEXTCLASS_H #include "Citation.h" -#include "ColorCode.h" #include "Counters.h" #include "DocumentClassPtr.h" #include "FloatList.h" @@ -31,6 +30,10 @@ #include #include +#ifdef ERROR +#undef ERROR +#endif + namespace lyx { namespace support { class FileName; } @@ -200,6 +203,8 @@ public: OutputType outputType() const { return outputType_; } /// Can be latex, docbook ... (the name of a format) std::string outputFormat() const { return outputFormat_; } + /// + docstring outlinerName(std::string const & type) const; protected: /// Protect construction TextClass(); @@ -278,6 +283,8 @@ protected: std::set provides_; /// latex packages requested by document class. std::set requires_; + /// + std::map package_options_; /// default modules wanted by document class LayoutModuleList default_modules_; /// modules provided by document class @@ -326,6 +333,8 @@ protected: bool cite_full_author_list_; /// The possible citation styles std::map > cite_styles_; + /// + std::map outliner_names_; private: /////////////////////////////////////////////////////////////////// // helper routines for reading layout files @@ -358,6 +367,8 @@ private: int readCiteEngineType(Lexer &) const; /// bool readCiteFormat(Lexer &); + /// + bool readOutlinerName(Lexer &); }; @@ -368,12 +379,8 @@ private: /// In that regard, DocumentClass objects are "dynamic". But this is really /// an illusion, since DocumentClass objects are not (currently) changed /// when, say, a new Module is loaded. Rather, the old DocumentClass is -/// discarded---actually, it's kept around in case something on the cut +/// discarded---actually, it will be kept around if something on the cut /// stack needs it---and a new one is created from scratch. -/// -/// In the main LyX code, DocumentClass objects are created only by -/// DocumentClassBundle, for which see below. -/// class DocumentClass : public TextClass { public: /// @@ -395,7 +402,7 @@ public: /// happen). -- Idea JMarc, comment MV InsetLayout const & insetLayout(docstring const & name) const; /// a plain inset layout for use as a default - static InsetLayout const & plainInsetLayout() { return plain_insetlayout_; } + static InsetLayout const & plainInsetLayout(); /// add a new layout \c name if it does not exist in layoutlist_ /// \return whether we had to add one. bool addLayoutIfNeeded(docstring const & name) const; @@ -427,7 +434,9 @@ public: docstring const & htmlpreamble() const { return htmlpreamble_; } /// docstring const & htmlstyles() const { return htmlstyles_; } - /// + /// Looks for the layout of "highest level", other than Part (or other + /// layouts with a negative toc number), for use in constructing TOCs and + /// similar information. Layout const & getTOCLayout() const; /// the paragraph style to use for TOCs, Bibliography, etc /// we will attempt to calculate this if it was not given @@ -436,6 +445,9 @@ public: bool provides(std::string const & p) const; /// features required by the class? std::set const & requires() const { return requires_; } + /// package options to write to LaTeX file + std::map const & packageOptions() const + { return package_options_; } /// unsigned int columns() const { return columns_; } /// @@ -482,12 +494,10 @@ protected: /// Needed in tex2lyx DocumentClass() {} private: - /// The only class that can create a DocumentClass is - /// DocumentClassBundle, which calls the protected constructor. + /// The only way to make a DocumentClass is to call this function. friend DocumentClassPtr - getDocumentClass(LayoutFile const &, LayoutModuleList const &); - /// - static InsetLayout plain_insetlayout_; + getDocumentClass(LayoutFile const &, LayoutModuleList const &, + bool const clone); }; @@ -496,7 +506,8 @@ private: /// in memory long after their associated Buffer is destroyed, mostly /// on the CutStack. DocumentClassPtr getDocumentClass(LayoutFile const & baseClass, - LayoutModuleList const & modlist); + LayoutModuleList const & modlist, + bool const clone = false); /// convert page sides option to text 1 or 2 std::ostream & operator<<(std::ostream & os, PageSides p);