]> git.lyx.org Git - lyx.git/blobdiff - src/insets/inset.h
Don't remove cell selections after fontchange.
[lyx.git] / src / insets / inset.h
index 9e9c654d1ab704855a0eab2d5cf44ac8102be078..aae88009d78c4c7e8be4955fcd897013adda9cab 100644 (file)
@@ -159,7 +159,12 @@ public:
        /// This is called when the user clicks inside an inset
        virtual void insetButtonPress(BufferView *, int, int, int) {}
        /// This is called when the user releases the button inside an inset
-       virtual void insetButtonRelease(BufferView *, int, int, int) {}
+       // the bool return is used to see if we opened a dialog so that we can
+       // check this from an outer inset and open the dialog of the outer inset
+       // if that one has one!
+       ///
+       virtual bool insetButtonRelease(BufferView *, int, int, int)
+               { return false; }
        /// This is called when the user moves the mouse inside an inset
        virtual void insetMotionNotify(BufferView *, int , int , int) {}
        ///
@@ -186,7 +191,7 @@ public:
                          bool free_spc) const = 0;
        ///
        virtual int ascii(Buffer const *,
-                         std::ostream &, int linelen = 0) const = 0;
+                         std::ostream &, int linelen = 0) const = 0;
        ///
        virtual int linuxdoc(Buffer const *, std::ostream &) const = 0;
        ///
@@ -300,10 +305,23 @@ public:
        ///
        virtual bool allowSpellcheck() { return false; }
 
+       // should this inset be handled like a normal charater
+       virtual bool isChar() const { return false; }
        // is this equivalent to a letter?
        virtual bool isLetter() const { return false; }
-       // is this equivalent to a space?
+       // is this equivalent to a space (which is BTW different from
+       // a line separator)?
        virtual bool isSpace() const { return false; }
+       // should we break lines after this inset?
+       virtual bool isLineSeparator() const { return false; }
+       // if this inset has paragraphs should they be output all as default
+       // paragraphs with "Standard" layout?
+       virtual bool forceDefaultParagraphs(Inset const *) const;
+       // needed for widths which are % of something
+       /* returns the value of \textwidth in this inset. Most of the
+           time this is the width of the workarea, but if there is a
+           minipage somewhere, it will be the width of this minipage */
+       virtual int latexTextWidth(BufferView *) const;
 
 protected:
        ///
@@ -430,8 +448,12 @@ public:
        ///
        virtual void insetButtonPress(BufferView *, int x, int y, int button);
        ///
-       virtual void insetButtonRelease(BufferView *,
-                                       int x, int y, int button);
+       // the bool return is used to see if we opened a dialog so that we can
+       // check this from an outer inset and open the dialog of the outer inset
+       // if that one has one!
+       ///
+       virtual bool insetButtonRelease(BufferView *,
+                                       int x, int y, int button);
        ///
        virtual void insetKeyPress(XKeyEvent * ev);
        ///
@@ -503,10 +525,10 @@ public:
        // needed for search/replace functionality
        ///
        virtual bool searchForward(BufferView *, string const &,
-                                  bool const & = true, bool const & = false);
+                                  bool = true, bool = false);
        ///
        virtual bool searchBackward(BufferView *, string const &,
-                                   bool const & = true, bool const & = false);
+                                   bool = true, bool = false);
 
 protected:
        ///