#ifndef INSET_H
#define INSET_H
-
-#include <vector>
#include "LString.h"
#include "LColor.h"
#include "insetbase.h"
-#include "frontends/mouse_state.h"
#include "support/types.h"
+#include <vector>
+
class LyXFont;
+class Dimension;
class Buffer;
class Painter;
+class LatexRunParams;
class LyXText;
class LyXLex;
class Paragraph;
+class ParagraphList;
class LyXCursor;
class FuncRequest;
class WordLangTuple;
///
MINIPAGE_CODE,
///
+ SPACE_CODE,
+ ///
SPECIALCHAR_CODE, // 25
///
TABULAR_CODE,
///
OPTARG_CODE,
///
- ENVIRONMENT_CODE,
+ ENVIRONMENT_CODE,
///
HFILL_CODE,
///
///
Inset(Inset const & in, bool same_id = false);
///
- virtual int ascent(BufferView *, LyXFont const &) const = 0;
+ virtual void dimension(BufferView *, LyXFont const &, Dimension &) const = 0;
+ ///
+ int ascent(BufferView *, LyXFont const &) const;
///
- virtual int descent(BufferView *, LyXFont const &) const = 0;
+ int descent(BufferView *, LyXFont const &) const;
///
- virtual int width(BufferView *, LyXFont const &) const = 0;
+ int width(BufferView *, LyXFont const &) const;
///
- virtual void draw(BufferView *, LyXFont const &,
- int baseline, float & x, bool cleared) const = 0;
+ virtual void draw(BufferView *, LyXFont const &, int baseline, float & x) const = 0;
/// update the inset representation
- virtual void update(BufferView *, LyXFont const &, bool = false)
+ virtual void update(BufferView *, bool = false)
{}
/// what appears in the minibuffer when opening
virtual string const editMessage() const;
///
- virtual void edit(BufferView *, int x, int y, mouse_button::state button);
- ///
- virtual void edit(BufferView *, bool front = true);
- ///
virtual EDITABLE editable() const;
///
virtual bool isTextInset() const { return false; }
- ///
- virtual bool doClearArea() const { return true; }
/// return true if the inset should be removed automatically
virtual bool autoDelete() const;
/// returns true the inset can hold an inset of given type
virtual void write(Buffer const *, std::ostream &) const = 0;
///
virtual void read(Buffer const *, LyXLex & lex) = 0;
- /** returns the number of rows (\n's) of generated tex code.
- fragile == true means, that the inset should take care about
- fragile commands by adding a \protect before.
- If the free_spc (freespacing) variable is set, then this inset
- is in a free-spacing paragraph.
- */
- virtual int latex(Buffer const *, std::ostream &, bool fragile,
- bool free_spc) const = 0;
+ /// returns the number of rows (\n's) of generated tex code.
+ virtual int latex(Buffer const *, std::ostream &,
+ LatexRunParams const &) const = 0;
///
virtual int ascii(Buffer const *,
std::ostream &, int linelen = 0) const = 0;
virtual Inset * getInsetFromID(int /*id*/) const { return 0; }
/// if this insets owns paragraphs (f.ex. InsetText) then it
/// should return it's very first one!
- virtual Paragraph * firstParagraph() const { return 0; }
+ virtual ParagraphList * getParagraphs(int /*num*/) const { return 0; }
///
- virtual Paragraph * getFirstParagraph(int /*num*/) const { return 0; }
+ virtual bool haveParagraphs() const {
+ return false;
+ }
/// return the cursor if we own one otherwise giv'em just the
/// BufferView cursor to work with.
/// mark the inset contents as erased (for change tracking)
virtual void markErased() {}
-
+
/** Adds a LaTeX snippet to the Preview Loader for transformation
* into a bitmap image. Does not start the laoding process.
*
///
mutable int top_x;
///
- mutable bool topx_set; /* have we already drawn ourself! */
- ///
mutable int top_baseline;
///
mutable int scx;