X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetminipage.h;h=5b2fcc52c02612300c554882c410718d41ff401e;hb=6ce86e2bfe0a403e0e811b66fdddb2d56cfe0f83;hp=a9800d08fd2117bb0d15e1dd0b9f0dd246d63e86;hpb=8ed9dbabde30b31a6a14e032fa42f682a196ef7a;p=lyx.git diff --git a/src/insets/insetminipage.h b/src/insets/insetminipage.h index a9800d08fd..5b2fcc52c0 100644 --- a/src/insets/insetminipage.h +++ b/src/insets/insetminipage.h @@ -1,42 +1,129 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor +/** + * \file insetminipage.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * Copyright 1998 The LyX Team. + * \author Jürgen Vigna + * \author Lars Gullik Bjønnes * - *====================================================== + * Full author contact details are available in file CREDITS */ -#ifndef InsetMinipage_H -#define InsetMinipage_H +#ifndef INSETMINIPAGE_H +#define INSETMINIPAGE_H -#ifdef __GNUG__ -#pragma interface -#endif #include "insetcollapsable.h" +#include "lyxlength.h" /** The minipage inset - + */ class InsetMinipage : public InsetCollapsable { public: /// - InsetMinipage(); + enum Position { + top, + center, + bottom + }; + /// + enum InnerPosition { + inner_center, + inner_top, + inner_bottom, + inner_stretch + }; + + /// + struct Params { + /// + Params(); + /// + Position pos; + /// + InnerPosition inner_pos; + /// + LyXLength height; + /// + LyXLength width; + /// + void write(std::ostream & os) const; + /// + void read(LyXLex & lex); + }; + + /// + InsetMinipage(BufferParams const &); + /// + InsetMinipage(InsetMinipage const &, bool same_id = false); + /// + ~InsetMinipage(); + /// + virtual dispatch_result localDispatch(FuncRequest const & cmd); + /// + void write(Buffer const * buf, std::ostream & os) const; + /// + void read(Buffer const * buf, LyXLex & lex); + /// + Inset * clone(Buffer const &, bool same_id = false) const; + /// + int ascent(BufferView *, LyXFont const &) const; + /// + int descent(BufferView *, LyXFont const &) const; + /// + Inset::Code lyxCode() const { return Inset::MINIPAGE_CODE; } + /// + int latex(Buffer const *, std::ostream &, bool fragile, bool fp) const; + /// + string const editMessage() const; + /// + bool insetAllowed(Inset::Code) const; + /// + int getMaxWidth(BufferView *, UpdatableInset const *) const; + /// + bool needFullRow() const { return false; } + /** 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; } + /// + bool showInsetDialog(BufferView *) const; + /// + int latexTextWidth(BufferView *) const; + /// + void params(Params const & p) { params_ = p; } + /// + Params const & params() const { return params_; } +private: + /// + Params params_; +}; + + +#include "mailinset.h" + + +class InsetMinipageMailer : public MailInset { +public: + /// + InsetMinipageMailer(InsetMinipage & inset); + /// + virtual InsetBase & inset() const { return inset_; } /// - void Write(Buffer const * buf, std::ostream & os) const; + virtual string const & name() const { return name_; } /// - Inset * Clone() const; + virtual string const inset2string() const; /// - Inset::Code LyxCode() const { return Inset::MINIPAGE_CODE; } + static void string2params(string const &, InsetMinipage::Params &); /// - int Latex(Buffer const *, std::ostream &, bool fragile, bool fp) const; + static string const params2string(InsetMinipage::Params const &); +private: /// - const char * EditMessage() const; + static string const name_; /// - bool InsertInsetAllowed(Inset * inset) const; + InsetMinipage & inset_; }; #endif