#ifndef FLOATING_H
#define FLOATING_H
+#include "support/strfwd.h"
+
#include <string>
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
std::string const & style, std::string const & name,
std::string const & listName, std::string const & listCmd,
std::string const & refPrefix, std::string const & allowedplacement,
- std::string const & htmlType, std::string const & htmlClass,
- std::string const & htmlStyle, bool usesfloat, bool isprefined,
+ 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_; }
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 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;
///
std::string allowedplacement_;
///
+ std::string required_;
+ ///
bool usesfloatpkg_;
///
bool ispredefined_;
///
- bool allowswide_;
+ bool allowswide_;
+ ///
+ bool allowssideways_;
///
- 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_;
};