X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLayout.h;h=aeca0f4f83ae7c9b6a84b672704d0aefb61a0fe2;hb=70a24259f8e3eb75677178ef5e28ecbb51c2935b;hp=5fb887302e703008ffc408c928a69c0b5188595e;hpb=763ef015ce995b7b46eb029af12ffab3f8810152;p=lyx.git diff --git a/src/Layout.h b/src/Layout.h index 5fb887302e..aeca0f4f83 100644 --- a/src/Layout.h +++ b/src/Layout.h @@ -4,9 +4,9 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * \author Jean-Marc Lasgouttes - * \author André Pönitz + * \author André Pönitz * * Full author contact details are available in file CREDITS. */ @@ -24,6 +24,7 @@ namespace lyx { +class Language; class Lexer; class TextClass; @@ -72,16 +73,18 @@ public: /// void readSpacing(Lexer &); /// - docstring const & name() const; + docstring const & name() const { return name_; }; /// - void setName(docstring const & n); + void setName(docstring const & n) { name_ = n; } /// - docstring const & obsoleted_by() const; + docstring const & obsoleted_by() const { return obsoleted_by_; } /// - docstring const & depends_on() const; + docstring const & depends_on() const { return depends_on_; } /// std::string const & latexname() const { return latexname_; } /// + void setLatexName(std::string const & n) { latexname_ = n; } + /// docstring const & labelstring() const { return labelstring_; } /// docstring const & endlabelstring() const { return endlabelstring_; } @@ -89,6 +92,12 @@ public: docstring const & category() const { return category_; } /// docstring const & preamble() const { return preamble_; } + /// Get language dependent macro definitions needed for this layout + /// for language \p lang + docstring const langpreamble(Language const * lang) const; + /// Get language and babel dependent macro definitions needed for + /// this layout for language \p lang + docstring const babelpreamble(Language const * lang) const; /// std::set const & requires() const { return requires_; } /// @@ -99,6 +108,24 @@ public: std::string const & labeltag() const { return labeltag_; } /// std::string const & itemtag() const { return itemtag_; } + /// + std::string const & htmltag() const { return htmltag_; } + /// + std::string const & htmlattr() const { return htmlattr_; } + /// + std::string const & htmlitem() const { return htmlitem_; } + /// + std::string const & htmlitemattr() const { return htmlitemattr_; } + /// + std::string const & htmllabel() const { return htmllabel_; } + /// + std::string const & htmllabelattr() const { return htmllabelattr_; } + /// + bool htmllabelfirst() const { return htmllabelfirst_; } + /// + docstring const & htmlstyle() const { return htmlstyle_; } + /// + docstring const & htmlpreamble() const { return htmlpreamble_; } /// docstring const & labelstring_appendix() const { return labelstring_appendix_; @@ -124,11 +151,6 @@ public: //////////////////////////////////////////////////////////////// // members //////////////////////////////////////////////////////////////// - /** Is this layout the default layout for an unknown layout? If - * so, its name will be displayed as xxx (unknown). - */ - bool unknown_; - /** Default font for this layout/environment. The main font for this kind of environment. If an attribute has INHERITED_*, it means that the value is specified by @@ -206,12 +228,6 @@ public: int toclevel; /// special value of toclevel for non-section layouts static const int NOT_IN_TOC; - /// for new environment insets - std::string latexheader; - /// for new environment insets - std::string latexfooter; - /// for new environment insets - std::string latexparagraph; /** true when the fragile commands in the paragraph need to be \protect'ed. */ @@ -234,12 +250,19 @@ public: /// until it has proper support for the caption inset (JMarc) static Layout * forCaption(); + +private: /// Name of the layout/paragraph environment docstring name_; + /// LaTeX name for environment std::string latexname_; -private: + /** Is this layout the default layout for an unknown layout? If + * so, its name will be displayed as xxx (unknown). + */ + bool unknown_; + /** Name of an layout that has replaced this layout. This is used to rename a layout, while keeping backward compatibility @@ -266,12 +289,46 @@ private: std::string labeltag_; /// Internal tag to surround the item text in a list) std::string itemtag_; + /// Tag for HTML output, e.g., h2. + std::string htmltag_; + /// Additional attributes for inclusion with the start tag, + /// e.g.: class='section'. + std::string htmlattr_; + /// Tag for individual paragraphs in an environment. In lists, this + /// would be something like "li". But it also needs to be set for + /// quotation, e.g., since the paragraphs in a quote need to be + /// in "p" tags. + std::string htmlitem_; + /// Attributes for htmlitem_ + std::string htmlitemattr_; + /// Tag for labels, of whatever sort. One use for this is in setting + /// descriptions, in which case it would be: dt. Another use is to + /// customize the display of, say, the auto-generated label for + /// sections (in that case, it might be: span). + std::string htmllabel_; + /// Attributes for the label. + std::string htmllabelattr_; + /// Whether to put the label before the item, or within the item. + /// I.e., do we have (true): + /// ... + /// or instead (false): + /// ... + /// The latter is the default. + bool htmllabelfirst_; + /// CSS information needed by this layout. + docstring htmlstyle_; + /// Any other info for the HTML header. + docstring htmlpreamble_; /// This is the `category' for this layout. The following are /// recommended basic categories: FrontMatter, BackMatter, MainText, /// Section, Starred, List, Theorem. docstring category_; /// Macro definitions needed for this layout docstring preamble_; + /// Language dependent macro definitions needed for this layout + docstring langpreamble_; + /// Language and babel dependent macro definitions needed for this layout + docstring babelpreamble_; /// Packages needed for this layout std::set requires_; };