X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTextClass.h;h=22d426c86dc75669b60f9133edd67ed4f59f7640;hb=6642152e6610f1e885babfaeb3c99bd0004916fc;hp=fff3c2332f6824c2d3bfd31aeb46aec9b3e7d125;hpb=fa6b388cb3b77995a88ef98987b542ee7bf5d98f;p=lyx.git diff --git a/src/TextClass.h b/src/TextClass.h index fff3c2332f..22d426c86d 100644 --- a/src/TextClass.h +++ b/src/TextClass.h @@ -30,6 +30,10 @@ #include #include +#ifdef ERROR +#undef ERROR +#endif + namespace lyx { namespace support { class FileName; } @@ -167,7 +171,8 @@ public: ReturnValues read(Lexer & lex, ReadType rt = BASECLASS); /// validates the layout information passed in str static ReturnValues validate(std::string const & str); - /// + /// \return the conversion of \param str to the latest layout format + /// compatible with the lyx format. static std::string convert(std::string const & str); /////////////////////////////////////////////////////////////////// @@ -199,6 +204,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(); @@ -327,6 +334,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 @@ -359,6 +368,8 @@ private: int readCiteEngineType(Lexer &) const; /// bool readCiteFormat(Lexer &); + /// + bool readOutlinerName(Lexer &); }; @@ -369,12 +380,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: /// @@ -396,7 +403,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; @@ -488,13 +495,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 &, bool const clone); - /// - static InsetLayout plain_insetlayout_; }; @@ -511,6 +515,9 @@ std::ostream & operator<<(std::ostream & os, PageSides p); /// current format of layout files extern int const LAYOUT_FORMAT; +/// layout format for the current lyx file format (usually equal to +/// LAYOUT_FORMAT) +extern int const LYXFILE_LAYOUT_FORMAT; } // namespace lyx