]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetcollapsable.h
prevent crash when inserting minipage in table cell,
[lyx.git] / src / insets / insetcollapsable.h
index f5b05f62116153bac57d107d9cb6bb09760d50cd..30ad137784b2126844d503a780a3b172002e97ed 100644 (file)
 #ifndef INSETCOLLAPSABLE_H
 #define INSETCOLLAPSABLE_H
 
-
 #include "inset.h"
 #include "insettext.h"
 #include "lyxfont.h"
+#include "funcrequest.h" // for adjustCommand
 #include "LColor.h"
+#include "box.h"
 
 #include <boost/weak_ptr.hpp>
 
@@ -37,36 +38,27 @@ public:
        ///
        static int const TEXT_TO_BOTTOM_OFFSET = 2;
        /// inset is initially collapsed if bool = true
-       InsetCollapsable(BufferParams const &, bool = false);
+       InsetCollapsable(BufferParams const &, bool collapsed = false);
        ///
-       InsetCollapsable(InsetCollapsable const & in, bool same_id = false);
+       InsetCollapsable(InsetCollapsable const & in);
        ///
        void read(Buffer const *, LyXLex &);
        ///
        void write(Buffer const *, std::ostream &) const;
        ///
-       int ascent(BufferView *, LyXFont const &) const;
-       ///
-       int descent(BufferView *, LyXFont const &) const;
-       ///
-       int width(BufferView *, LyXFont const &) const;
+       void metrics(MetricsInfo &, Dimension &) const;
        ///
-       void draw(BufferView *, const LyXFont &, int , float &) const;
+       void draw(PainterInfo & pi, int x, int y) const;
        /// draw, either inlined (no button) or collapsed/open
-       void draw(BufferView * bv, LyXFont const & f,
-                 int baseline, float & x, bool inlined) const;
+       void draw(PainterInfo & pi, int x, int y, bool inlined) const;
        ///
-       void update(BufferView *, bool =false);
-       ///
-       void edit(BufferView *, int, int, mouse_button::state);
-       ///
-       void edit(BufferView *, bool front = true);
+       bool hitButton(FuncRequest const &) const;
        ///
        EDITABLE editable() const;
        ///
-       bool insertInset(BufferView *, Inset * inset);
+       bool insertInset(BufferView *, InsetOld * inset);
        ///
-       virtual bool insetAllowed(Inset::Code code) const {
+       virtual bool insetAllowed(InsetOld::Code code) const {
                return inset.insetAllowed(code);
        }
        ///
@@ -81,14 +73,14 @@ public:
        bool unlockInsetInInset(BufferView *, UpdatableInset *,
                                bool lr = false);
        ///
-       bool updateInsetInInset(BufferView *, Inset *);
+       bool updateInsetInInset(BufferView *, InsetOld *);
        ///
        int insetInInsetY() const;
        ///
        RESULT localDispatch(FuncRequest const &);
        ///
        int latex(Buffer const *, std::ostream &,
-                 bool fragile, bool free_spc) const;
+                 LatexRunParams const &) const;
        ///
        int ascii(Buffer const *, std::ostream &, int) const;
        ///
@@ -107,7 +99,7 @@ public:
        }
        UpdatableInset * getLockingInset() const;
        ///
-       UpdatableInset * getFirstLockingInsetOfType(Inset::Code);
+       UpdatableInset * getFirstLockingInsetOfType(InsetOld::Code);
        ///
        void setFont(BufferView *, LyXFont const &, bool toggleall = false,
                 bool selectall = false);
@@ -126,7 +118,7 @@ public:
        ///
        void resizeLyXText(BufferView *, bool force = false) const;
        ///
-       std::vector<string> const getLabelList() const;
+       void getLabelList(std::vector<string> &) const;
        ///
        bool nodraw() const;
        ///
@@ -140,9 +132,9 @@ public:
                UpdatableInset::scroll(bv, offset);
        }
        ///
-       Inset * getInsetFromID(int id) const;
+       InsetOld * getInsetFromID(int id) const;
        ///
-       Paragraph * getFirstParagraph(int) const;
+       ParagraphList * getParagraphs(int) const;
        ///
        LyXCursor const & cursor(BufferView *) const;
        ///
@@ -164,9 +156,9 @@ public:
        void toggleSelection(BufferView * bv, bool kill_selection) {
                inset.toggleSelection(bv, kill_selection);
        }
+
        void markErased();
+
        bool nextChange(BufferView * bv, lyx::pos_type & length);
 
        ///
@@ -176,7 +168,7 @@ public:
                            bool = true, bool = false);
 
        ///
-       void addPreview(grfx::PreviewLoader &) const;
+       void addPreview(lyx::graphics::PreviewLoader &) const;
 
 protected:
        ///
@@ -185,13 +177,11 @@ protected:
        virtual BufferView * view() const;
 
        ///
-       int ascent_collapsed() const;
-       ///
-       int descent_collapsed() const;
+       void dimension_collapsed(Dimension &) const;
        ///
-       int width_collapsed() const;
+       int height_collapsed() const;
        ///
-       void draw_collapsed(Painter & pain, int , float &) const;
+       void draw_collapsed(PainterInfo & pi, int x, int y) const;
        ///
        int getMaxTextWidth(Painter & pain, UpdatableInset const *) const;
 
@@ -206,22 +196,16 @@ public:
        mutable InsetText inset;
 protected:
        ///
-       mutable int button_length;
-       ///
-       mutable int button_top_y;
-       ///
-       mutable int button_bottom_y;
+       mutable Box button_dim;
        ///
        mutable int topx;
        mutable int topbaseline;
 
 private:
        ///
-       void lfunMousePress(FuncRequest const &);
-       ///
-       bool lfunMouseRelease(FuncRequest const &);
+       void lfunMouseRelease(FuncRequest const &);
        ///
-       void lfunMouseMotion(FuncRequest const &);
+       FuncRequest adjustCommand(FuncRequest const &);
 
        ///
        mutable string label;