]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetcollapsable.h
* src/LyXAction.C: mark goto-clear-bookmark as working without buffer
[lyx.git] / src / insets / insetcollapsable.h
index 61493dac2363892c5a908e2dd49afe7659f4045b..4a4f2fec1975ec54032431f4d9d3c762db02ff0d 100644 (file)
 #include "box.h"
 #include "lyxfont.h"
 
+#include <string>
+
+namespace lyx {
+
 class LyXText;
 class Paragraph;
 class CursorSlice;
 
-namespace lyx {
-namespace frontend {
-class Painter;
-}
-}
-
+namespace frontend { class Painter; }
 
 /** A collapsable text inset
 
@@ -43,27 +42,30 @@ public:
        ///
        InsetCollapsable(BufferParams const &, CollapseStatus status = Open);
        ///
+       InsetCollapsable(InsetCollapsable const & rhs);
+       ///
        void read(Buffer const &, LyXLex &);
        ///
        void write(Buffer const &, std::ostream &) const;
        ///
-       void metrics(MetricsInfo &, Dimension &) const;
+       bool metrics(MetricsInfo &, Dimension &) const;
        ///
        void draw(PainterInfo & pi, int x, int y) const;
        ///
        void drawSelection(PainterInfo & pi, int x, int y) const;
        /// return x,y of given position relative to the inset's baseline
-       void cursorPos(CursorSlice const & sl, bool boundary, int & x, int & y) const;
+       void cursorPos(BufferView const & bv, CursorSlice const & sl,
+               bool boundary, int & x, int & y) const;
        ///
        bool hitButton(FuncRequest const &) const;
        ///
-       std::string const getNewLabel(std::string const & l) const;
+       docstring const getNewLabel(docstring const & l) const;
        ///
        EDITABLE editable() const;
        /// can we go further down on mouse click?
        bool descendable() const;
        ///
-       void setLabel(std::string const & l);
+       void setLabel(docstring const & l);
        ///
        virtual void setButtonLabel() {}
        ///
@@ -80,6 +82,8 @@ public:
        bool getStatus(LCursor &, FuncRequest const &, FuncStatus &) const;
        ///
        void setStatus(LCursor & cur, CollapseStatus st);
+       ///
+       bool setMouseHover(bool mouse_hover);
 
 protected:
        ///
@@ -94,6 +98,10 @@ protected:
        InsetBase * editXY(LCursor & cur, int x, int y);
        ///
        void setInlined() { status_ = Inlined; }
+       /// Is the width forced to some value?
+       virtual bool hasFixedWidth() const { return false; }
+       ///
+       docstring floatName(std::string const & type, BufferParams const &);
 
 protected:
        ///
@@ -105,7 +113,7 @@ protected:
        ///
        mutable int topbaseline;
        ///
-       mutable std::string label;
+       mutable docstring label;
 private:
        ///
        mutable CollapseStatus status_;
@@ -115,9 +123,13 @@ private:
        mutable bool autoOpen_;
        ///
        mutable Dimension textdim_;
+       /// changes color when mouse enters/leaves this inset
+       bool mouse_hover_;
 };
 
 // A helper function that pushes the cursor out of the inset.
 void leaveInset(LCursor & cur, InsetBase const & in);
 
+} // namespace lyx
+
 #endif