X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFloating.h;h=4672d9ac753b6f6cad0fef0b15b8ca17fe067628;hb=0ed820fa0b8ea11a390c182286c5b34a2686058a;hp=ae1a95f87be0a7e91dc05d2b9d2715eb0d8f4d3b;hpb=6eb15ce7229b74d45554d0b17f90bfd71c96483e;p=lyx.git diff --git a/src/Floating.h b/src/Floating.h index ae1a95f87b..4672d9ac75 100644 --- a/src/Floating.h +++ b/src/Floating.h @@ -12,6 +12,8 @@ #ifndef FLOATING_H #define FLOATING_H +#include "support/strfwd.h" + #include @@ -26,39 +28,73 @@ namespace lyx { class Floating { public: /// - Floating(); + Floating() : usesfloatpkg_(false), ispredefined_(false), + allowswide_(true), allowssideways_(true) {} /// Floating(std::string const & type, std::string const & placement, std::string const & ext, std::string const & within, std::string const & style, std::string const & name, - std::string const & listName, std::string const & htmlType, - std::string const & htmlClass, std::string const & htmlStyle, - bool builtin = false); + std::string const & listName, std::string const & listCmd, + std::string const & refPrefix, std::string const & allowedplacement, + std::string const & htmlTag, std::string const & htmlAttrib, + docstring const & htmlStyle, + std::string const & docbookAttr, std::string const & docbookTagType, + std::string const & required, bool usesfloat, bool ispredefined, + bool allowswide, bool allowssideways); + /// + std::string const & floattype() const { return floattype_; } + /// + std::string docbookFloatType() const; + /// + std::string const & placement() const { return placement_; } + /// + std::string const & ext() const {return ext_; } /// - std::string const & type() const; + std::string const & within() const { return within_; } /// - std::string const & placement() const; + std::string const & style() const { return style_; } /// - std::string const & ext() const; + std::string const & name() const { return name_; } + /// the title of a list of this kind of float + std::string const & listName() const { return listname_; } + /// the command used to generate that list. this has to be given + /// if usesFloatPkg() is false, unless this float uses the same + /// auxfile as another defined previously. this should not contain + /// the leading "\". + std::string const & listCommand() const { return listcommand_; } + /// prefix to use for formatted references to such floats + std::string const & refPrefix() const { return refprefix_; } + /// allowed placement options + std::string const & allowedPlacement() const { return allowedplacement_; } /// - std::string const & within() const; + bool usesFloatPkg() const { return usesfloatpkg_; } + /// allowed placement options + std::string const & required() const { return required_; } /// - std::string const & style() const; + bool isPredefined() const { return ispredefined_; } /// - std::string const & name() const; + bool allowsWide() const { return allowswide_; } /// - std::string const & listName() const; + bool allowsSideways() const { return allowssideways_; } /// style information, for preamble - std::string const & htmlStyle() const; - /// class, for css - std::string const & htmlClass() const; - /// tag type - std::string const & htmlType() const; + docstring const & htmlStyle() const { return html_style_; } + /// class, for css, defaults to "float-" + type() + std::string const & htmlAttrib() const; + /// tag type, defaults to "div" + std::string const & htmlTag() const; /// - bool builtin() const; + std::string docbookTag(bool hasTitle = false) const; + /// + std::string docbookAttr() const; + /// + std::string const & docbookTagType() const; + /// + std::string const & docbookCaption() const; private: /// - std::string type_; + std::string defaultCSSClass() const; + /// + std::string floattype_; /// std::string placement_; /// @@ -70,15 +106,39 @@ private: /// std::string name_; /// - std::string listName_; - /// HTML Element type, usually div - std::string htmlType_; - /// class attribute, e.g., float-table, for CSS - std::string htmlClass_; - /// CSS information for this element - std::string htmlStyle_; + std::string listname_; + /// + std::string listcommand_; + /// + std::string refprefix_; + /// + std::string allowedplacement_; + /// + std::string required_; + /// + bool usesfloatpkg_; + /// + bool ispredefined_; + /// + bool allowswide_; + /// + bool allowssideways_; + /// + mutable std::string html_tag_; + /// + mutable std::string html_attrib_; + /// + mutable std::string defaultcssclass_; /// - bool builtin_; + docstring html_style_; + // There is no way to override the DocBook tag based on the layouts: half of it is determined by whether the float + // has a title or not, an information that is not available in the layouts. + /// attribute (mostly, role) + mutable std::string docbook_caption_; + /// caption tag (mostly, either caption or title) + std::string docbook_attr_; + /// DocBook tag type (block, paragraph, inline) + mutable std::string docbook_tag_type_; };