lyx_mirror/src/insets/insetfloat.h
Angus Leeming e22ee4208d port the minipage dialog to the new scheme. Various other small changes
in the inset mailers and in the controllers.
Enable the include dialog to be lauched for a new inset (should please John ;-)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6374 a592a061-630c-0410-9148-cb99ea01b6c8
2003-03-07 14:08:10 +00:00

120 lines
2.5 KiB
C++

// -*- C++ -*-
/**
* \file insetfloat.h
* 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
*
* Full author contact details are available in file CREDITS
*/
#ifndef InsetFloat_H
#define InsetFloat_H
#include "insetcollapsable.h"
#include "toc.h"
struct InsetFloatParams {
///
InsetFloatParams() : placement("htbp"), wide(false) {}
///
void write(std::ostream & os) const;
///
void read(LyXLex & lex);
///
string type;
///
string placement;
///
bool wide;
};
/** The float inset
*/
class InsetFloat : public InsetCollapsable {
public:
///
InsetFloat(BufferParams const &, string const &);
///
InsetFloat(InsetFloat const &, bool same_id = false);
///
~InsetFloat();
///
virtual dispatch_result localDispatch(FuncRequest const & cmd);
///
void write(Buffer const * buf, std::ostream & os) const;
///
void read(Buffer const * buf, LyXLex & lex);
///
void validate(LaTeXFeatures & features) const;
///
Inset * clone(Buffer const &, bool same_id = false) const;
///
Inset::Code lyxCode() const { return Inset::FLOAT_CODE; }
///
int latex(Buffer const *, std::ostream &, bool fragile, bool fp) const;
///
int docbook(Buffer const *, std::ostream &, bool mixcont) const;
///
string const editMessage() const;
///
bool insetAllowed(Inset::Code) const;
/** returns true if, when outputing LaTeX, font changes should
be closed before generating this inset. This is needed for
insets that may contain several paragraphs */
bool noFontChange() const { return true; }
///
string const & type() const;
///
void placement(string const & p);
///
string const & placement() const;
///
void wide(bool w, BufferParams const &);
///
bool wide() const;
///
void addToToc(toc::TocList &, Buffer const *) const;
///
bool showInsetDialog(BufferView *) const;
///
InsetFloatParams const & params() const { return params_; }
private:
///
InsetFloatParams params_;
};
#include "mailinset.h"
class InsetFloatMailer : public MailInset {
public:
///
InsetFloatMailer(InsetFloat & inset);
///
virtual Inset & inset() const { return inset_; }
///
virtual string const & name() const { return name_; }
///
virtual string const inset2string() const;
///
static void string2params(string const &, InsetFloatParams &);
///
static string const params2string(InsetFloatParams const &);
private:
///
static string const name_;
///
InsetFloat & inset_;
};
#endif