X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxtextclass.h;h=57345d8353b352615bb15b29688f45cf2faa956c;hb=5e3b997b852fc96eef2387934b600262d3037745;hp=485b8290b34429071cb23d9957d6e66f3884d251;hpb=0be0fcfd5907d448cd51addf83ed7032719a0692;p=lyx.git diff --git a/src/lyxtextclass.h b/src/lyxtextclass.h index 485b8290b3..57345d8353 100644 --- a/src/lyxtextclass.h +++ b/src/lyxtextclass.h @@ -11,11 +11,8 @@ #define LYXTEXTCLASS_H #include "lyxlayout.h" -#include "LString.h" #include "lyxlayout_ptr_fwd.h" -#include "support/types.h" - #include #include @@ -24,6 +21,24 @@ class LyXLex; class Counters; class FloatList; + +/// +class CharStyle { +public: + std::string name; + std::string latextype; + std::string latexname; + std::string latexparam; + LyXFont font; + LyXFont labelfont; + std::string preamble; +}; + + +/// List of semantically defined character style insets +typedef std::vector CharStyles; + + /// Stores the layout specification of a LyX document class. class LyXTextClass { public: @@ -33,9 +48,9 @@ public: typedef LayoutList::const_iterator const_iterator; /// Construct a layout with default values. Actual values loaded later. explicit - LyXTextClass(string const & = string(), - string const & = string(), - string const & = string(), + LyXTextClass(std::string const & = std::string(), + std::string const & = std::string(), + std::string const & = std::string(), bool = false); /// check whether the TeX class is available @@ -47,7 +62,7 @@ public: const_iterator end() const { return layoutlist_.end(); } /// Performs the read of the layout file. - bool Read(string const & filename, bool merge = false); + bool read(std::string const & filename, bool merge = false); /// void readOutputType(LyXLex &); /// @@ -57,17 +72,21 @@ public: /// void readClassOptions(LyXLex &); /// + void readCharStyle(LyXLex &, std::string const &); + /// void readFloat(LyXLex &); /// void readCounter(LyXLex &); /// - bool hasLayout(string const & name) const; + bool hasLayout(std::string const & name) const; /// - LyXLayout_ptr const & operator[](string const & vname) const; + LyXLayout_ptr const & operator[](std::string const & vname) const; /// Sees to that the textclass structure has been loaded - bool load() const; + bool load(std::string const & path=std::string()) const; + /// Has this layout file been loaded yet? + bool loaded() const { return loaded_; } /// the list of floats defined in the document class FloatList & floats(); @@ -75,26 +94,32 @@ public: FloatList const & floats() const; /// The Counters present in this document class. Counters & counters() const; + /// CharStyles of this doc class + CharStyles & charstyles() const { return charstylelist_; }; + /// Retrieve element of name s: + CharStyles::iterator charstyle(std::string const & s) const; /// - string const & defaultLayoutName() const; + std::string const & defaultLayoutName() const; /// LyXLayout_ptr const & defaultLayout() const; /// - string const & name() const; + std::string const & name() const; + /// + std::string const & latexname() const; /// - string const & latexname() const; + std::string const & description() const; /// - string const & description() const; + std::string const & opt_fontsize() const; /// - string const & opt_fontsize() const; + std::string const & opt_pagestyle() const; /// - string const & opt_pagestyle() const; + std::string const & options() const; /// - string const & options() const; + std::string const & class_header() const; /// - string const & pagestyle() const; + std::string const & pagestyle() const; /// - string const & preamble() const; + std::string const & preamble() const; /// Packages that are already loaded by the class enum Provides { @@ -135,43 +160,49 @@ public: LyXFont const & defaultfont() const; /// Text that dictates how wide the left margin is on the screen - string const & leftmargin() const; + std::string const & leftmargin() const; /// Text that dictates how wide the right margin is on the screen - string const & rightmargin() const; - /// - int maxcounter() const; + std::string const & rightmargin() const; /// The type of command used to produce a title LYX_TITLE_LATEX_TYPES titletype() const; /// The name of the title command - string const & titlename() const; + std::string const & titlename() const; /// int size() const; + /// The minimal TocLevel of sectioning layouts + int min_toclevel() const; + /// The maximal TocLevel of sectioning layouts + int max_toclevel() const; + /// returns true if the class has a ToC structure + bool hasTocLevels() const; private: /// - bool delete_layout(string const &); + bool delete_layout(std::string const &); /// bool do_readStyle(LyXLex &, LyXLayout &); /// Layout file name - string name_; + std::string name_; /// document class name - string latexname_; + std::string latexname_; /// document class description - string description_; + std::string description_; /// Specific class options - string opt_fontsize_; + std::string opt_fontsize_; + /// + std::string opt_pagestyle_; /// - string opt_pagestyle_; + std::string options_; /// - string options_; + std::string pagestyle_; /// - string pagestyle_; + std::string class_header_; /// - string defaultlayout_; + std::string defaultlayout_; /// preamble text to support layout styles - string preamble_; + std::string preamble_; /// latex packages loaded by document class. Provides provides_; /// @@ -191,20 +222,20 @@ private: */ LyXFont defaultfont_; /// Text that dictates how wide the left margin is on the screen - string leftmargin_; + std::string leftmargin_; /// Text that dictates how wide the right margin is on the screen - string rightmargin_; - /// highest header level used in this layout. - int maxcounter_; // add approp. signedness + std::string rightmargin_; /// The type of command used to produce a title LYX_TITLE_LATEX_TYPES titletype_; /// The name of the title command - string titlename_; + std::string titlename_; /// Paragraph styles used in this layout LayoutList layoutlist_; + /// CharStyles available to this layout + mutable CharStyles charstylelist_; /// available types of float, eg. figure, algorithm. boost::shared_ptr floatlist_; @@ -213,10 +244,15 @@ private: boost::shared_ptr ctrs_; /// Has this layout file been loaded yet? - mutable bool loaded; + mutable bool loaded_; /// Is the TeX class available? bool texClassAvail_; + + /// The minimal TocLevel of sectioning layouts + int min_toclevel_; + /// The maximal TocLevel of sectioning layouts + int max_toclevel_; };