X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxlayout.h;h=7cdff88aa062b1c0bd633e84b231b12e237de102;hb=024275f0690b41634e26dabe8758e3dc6cd31ee2;hp=ff6d1446f55c96c0264aa3fbceee544f5601792a;hpb=8283e978f8d621041c432b9b88a476bfd567385c;p=lyx.git diff --git a/src/lyxlayout.h b/src/lyxlayout.h index ff6d1446f5..7cdff88aa0 100644 --- a/src/lyxlayout.h +++ b/src/lyxlayout.h @@ -1,25 +1,28 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== +/** + * \file lyxlayout.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * LyX, The Document Processor + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes + * \author André Pönitz * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2001 The LyX Team. - * - * ====================================================== */ + * Full author contact details are available in file CREDITS. + */ #ifndef LYX_LAYOUT_H #define LYX_LAYOUT_H -#ifdef __GNUG__ -#pragma interface -#endif - #include "lyxfont.h" #include "layout.h" #include "Spacing.h" -#include "LString.h" +#include "support/docstring.h" + +#include + + +namespace lyx { class LyXLex; class LyXTextClass; @@ -30,7 +33,7 @@ public: /// LyXLayout(); /// - bool Read(LyXLex &, LyXTextClass const &); + bool read(LyXLex &, LyXTextClass const &); /// void readAlign(LyXLex &); /// @@ -46,23 +49,31 @@ public: /// void readSpacing(LyXLex &); /// - string const & name() const; + std::string const & name() const; /// - void setName(string const & n); + void setName(std::string const & n); /// - string const & obsoleted_by() const; + std::string const & obsoleted_by() const; /// - string const & latexname() const { return latexname_; } + std::string const & depends_on() const; /// - string const & labelstring() const { return labelstring_; } + std::string const & latexname() const { return latexname_; } /// - string const & endlabelstring() const { return endlabelstring_; } + lyx::docstring const & labelstring() const { return labelstring_; } /// - string const & preamble() const { return preamble_; } + lyx::docstring const & endlabelstring() const { return endlabelstring_; } /// - string const & latexparam() const { return latexparam_; } + docstring const & preamble() const { return preamble_; } /// - string const & labelstring_appendix() const { + std::string const & latexparam() const { return latexparam_; } + /// + std::string const & innertag() const { return innertag_; } + /// + std::string const & labeltag() const { return labeltag_; } + /// + std::string const & itemtag() const { return itemtag_; } + /// + lyx::docstring const & labelstring_appendix() const { return labelstring_appendix_; } /** Default font for this layout/environment. @@ -93,75 +104,69 @@ public: LyXFont reslabelfont; /// 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; - + std::string rightmargin; /// Text that dictates how much space to leave after a potential label - string labelsep; - + std::string labelsep; /// Text that dictates how much space to leave before a potential label - string labelindent; - - /** Text that dictates the width of the indentation of - indented paragraphs. - */ - string parindent; - + std::string labelindent; + /// Text that dictates the width of the indentation of indented pars + std::string parindent; /// - float parskip; - + double parskip; /// - float itemsep; - + double itemsep; /// - float topsep; - + double topsep; /// - float bottomsep; - + double bottomsep; /// - float labelbottomsep; - + double labelbottomsep; /// - float parsep; - + double parsep; /// Spacing spacing; - /// LyXAlignment align; - /// LyXAlignment alignpossible; - /// - char labeltype; // add approp. type - + LYX_LABEL_TYPES labeltype; /// LYX_END_LABEL_TYPES endlabeltype; - /// LYX_MARGIN_TYPE margintype; - /// bool fill_top; - /// bool fill_bottom; - /// bool newline_allowed; - /// bool nextnoindent; - /// bool free_spacing; - /// bool pass_thru; + /** + * Whether this layout was declared with "Environment xxx" as opposed + * to "Style xxx". This is part of some unfinished generic environment + * handling (see also InsetEnvironment) started by Andre. No layout + * that is shipped with LyX has this flag set. + * Don't confuse this with isEnvironment()! + */ + bool is_environment; + /// show this in toc + 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. */ @@ -179,6 +184,7 @@ public: /// bool isEnvironment() const { return (latextype == LATEX_ENVIRONMENT + || latextype == LATEX_BIB_ENVIRONMENT || latextype == LATEX_ITEM_ENVIRONMENT || latextype == LATEX_LIST_ENVIRONMENT); } @@ -186,33 +192,50 @@ public: LYX_LATEX_TYPES latextype; /// Does this object belong in the title part of the document? bool intitle; + /// Does this layout allow for an optional parameter? + int optionalargs; + /// Which counter to step + lyx::docstring counter; + /// Depth of XML command + int commanddepth; + private: /// Name of the layout/paragraph environment - string name_; + std::string name_; /** Name of an layout that has replaced this layout. This is used to rename a layout, while keeping backward compatibility */ - string obsoleted_by_; + std::string obsoleted_by_; - /// LaTeX name for environment - string latexname_; + /** Name of an layout which preamble must come before this one + This is used when the preamble snippet uses macros defined in + another preamble + */ + std::string depends_on_; + /// LaTeX name for environment + std::string latexname_; /// Label string. "Abstract", "Reference", "Caption"... - string labelstring_; - + lyx::docstring labelstring_; /// - string endlabelstring_; - + lyx::docstring endlabelstring_; /// Label string inside appendix. "Appendix", ... - string labelstring_appendix_; - + lyx::docstring labelstring_appendix_; /// LaTeX parameter for environment - string latexparam_; - + std::string latexparam_; + /// Internal tag to use (e.g., for sect header) + std::string innertag_; + /// Internal tag to use e.g. to surround varlistentry label) + std::string labeltag_; + /// Internal tag to surround the item text in a list) + std::string itemtag_; /// Macro definitions needed for this layout - string preamble_; + docstring preamble_; }; + +} // namespace lyx + #endif