]> git.lyx.org Git - lyx.git/blobdiff - src/insets/Inset.h
InsetTabular.cpp: fix #6585 also for wrapped floats - thanks Vincent
[lyx.git] / src / insets / Inset.h
index 942faebcf120d660cfa7aac81d4eb252aecfb168..09211a0232560b326acc11e9fe79d53c47ef0cac 100644 (file)
@@ -107,20 +107,24 @@ public:
        /// retrieve associated Buffer
        virtual Buffer & buffer();
        virtual Buffer const & buffer() const;
-       /// This checks whether the Buffer * actually points to an open 
-       /// Buffer. It might not if that Buffer has been closed.
+       /// Returns true if buffer_ actually points to a Buffer that has
+       /// been loaded into LyX and is still open. Note that this will
+       /// always return false for cloned Buffers. If you want to allow
+       /// for the case of cloned Buffers, use isBufferValid().
+       bool isBufferLoaded() const;
+       /// Returns true if this is a loaded buffer or a cloned buffer.
        bool isBufferValid() const;
 
        /// initialize view for this inset.
        /**
          * This is typically used after this inset is created interactively.
          * Intented purpose is to sanitize internal state with regard to current
-         * Buffer. The default implementation calls buffer().updateLabels() if
+         * Buffer. The default implementation calls buffer().updateBuffer() if
          * the inset is labeled.
          *
          * \sa isLabeled()
          **/
-       virtual void initView();
+       virtual void initView() {};
        /// \return true if this inset is labeled.
        virtual bool isLabeled() const { return false; }
 
@@ -178,7 +182,6 @@ public:
        virtual Inset * editXY(Cursor & cur, int x, int y);
 
        /// compute the size of the object returned in dim
-       /// \retval true if metrics changed.
        virtual void metrics(MetricsInfo & mi, Dimension & dim) const = 0;
        /// draw inset and update (xo, yo)-cache
        virtual void draw(PainterInfo & pi, int x, int y) const = 0;
@@ -221,8 +224,10 @@ public:
        virtual bool isFreeSpacing() const;
        /// Don't eliminate empty paragraphs
        virtual bool allowEmpty() const;
-       /// Force inset into LTR environment if surroundings are RTL?
+       /// Force inset into LTR environment if surroundings are RTL
        virtual bool forceLTR() const;
+       /// whether to include this inset in the strings generated for the TOC
+       virtual bool isInToc() const;
 
        /// Where should we go when we press the up or down cursor key?
        virtual bool idxUpDown(Cursor & cur, bool up) const;
@@ -277,18 +282,20 @@ public:
        /// Returns true if cursor is now invalid, e.g. if former 
        /// insets in higher cursor slices of \c old do not exist 
        /// anymore.
-       /// \c cur is the new cursor, some slice points to this. Use the update flags to cause a redraw.
+       /// \c cur is the new cursor, some slice points to this. Use the update
+       /// flags to cause a redraw.
        virtual bool notifyCursorEnters(Cursor & /*cur*/)
                { return false; }
-       /// is called when the mouse enter or leave this inset
-       /// return true if this inset needs repaint
-       virtual bool setMouseHover(bool) { return false; }
+       /// is called when the mouse enters or leaves this inset
+       /// return true if this inset needs a repaint
+       virtual bool setMouseHover(BufferView const *, bool) const
+               { return false; }
        /// return true if this inset is hovered (under mouse)
        /// This is by now only used by mathed to draw corners 
        /// (Inset::drawMarkers() and Inset::drawMarkers2()).
        /// Other insets do not have to redefine this function to 
        /// return the correct status of mouseHovered.
-       virtual bool mouseHovered() const { return false; }
+       virtual bool mouseHovered(BufferView const *) const { return false; }
 
        /// request "external features"
        virtual void validate(LaTeXFeatures &) const {}
@@ -330,6 +337,8 @@ public:
        /// FIXME: merge with editable()
        // true for InsetTabular & InsetText
        virtual bool isActive() const { return nargs() > 0; }
+       /// can we click at the specified position ?
+       virtual bool clickable(int, int) const { return false; }
 
        /// does this contain text that can be change track marked in DVI?
        virtual bool canTrackChanges() const { return false; }
@@ -378,7 +387,8 @@ public:
        virtual bool forcePlainLayout(idx_type = 0) const { return false; }
        /// if this inset has paragraphs should the user be allowed to
        /// customize alignment, etc?
-       virtual bool allowParagraphCustomization(idx_type = 0) const { return true; }
+       virtual bool allowParagraphCustomization(idx_type = 0) const
+               { return true; }
        /// Is the width forced to some value?
        virtual bool hasFixedWidth() const { return false; }
 
@@ -478,7 +488,7 @@ public:
        /// Update the counters of this inset and of its contents.
        /// The boolean indicates whether we are preparing for output, e.g.,
        /// of XHTML.
-       virtual void updateLabels(ParIterator const &, UpdateType) {}
+       virtual void updateBuffer(ParIterator const &, UpdateType) {}
 
        /// Updates the inset's dialog
        virtual Buffer const * updateFrontend() const;
@@ -539,7 +549,7 @@ protected:
         *  Gets normally called from Cursor::dispatch(). Cursor::dispatch()
         *  assumes the common case of 'LFUN handled, need update'.
         *  This has to be overriden by calling Cursor::undispatched() or
-        *  Cursor::noUpdate() if appropriate.
+        *  Cursor::noScreenUpdate() if appropriate.
         *  If you need to call the dispatch method of some inset directly
         *  you may have to explicitly request an update at that place. Don't
         *  do it in doDispatch(), since that causes nested updates when