4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Lars Gullik Bjønnes
9 * Full author contact details are available in file CREDITS.
15 #include "support/strfwd.h"
22 /** This is a "float layout" object. It contains the parameters for how to
23 * handle the different kinds of floats, default ones and user created ones.
24 * Objects of this class is stored in a container in FloatList. The different
25 * InsetFloat(s) have a pointer/reference through the name of the Floating
26 * so that it knows how the different floats should be handled.
31 Floating() : usesfloatpkg_(false), ispredefined_(false),
32 allowswide_(true), allowssideways_(true) {}
34 Floating(std::string const & type, std::string const & placement,
35 std::string const & ext, std::string const & within,
36 std::string const & style, std::string const & name,
37 std::string const & listName, std::string const & listCmd,
38 std::string const & refPrefix, std::string const & allowedplacement,
39 std::string const & htmlTag, std::string const & htmlAttrib,
40 docstring const & htmlStyle, std::string const & docbookTag,
41 std::string const & docbookAttr, std::string const & docbookTagType,
42 std::string const & docbookFloatType, std::string const & docbookCaption,
43 std::string const & required, bool usesfloat, bool ispredefined,
44 bool allowswide, bool allowssideways);
46 std::string const & floattype() const { return floattype_; }
48 std::string docbookFloatType() const;
50 std::string const & placement() const { return placement_; }
52 std::string const & ext() const {return ext_; }
54 std::string const & within() const { return within_; }
56 std::string const & style() const { return style_; }
58 std::string const & name() const { return name_; }
59 /// the title of a list of this kind of float
60 std::string const & listName() const { return listname_; }
61 /// the command used to generate that list. this has to be given
62 /// if usesFloatPkg() is false, unless this float uses the same
63 /// auxfile as another defined previously. this should not contain
65 std::string const & listCommand() const { return listcommand_; }
66 /// prefix to use for formatted references to such floats
67 std::string const & refPrefix() const { return refprefix_; }
68 /// allowed placement options
69 std::string const & allowedPlacement() const { return allowedplacement_; }
71 bool usesFloatPkg() const { return usesfloatpkg_; }
72 /// allowed placement options
73 std::string const & required() const { return required_; }
75 bool isPredefined() const { return ispredefined_; }
77 bool allowsWide() const { return allowswide_; }
79 bool allowsSideways() const { return allowssideways_; }
80 /// style information, for preamble
81 docstring const & htmlStyle() const { return html_style_; }
82 /// class, for css, defaults to "float-" + type()
83 std::string const & htmlAttrib() const;
84 /// tag type, defaults to "div"
85 std::string const & htmlTag() const;
87 std::string docbookTag(bool hasTitle = false) const;
89 std::string docbookAttr() const;
91 std::string const & docbookTagType() const;
93 std::string const & docbookCaption() const;
96 std::string defaultCSSClass() const;
98 std::string floattype_;
100 std::string placement_;
110 std::string listname_;
112 std::string listcommand_;
114 std::string refprefix_;
116 std::string allowedplacement_;
118 std::string required_;
126 bool allowssideways_;
128 mutable std::string html_tag_;
130 mutable std::string html_attrib_;
132 mutable std::string defaultcssclass_;
134 docstring html_style_;
135 // There is no way to override the DocBook tag based on the layouts: half of it is determined by whether the float
136 // has a title or not, an information that is not available in the layouts.
137 /// attribute (mostly, role)
138 mutable std::string docbook_caption_;
140 std::string docbook_tag_;
141 /// attributes for the float tag
142 std::string docbook_attr_;
143 /// DocBook tag type (block, paragraph, inline)
144 mutable std::string docbook_tag_type_;
145 /// DocBook float type, to override float_type_ (figure, table, algorithm, video)
146 std::string docbook_float_type_;