]> git.lyx.org Git - features.git/blobdiff - src/insets/InsetText.h
Use new display() values to remove some inset hardcoding.
[features.git] / src / insets / InsetText.h
index 5bc7c523eb0fe9c11a355d760862a5788f90eba1..41bfa183671f664bef0141244b024ee6246ba447 100644 (file)
@@ -25,6 +25,7 @@ class Dimension;
 class ParagraphList;
 class InsetCaption;
 class InsetTabular;
+class TocBuilder;
 
 /**
  A text inset is like a TeX box to write full text
@@ -92,11 +93,11 @@ public:
                WriteEverything = 7
        };
        ///
-       docstring insetAsXHTML(XHTMLStream &, OutputParams const &, 
+       docstring insetAsXHTML(XHTMLStream &, OutputParams const &,
                               XHTMLOptions) const;
        ///
        void validate(LaTeXFeatures & features) const;
-       
+
        /// return the argument(s) only
        void getArgs(otexstream & os, OutputParams const &, bool const post = false) const;
 
@@ -168,7 +169,7 @@ public:
 
        /// Update the counters of this inset and of its contents
        virtual void updateBuffer(ParIterator const &, UpdateType);
-       /// 
+       ///
        void setMacrocontextPositionRecursive(DocIterator const & pos);
        ///
        void toString(odocstream &) const;
@@ -176,7 +177,7 @@ public:
        void forOutliner(docstring &, size_t const, bool const) const;
        ///
        void addToToc(DocIterator const & di, bool output_active,
-                                 UpdateType utype) const;
+                                 UpdateType utype, TocBackend & backend) const;
        ///
        Inset * clone() const { return new InsetText(*this); }
        ///
@@ -204,7 +205,7 @@ public:
        /// \param prefix: a string that will preced the tooltip,
        /// e.g., "Index: ".
        /// \param len: length of the resulting string
-       /// NOTE This routine is kind of slow. It's fine to use it within the 
+       /// NOTE This routine is kind of slow. It's fine to use it within the
        /// GUI, but definitely do not try to use it in updateBuffer or anything
        /// of that sort. (Note: unnecessary internal copies have been removed
        /// since the previous note. The efficiency would have to be assessed
@@ -218,11 +219,30 @@ public:
        std::string contextMenuName() const;
        ///
        void doDispatch(Cursor & cur, FuncRequest & cmd);
+
+       ///
+       bool confirmDeletion() const { return !text().empty(); }
+
+       ///
+       bool needsCProtection(bool const maintext = false,
+                             bool const fragile = false) const;
+       ///
+       bool hasCProtectContent(bool const fragile = false) const;
+
 protected:
        ///
        void iterateForToc(DocIterator const & cdit, bool output_active,
-                                          UpdateType utype) const;
+                                          UpdateType utype, TocBackend & backend) const;
 private:
+       /// Open the toc item for paragraph pit. Returns the paragraph index where
+       /// it should end.
+       pit_type openAddToTocForParagraph(pit_type pit,
+                                         DocIterator const & dit,
+                                         bool output_active,
+                                         TocBackend & backend) const;
+       /// Close a toc item opened in start and closed in end
+       void closeAddToTocForParagraph(pit_type start, pit_type end,
+                                      TocBackend & backend) const;
        ///
        bool drawFrame_;
        ///