* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Jürgen Vigna
- * \author Lars Gullik Bjønnes
+ * \author Jürgen Vigna
+ * \author Lars Gullik Bjønnes
*
* Full author contact details are available in file CREDITS.
*/
-#ifndef INSETFLOAT_H
-#define INSETFLOAT_H
+#ifndef INSET_FLOAT_H
+#define INSET_FLOAT_H
#include "InsetCollapsable.h"
-#include "MailInset.h"
namespace lyx {
-
class InsetFloatParams {
public:
///
- InsetFloatParams() : wide(false), sideways(false) {}
+ InsetFloatParams() : wide(false), sideways(false), subfloat(false) {}
///
void write(std::ostream & os) const;
///
std::string type;
///
std::string placement;
- ///
+ /// span columns
bool wide;
///
bool sideways;
+ ///
+ bool subfloat;
};
-/** The float inset
-*/
-class InsetFloat : public InsetCollapsable {
+/////////////////////////////////////////////////////////////////////////
+//
+// InsetFloat
+//
+/////////////////////////////////////////////////////////////////////////
+
+/// Used for "floating" objects like tables, figures etc.
+class InsetFloat : public InsetCollapsable
+{
public:
///
- InsetFloat(BufferParams const &, std::string const &);
+ InsetFloat(Buffer *, std::string const &);
///
~InsetFloat();
+
+ ///
+ static void string2params(std::string const &, InsetFloatParams &);
+ ///
+ static std::string params2string(InsetFloatParams const &);
+ ///
+ void setWide(bool w, bool update_label = true);
+ ///
+ void setSideways(bool s, bool update_label = true);
///
- docstring name() const { return name_; }
+ void setSubfloat(bool s, bool update_label = true);
///
- void write(Buffer const & buf, std::ostream & os) const;
+ void setNewLabel();
///
- void read(Buffer const & buf, Lexer & lex);
+ InsetFloatParams const & params() const { return params_; }
+private:
+ ///
+ docstring name() const;
+ ///
+ docstring toolTip(BufferView const & bv, int x, int y) const;
+ ///
+ void write(std::ostream & os) const;
+ ///
+ void read(Lexer & lex);
///
void validate(LaTeXFeatures & features) const;
///
InsetCode lyxCode() const { return FLOAT_CODE; }
///
- bool isMacroScope(Buffer const &) const { return true; }
+ int latex(odocstream &, OutputParams const &) const;
///
- int latex(Buffer const &, odocstream &,
- OutputParams const &) const;
+ int plaintext(odocstream &, OutputParams const &) const;
///
- int plaintext(Buffer const &, odocstream &,
- OutputParams const &) const;
+ int docbook(odocstream &, OutputParams const &) const;
///
- int docbook(Buffer const &, odocstream &,
- OutputParams const &) const;
- ///
- virtual docstring const editMessage() const;
+ docstring xhtml(XHTMLStream &, OutputParams const &) const;
///
bool insetAllowed(InsetCode) const;
/** returns true if, when outputing LaTeX, font changes should
insets that may contain several paragraphs */
bool noFontChange() const { return true; }
///
- void wide(bool w, BufferParams const &);
- ///
- void sideways(bool s, BufferParams const &);
- ///
- bool showInsetDialog(BufferView *) const;
- ///
- InsetFloatParams const & params() const { return params_; }
+ bool showInsetDialog(BufferView *) const;
///
bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
// Update the counters of this inset and of its contents
- virtual void updateLabels(Buffer const &, ParIterator const &);
-protected:
- virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
-private:
- ///
- virtual Inset * clone() const;
- ///
- InsetFloatParams params_;
- ///
- docstring name_;
-};
-
-
-class InsetFloatMailer : public MailInset {
-public:
- ///
- InsetFloatMailer(InsetFloat & inset);
- ///
- virtual Inset & inset() const { return inset_; }
+ void updateLabels(ParIterator const &, bool);
///
- virtual std::string const & name() const { return name_; }
+ void doDispatch(Cursor & cur, FuncRequest & cmd);
///
- virtual std::string const inset2string(Buffer const &) const;
+ Inset * clone() const { return new InsetFloat(*this); }
///
- static void string2params(std::string const &, InsetFloatParams &);
- ///
- static std::string const params2string(InsetFloatParams const &);
-private:
+ docstring getCaption(OutputParams const &) const;
///
- static std::string const name_;
+ InsetFloatParams params_;
///
- InsetFloat & inset_;
+ docstring name_;
};
} // namespace lyx
-#endif
+#endif // INSET_FLOAT_H