#include "Spacing.h"
#include "support/docstring.h"
+#include <set>
+#include <string>
+
namespace lyx {
class Lexer;
public:
///
Layout();
+ /// is this layout a default layout created for an unknown layout
+ bool isUnknown() const { return unknown_; }
+ void setUnknown(bool unknown) { unknown_ = unknown; }
/// Reads a layout definition from file
+ /// \return true on success.
bool read(Lexer &, TextClass const &);
///
void readAlign(Lexer &);
///
docstring const & endlabelstring() const { return endlabelstring_; }
///
+ docstring const & category() const { return category_; }
+ ///
docstring const & preamble() const { return preamble_; }
///
+ std::set<std::string> const & requires() const { return requires_; }
+ ///
std::string const & latexparam() const { return latexparam_; }
///
std::string const & innertag() const { return innertag_; }
docstring const & labelstring_appendix() const {
return labelstring_appendix_;
}
+ ///
+ bool isParagraph() const { return latextype == LATEX_PARAGRAPH; }
+ ///
+ bool isCommand() const { return latextype == LATEX_COMMAND; }
+ ///
+ bool isEnvironment() const {
+ return latextype == LATEX_ENVIRONMENT
+ || latextype == LATEX_BIB_ENVIRONMENT
+ || latextype == LATEX_ITEM_ENVIRONMENT
+ || latextype == LATEX_LIST_ENVIRONMENT;
+ }
+
+ ///
+ bool operator==(Layout const &) const;
+ ///
+ bool operator!=(Layout const & rhs) const
+ { return !(*this == rhs); }
+
+ ////////////////////////////////////////////////////////////////
+ // 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
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
bool needprotect;
/// true when empty paragraphs should be kept.
bool keepempty;
- ///
- bool isParagraph() const { return latextype == LATEX_PARAGRAPH; }
- ///
- bool isCommand() const { return latextype == LATEX_COMMAND; }
- ///
- bool isEnvironment() const {
- return latextype == LATEX_ENVIRONMENT
- || latextype == LATEX_BIB_ENVIRONMENT
- || latextype == LATEX_ITEM_ENVIRONMENT
- || latextype == LATEX_LIST_ENVIRONMENT;
- }
/// Type of LaTeX object
LatexType latextype;
/// Does this object belong in the title part of the document?
/// 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:
/** Name of an layout that has replaced this layout.
This is used to rename a layout, while keeping backward
compatibility
*/
docstring depends_on_;
- /// LaTeX name for environment
- std::string latexname_;
/// Label string. "Abstract", "Reference", "Caption"...
docstring labelstring_;
///
std::string labeltag_;
/// Internal tag to surround the item text in a list)
std::string itemtag_;
+ /// 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_;
+ /// Packages needed for this layout
+ std::set<std::string> requires_;
};
} // namespace lyx