]> git.lyx.org Git - lyx.git/blobdiff - src/insets/inset.h
fix #832
[lyx.git] / src / insets / inset.h
index 9f865c0c3f607a777d326fadd963b079736d9113..b306b35f2b795ecbc5bc52ed55f522866df801c7 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 BufferView;
 class Buffer;
 class Painter;
 class LyXText;
 class LyXLex;
 class Paragraph;
+class ParagraphList;
 class LyXCursor;
 class FuncRequest;
 class WordLangTuple;
@@ -124,7 +124,13 @@ public:
                ///
                INDEX_PRINT_CODE,
                ///
-               OPTARG_CODE
+               OPTARG_CODE,
+               ///
+               ENVIRONMENT_CODE,
+               ///
+               HFILL_CODE,
+               ///
+               NEWLINE_CODE
        };
 
        ///
@@ -157,23 +163,16 @@ public:
        ///
        virtual int width(BufferView *, LyXFont const &) const = 0;
        ///
-       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
@@ -265,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.
@@ -321,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.
         *
@@ -337,17 +338,11 @@ public:
         *  defaults to empty.
         */
        virtual void generatePreview() const {}
-       ///
-       virtual void cache(BufferView *) const {}
-       ///
-       virtual BufferView * view() const { return 0; }
 
 protected:
        ///
        mutable int top_x;
        ///
-       mutable bool topx_set; /* have we already drawn ourself! */
-       ///
        mutable int top_baseline;
        ///
        mutable int scx;
@@ -385,7 +380,7 @@ bool Inset::checkInsertChar(LyXFont &)
  * returns true if pointer argument is valid
  * and points to an editable inset
  */
-inline bool isEditableInset(Inset * i)
+inline bool isEditableInset(Inset const * i)
 {
        return i && i->editable();
 }
@@ -394,7 +389,7 @@ inline bool isEditableInset(Inset * i)
  * returns true if pointer argument is valid
  * and points to a highly editable inset
  */
-inline bool isHighlyEditableInset(Inset * i)
+inline bool isHighlyEditableInset(Inset const * i)
 {
        return i && i->editable() == Inset::HIGHLY_EDITABLE;
 }