X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FTextClass.h;h=7255165c235c40a8afbb6cdbc8bc2ed3cd3f8ca1;hb=823e44822e6638824900eee2f7e2e7165af97f8d;hp=fd2b50bb9f0292d456f5cb4d4118d690b57ae535;hpb=d841355b7e95ae6971edee7dca18f6ab05f20938;p=lyx.git diff --git a/src/TextClass.h b/src/TextClass.h index fd2b50bb9f..7255165c23 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" @@ -101,7 +102,7 @@ public: typedef std::map InsetLayouts; /// typedef LayoutList::const_iterator const_iterator; - + /////////////////////////////////////////////////////////////////// // Iterators /////////////////////////////////////////////////////////////////// @@ -134,6 +135,8 @@ 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_; }; @@ -181,11 +184,13 @@ 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_; } protected: /// Protect construction TextClass(); @@ -251,8 +256,12 @@ protected: 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_; /// @@ -291,6 +300,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; /// @@ -423,15 +434,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_; };