]> git.lyx.org Git - lyx.git/blobdiff - src/insets/Inset.h
Revert "Do not crash is release mode if we stumble across an unrealized font."
[lyx.git] / src / insets / Inset.h
index b18f8a5f02ecefdd32a72f313cc9e987c173aacd..bb6323a45447a999fc0e2a0b43ffd829cb4df1e0 100644 (file)
@@ -74,7 +74,7 @@ std::string insetName(InsetCode);
 /// Eg, insetDisplayName(BRANCH_CODE) == _("Branch")
 docstring insetDisplayName(InsetCode);
 ///
-static int const TOC_ENTRY_LENGTH = 40;
+static int const TOC_ENTRY_LENGTH = 120;
 
 /// Common base class to all insets
 
@@ -108,8 +108,6 @@ public:
 
        /// change associated Buffer
        virtual void setBuffer(Buffer & buffer);
-       /// remove the buffer reference
-       void resetBuffer() { setBuffer( *static_cast<Buffer *>(0)); }
        /// retrieve associated Buffer
        virtual Buffer & buffer();
        virtual Buffer const & buffer() const;
@@ -263,10 +261,6 @@ public:
        virtual row_type row(idx_type) const { return 0; }
        /// cell index corresponding to row and column;
        virtual idx_type index(row_type row, col_type col) const;
-       /// any additional x-offset when drawing a cell?
-       virtual int cellXOffset(idx_type) const { return 0; }
-       /// any additional y-offset when drawing a cell?
-       virtual int cellYOffset(idx_type) const { return 0; }
        /// number of embedded cells
        virtual size_t nargs() const { return 0; }
        /// number of rows in gridlike structures
@@ -333,8 +327,9 @@ public:
        virtual void toString(odocstream &) const {}
        /// Appends a potentially abbreviated version of the inset to
        /// \param str. Intended for use by the TOC.
-       virtual void forToc(docstring & str,
-                           size_t maxlen = TOC_ENTRY_LENGTH) const;
+       virtual void forOutliner(docstring & str,
+                                                        size_t const maxlen = TOC_ENTRY_LENGTH,
+                                                        bool const shorten = true) const;
 
        /// can the contents of the inset be edited on screen ?
        // true for InsetCollapsables (not ButtonOnly) (not InsetInfo), InsetText
@@ -349,12 +344,17 @@ public:
        // 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; }
+       virtual bool clickable(BufferView const &, int, int) const { return false; }
        /// Move one cell backwards
        virtual bool allowsCaptionVariation(std::string const &) const { return false; }
+       // true for insets that have a table structure (InsetMathGrid, InsetTabular)
+       virtual bool isTable() const { return false; }
 
        /// does this contain text that can be change track marked in DVI?
        virtual bool canTrackChanges() const { return false; }
+       /// Will this inset paint its own change tracking status (in the parent
+       /// paragraph) or will it let RowPainter handle it?
+       virtual bool canPaintChange(BufferView const &) const { return false; }
        /// return true if the inset should be removed automatically
        virtual bool autoDelete() const;
 
@@ -404,12 +404,17 @@ public:
                { return true; }
        /// Is the width forced to some value?
        virtual bool hasFixedWidth() const { return false; }
+       /// if this inset has paragraphs should they be forced to use a
+       /// local font language switch?
+       virtual bool forceLocalFontSwitch() const { return false; }
 
        /// Is the content of this inset part of the output document?
        virtual bool producesOutput() const { return true; }
 
        /// \return Tool tip for this inset.
-       /// This default implementation returns an empty string.
+       /// This default implementation returns an empty string. This can be
+       /// either plain text or Qt html, and formatToolTip will be called
+       /// on it before display in both cases.
        virtual docstring toolTip(BufferView const & bv, int x, int y) const;
        
        /// \return Context menu identifier. This function determines
@@ -437,8 +442,8 @@ public:
        /// is this equivalent to a space (which is BTW different from
        /// a line separator)?
        virtual bool isSpace() const { return false; }
-       /// is this an expandible space (rubber length)?
-       virtual bool isStretchableSpace() const { return false; }
+       /// does this inset try to use all available space (like \\hfill does)?
+       virtual bool isHfill() const { return false; }
 
        enum DisplayType {
                Inline = 0,
@@ -496,7 +501,15 @@ public:
        /// Add an entry to the TocList
        /// Pass a DocIterator that points at the paragraph containing
        /// the inset
-       virtual void addToToc(DocIterator const & /* di */, bool /* output_active */) const {}
+       ///
+       /// \param output_active : is the inset active or is it in an inactive
+       /// branch or a note?
+       ///
+       /// \param utype : is the toc being generated for use by the output
+       /// routines?
+       virtual void addToToc(DocIterator const & /* di */,
+                                                 bool /* output_active */,
+                                                 UpdateType /* utype*/) const {}
        /// Collect BibTeX information
        virtual void collectBibKeys(InsetIterator const &) const {}
        /// Update the counters of this inset and of its contents.