*
* \author Angus Leeming
* \author Martin Vermeer
+ * \author Uwe Stöhr
*
* Full author contact details are available in file CREDITS.
*/
#ifndef INSETBOX_H
#define INSETBOX_H
-#include "InsetCollapsable.h"
+#include "InsetCollapsible.h"
#include "Length.h"
-#include "MailInset.h"
namespace lyx {
-class InsetBoxParams {
+class InsetBoxParams
+{
public:
///
- InsetBoxParams(std::string const &);
+ explicit InsetBoxParams(std::string const &);
///
void write(std::ostream & os) const;
///
void read(Lexer & lex);
+
///
std::string type;
- /// Use a parbox (true) or minipage (false)
+ /// Is there a parbox?
bool use_parbox;
+ /// Is there a makebox?
+ bool use_makebox;
/// Do we have an inner parbox or minipage to format paragraphs to
/// columnwidth?
bool inner_box;
///
Length width;
- /// "special" widths, see usrguide.dvi §3.5
+ /// "special" widths, see usrguide.dvi §3.5
std::string special;
///
char pos;
Length height;
///
std::string height_special;
+ ///
+ Length thickness;
+ ///
+ Length separation;
+ ///
+ Length shadowsize;
+ ///
+ std::string framecolor;
+ ///
+ std::string backgroundcolor;
};
-/** The fbox/fancybox inset
-*/
-class InsetBox : public InsetCollapsable {
+///////////////////////////////////////////////////////////////////////
+//
+// The fbox/fancybox inset
+//
+///////////////////////////////////////////////////////////////////////
+
+
+class InsetBox : public InsetCollapsible
+{
public:
///
- InsetBox(Buffer const &, std::string const &);
+ enum BoxType {
+ Frameless,
+ Boxed,
+ Framed,
+ ovalbox,
+ Ovalbox,
+ Shadowbox,
+ Shaded,
+ Doublebox
+ };
+ ///
+ InsetBox(Buffer *, std::string const &);
+
///
- ~InsetBox();
+ static std::string params2string(InsetBoxParams const &);
///
- docstring editMessage() const;
+ static void string2params(std::string const &, InsetBoxParams &);
+ ///
+ InsetBoxParams const & params() const { return params_; }
+
+ /// \name Public functions inherited from Inset class
+ //@{
///
InsetCode lyxCode() const { return BOX_CODE; }
///
- docstring name() const;
+ docstring layoutName() const;
///
void write(std::ostream &) const;
///
void read(Lexer & lex);
///
- void setButtonLabel();
- ///
void metrics(MetricsInfo &, Dimension &) const;
- /// show the Box dialog
- bool showInsetDialog(BufferView * bv) const;
///
- DisplayType display() const { return Inline; }
- //FIXME Is this the one we want? or is it:
- //allowParagraphCustomization(idx_type)?
+ ColorCode backgroundColor(PainterInfo const &) const;
///
- virtual bool forceEmptyLayout() const;
+ LyXAlignment contentAlignment() const;
///
- bool neverIndent() const { return true; }
+ bool allowParagraphCustomization(idx_type = 0) const { return !forcePlainLayout(); }
///
- bool noFontChange() const { return true; }
+ bool allowMultiPar() const;
///
- bool isMacroScope() const;
+ bool forcePlainLayout(idx_type = 0) const;
///
- int latex(odocstream &, OutputParams const &) const;
+ bool needsCProtection(bool const maintext = false,
+ bool const fragile = false) const;
///
- int plaintext(odocstream &, OutputParams const &) const;
+ bool neverIndent() const { return true; }
///
- int docbook(odocstream &, OutputParams const &) const;
+ bool inheritFont() const { return false; }
///
- void validate(LaTeXFeatures &) const;
+ void latex(otexstream &, OutputParams const &) const;
///
- InsetBoxParams const & params() const { return params_; }
+ int plaintext(odocstringstream & ods, OutputParams const & op,
+ size_t max_length = INT_MAX) const;
///
- bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
+ void docbook(XMLStream &, OutputParams const &) const;
///
- enum BoxType {
- Frameless,
- Boxed,
- Framed,
- ovalbox,
- Ovalbox,
- Shadowbox,
- Shaded,
- Doublebox
- };
-protected:
- InsetBox(InsetBox const &);
- virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
- /// Is the width forced to some value?
- virtual bool hasFixedWidth() const;
-private:
- friend class InsetBoxParams;
-
- virtual Inset * clone() const;
-
- /// used by the constructors
- void init();
+ docstring xhtml(XMLStream &, OutputParams const &) const;
///
- InsetBoxParams params_;
-};
-
-
-class InsetBoxMailer : public MailInset {
-public:
+ void validate(LaTeXFeatures &) const;
///
- InsetBoxMailer(InsetBox & inset);
+ bool hasFixedWidth() const;
///
- virtual Inset & inset() const { return inset_; }
+ std::string contextMenuName() const;
+ //@}
+
+ /// \name Public functions inherited from InsetCollapsible class
+ //@{
///
- virtual std::string const & name() const { return name_; }
+ void setButtonLabel();
+ //@}
+
+protected:
+ /// \name Protected functions inherited from Inset class
+ //@{
///
- virtual std::string const inset2string(Buffer const &) const;
+ bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
///
- static std::string const params2string(InsetBoxParams const &);
+ void doDispatch(Cursor & cur, FuncRequest & cmd);
///
- static void string2params(std::string const &, InsetBoxParams &);
+ Inset * clone() const { return new InsetBox(*this); }
+ //@}
private:
+ /// used by the constructors
+ void init();
+
///
- static std::string const name_;
- ///
- InsetBox & inset_;
+ friend class InsetBoxParams;
+ InsetBoxParams params_;
};
-
} // namespace lyx
-#endif // INSET_BOX_H
+#endif // INSETBOX_H