X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTextClass.h;h=67acd5848c4a1a913dd21b9a5795b4c714b37b64;hb=aee4e7ba34d87f609ea50327449b3eb67731561a;hp=fd2b50bb9f0292d456f5cb4d4118d690b57ae535;hpb=d841355b7e95ae6971edee7dca18f6ab05f20938;p=lyx.git diff --git a/src/TextClass.h b/src/TextClass.h index fd2b50bb9f..67acd5848c 100644 --- a/src/TextClass.h +++ b/src/TextClass.h @@ -16,6 +16,7 @@ #include "FontInfo.h" #include "Layout.h" #include "LayoutEnums.h" +#include "LayoutModuleList.h" #include "insets/InsetLayout.h" @@ -47,7 +48,7 @@ class ProtectCopy protected: ProtectCopy() {} ~ProtectCopy() {} - ProtectCopy(const ProtectCopy &) {}; + ProtectCopy(const ProtectCopy &) {} private: const ProtectCopy & operator=(const ProtectCopy &); }; @@ -76,7 +77,7 @@ private: class TextClass : protected ProtectCopy { public: /// - virtual ~TextClass() {}; + virtual ~TextClass() {} /////////////////////////////////////////////////////////////////// // typedefs /////////////////////////////////////////////////////////////////// @@ -101,7 +102,7 @@ public: typedef std::map InsetLayouts; /// typedef LayoutList::const_iterator const_iterator; - + /////////////////////////////////////////////////////////////////// // Iterators /////////////////////////////////////////////////////////////////// @@ -125,7 +126,7 @@ public: /// returns a special layout for use when we don't really want one, /// e.g., in table cells Layout const & plainLayout() const - { return operator[](plain_layout_); }; + { return operator[](plain_layout_); } /// the name of the plain layout docstring const & plainLayoutName() const { return plain_layout_; } @@ -134,9 +135,11 @@ public: /// bool hasLayout(docstring const & name) const; /// + bool hasInsetLayout(docstring const & name) const; + /// Layout const & operator[](docstring const & vname) const; /// Inset layouts of this doc class - InsetLayouts const & insetLayouts() const { return insetlayoutlist_; }; + InsetLayouts const & insetLayouts() const { return insetlayoutlist_; } /////////////////////////////////////////////////////////////////// // reading routines @@ -181,11 +184,15 @@ public: // accessors /////////////////////////////////////////////////////////////////// /// - std::string const & name() const { return name_; }; + std::string const & name() const { return name_; } /// - std::string const & description() const { return description_; }; + std::string const & description() const { return description_; } /// std::string const & latexname() const { return latexname_; } + /// Can be LaTeX, DocBook, etc. + OutputType outputType() const { return outputType_; } + /// Can be latex, docbook ... (the name of a format) + std::string outputFormat() const { return outputFormat_; } protected: /// Protect construction TextClass(); @@ -247,12 +254,19 @@ protected: static const docstring plain_layout_; /// preamble text to support layout styles docstring preamble_; + /// same, but for HTML output + /// this is output as is to the header + docstring htmlpreamble_; /// latex packages loaded by document class. std::set provides_; /// latex packages requested by document class. std::set requires_; - /// modules wanted by document class - std::set usemod_; + /// default modules wanted by document class + LayoutModuleList default_modules_; + /// modules provided by document class + LayoutModuleList provided_modules_; + /// modules excluded by document class + LayoutModuleList excluded_modules_; /// unsigned int columns_; /// @@ -263,6 +277,8 @@ protected: int tocdepth_; /// Can be LaTeX, DocBook, etc. OutputType outputType_; + /// Can be latex, docbook ... (the name of a format) + std::string outputFormat_; /** 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 @@ -291,6 +307,8 @@ private: bool deleteLayout(docstring const &); /// bool convertLayoutFormat(support::FileName const &, ReadType); + /// Reads the layout file without running layout2layout. + ReturnValues readWithoutConv(support::FileName const & filename, ReadType rt); /// \return true for success. bool readStyle(Lexer &, Layout &) const; /// @@ -365,6 +383,8 @@ public: std::string const & pagestyle() const { return pagestyle_; } /// docstring const & preamble() const { return preamble_; } + /// + docstring const & htmlpreamble() const { return htmlpreamble_; } /// is this feature already provided by the class? bool provides(std::string const & p) const; /// features required by the class? @@ -384,9 +404,9 @@ public: /// Text that dictates how wide the right margin is on the screen docstring const & rightmargin() const { return rightmargin_; } /// The type of command used to produce a title - TitleLatexType titletype() const { return titletype_; }; + TitleLatexType titletype() const { return titletype_; } /// The name of the title command - std::string const & titlename() const { return titlename_; }; + std::string const & titlename() const { return titlename_; } /// int size() const { return layoutlist_.size(); } /// The minimal TocLevel of sectioning layouts @@ -395,8 +415,6 @@ public: int max_toclevel() const { return max_toclevel_; } /// returns true if the class has a ToC structure bool hasTocLevels() const; - /// Can be LaTeX, DocBook, etc. - OutputType outputType() const { return outputType_; } protected: /// Constructs a DocumentClass based upon a LayoutFile. DocumentClass(LayoutFile const & tc); @@ -423,15 +441,19 @@ private: /// DocumentClassBundle::get(). class DocumentClassBundle : boost::noncopyable { public: - /// \return Pointer to a new class equal to baseClass - DocumentClass & newClass(LayoutFile const & baseClass); /// \return The sole instance of this class. static DocumentClassBundle & get(); + /// \return A new DocumentClass based on baseClass, with info added + /// from the modules in modlist. + DocumentClass & makeDocumentClass(LayoutFile const & baseClass, + LayoutModuleList const & modlist); private: /// control instantiation DocumentClassBundle() {} /// clean up ~DocumentClassBundle(); + /// \return Reference to a new DocumentClass equal to baseClass + DocumentClass & newClass(LayoutFile const & baseClass); /// std::vector documentClasses_; };