]> 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 4241b81d70af25256db90245e7a890ea9babbe92..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,
@@ -125,7 +129,11 @@ public:
                ///
                OPTARG_CODE,
                ///
-               HFILL_CODE
+               ENVIRONMENT_CODE,
+               ///
+               HFILL_CODE,
+               ///
+               NEWLINE_CODE
        };
 
        ///
@@ -152,29 +160,24 @@ 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;
        ///
-       virtual int descent(BufferView *, LyXFont const &) const = 0;
+       int ascent(BufferView *, LyXFont const &) const;
        ///
-       virtual int width(BufferView *, LyXFont const &) const = 0;
+       int descent(BufferView *, LyXFont const &) const;
        ///
-       virtual void draw(BufferView *, LyXFont const &,
-                         int baseline, float & x, bool cleared) const = 0;
+       int width(BufferView *, LyXFont const &) const;
+       ///
+       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
@@ -185,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;
@@ -266,9 +264,11 @@ 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 * 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.
@@ -322,7 +322,7 @@ public:
 
        /// 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.
         *
@@ -343,8 +343,6 @@ protected:
        ///
        mutable int top_x;
        ///
-       mutable bool topx_set; /* have we already drawn ourself! */
-       ///
        mutable int top_baseline;
        ///
        mutable int scx;