]> git.lyx.org Git - lyx.git/blobdiff - src/insets/inset.h
The free_spacing patch and fix to the mess that Rob discovered.
[lyx.git] / src / insets / inset.h
index 9f7aafa3c56a6637596c4a70b38f0f358902bac0..6bc007f2327791580e30e7131d23074203828dd0 100644 (file)
 #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;
@@ -101,6 +103,8 @@ public:
                ///
                MINIPAGE_CODE,
                ///
+               SPACE_CODE, 
+               ///
                SPECIALCHAR_CODE, // 25
                ///
                TABULAR_CODE,
@@ -156,11 +160,13 @@ public:
        ///
        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) const = 0;
        /// update the inset representation
@@ -169,10 +175,6 @@ public:
        /// 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; }
@@ -186,14 +188,9 @@ public:
        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;
@@ -267,7 +264,7 @@ public:
        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 * getFirstParagraph(int /*num*/) const { return 0; }
+       virtual ParagraphList * getParagraphs(int /*num*/) const { return 0; }
        ///
        virtual bool haveParagraphs() const {
                return false;