X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFloating.h;h=ab57c4dd94b174d891a10b281c601997fd15235b;hb=26ba2a65838731ce639a09539f617cb0f0be3b22;hp=cde5c91c2e1bb7dd0ea8d55483dc04f3fc36ec90;hpb=57deff6c3d1b6751248f9764e6649d1e4e400f14;p=lyx.git diff --git a/src/Floating.h b/src/Floating.h index cde5c91c2e..ab57c4dd94 100644 --- a/src/Floating.h +++ b/src/Floating.h @@ -12,11 +12,13 @@ #ifndef FLOATING_H #define FLOATING_H +#include "support/strfwd.h" + #include namespace lyx { - + /** This is a "float layout" object. It contains the parameters for how to * handle the different kinds of floats, default ones and user created ones. * Objects of this class is stored in a container in FloatList. The different @@ -26,18 +28,25 @@ 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 & listCmd, - std::string const & refPrefix, - std::string const & htmlType, std::string const & htmlClass, - std::string const & htmlStyle, bool builtin = false); + std::string const & refPrefix, std::string const & allowedplacement, + std::string const & htmlTag, std::string const & htmlAttrib, + docstring const & htmlStyle, std::string const & docbookTag, + std::string const & docbookAttr, std::string const & docbookTagType, + std::string const & docbookFloatType, std::string const & docbookCaption, + 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_; } @@ -56,14 +65,32 @@ public: 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_; } /// bool usesFloatPkg() const { return usesfloatpkg_; } + /// allowed placement options + std::string const & required() const { return required_; } + /// + bool isPredefined() const { return ispredefined_; } + /// + bool allowsWide() const { return allowswide_; } + /// + bool allowsSideways() const { return allowssideways_; } /// style information, for preamble - std::string const & htmlStyle() const { return html_style_; } + 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; + /// + std::string docbookTag(bool hasTitle = false) const; + /// + std::string docbookAttr() const; + /// + std::string const & docbookTagType() const; + /// + std::string const & docbookCaption() const; private: /// std::string defaultCSSClass() const; @@ -86,15 +113,37 @@ private: /// 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_; - /// - std::string html_style_; + /// + 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_; + /// float tag + std::string docbook_tag_; + /// attributes for the float tag + std::string docbook_attr_; + /// DocBook tag type (block, paragraph, inline) + mutable std::string docbook_tag_type_; + /// DocBook float type, to override float_type_ (figure, table, algorithm, video) + std::string docbook_float_type_; };