]> git.lyx.org Git - lyx.git/blobdiff - src/insets/inset.h
IU for validate(). I guess that's in the 'don't ask' category...
[lyx.git] / src / insets / inset.h
index d75ac50cf64683a15122bed386f4ca44ee32bb2c..1bdf56775157170739978a5e6959c686c9bb8d05 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 Buffer;
 class Painter;
+class LatexRunParams;
 class LyXText;
 class LyXLex;
 class Paragraph;
 class LyXCursor;
 class FuncRequest;
 class WordLangTuple;
-
-struct LaTeXFeatures;
+class ParagraphList;
 
 namespace grfx {
        class PreviewLoader;
@@ -81,8 +80,6 @@ public:
                ///
                GRAPHICS_CODE,
                ///
-               PARENT_CODE,
-               ///
                BIBITEM_CODE,
                ///
                BIBTEX_CODE,
@@ -101,6 +98,8 @@ public:
                ///
                MINIPAGE_CODE,
                ///
+               SPACE_CODE,
+               ///
                SPECIALCHAR_CODE, // 25
                ///
                TABULAR_CODE,
@@ -125,7 +124,7 @@ public:
                ///
                OPTARG_CODE,
                ///
-               ENVIRONMENT_CODE, 
+               ENVIRONMENT_CODE,
                ///
                HFILL_CODE,
                ///
@@ -154,31 +153,22 @@ public:
        ///
        Inset();
        ///
-       Inset(Inset const & in, bool same_id = false);
+       Inset(Inset const & in);
        ///
-       virtual int ascent(BufferView *, LyXFont const &) 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;
-       ///
-       virtual void draw(BufferView *, LyXFont const &,
-                         int baseline, float & x, bool cleared) const = 0;
+       int width(BufferView *, LyXFont const &) const;
        /// 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
@@ -189,14 +179,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;
@@ -204,8 +189,6 @@ public:
        virtual int linuxdoc(Buffer const *, std::ostream &) const = 0;
        ///
        virtual int docbook(Buffer const *, std::ostream &, bool) const = 0;
-       /// Updates needed features for this inset.
-       virtual void validate(LaTeXFeatures & features) const;
 
        /// returns LyX code associated with the inset. Used for TOC, ...)
        virtual Inset::Code lyxCode() const { return NO_CODE; }
@@ -215,7 +198,7 @@ public:
        }
 
        ///
-       virtual Inset * clone(Buffer const &, bool same_ids = false) const = 0;
+       virtual Inset * clone(Buffer const &) const = 0;
 
        /// returns true to override begin and end inset in file
        virtual bool directWrite() const;
@@ -270,9 +253,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.
@@ -326,7 +311,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.
         *
@@ -347,8 +332,6 @@ protected:
        ///
        mutable int top_x;
        ///
-       mutable bool topx_set; /* have we already drawn ourself! */
-       ///
        mutable int top_baseline;
        ///
        mutable int scx;