]> git.lyx.org Git - features.git/blobdiff - src/insets/InsetText.h
Add basic support for cprotect
[features.git] / src / insets / InsetText.h
index ac0cf699982245ee80670b6a43302a78f6f3bb08..537c8bbfb5e831a171fd305ac4c5c82cc05aebde 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
@@ -47,7 +48,7 @@ public:
        void setBuffer(Buffer &);
 
        ///
-       Dimension const dimension(BufferView const &) const;
+       Dimension const dimensionHelper(BufferView const &) const;
 
        /// empty inset to empty par
        void clear();
@@ -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,17 +219,29 @@ public:
        std::string contextMenuName() const;
        ///
        void doDispatch(Cursor & cur, FuncRequest & cmd);
-protected:
-       ///
-       InsetCaption const * getCaptionInset() const;
+
        ///
-       docstring getCaptionText(OutputParams const &) const;
+       bool confirmDeletion() const { return !text().empty(); }
+
        ///
-       docstring getCaptionHTML(OutputParams const &) const;
+       bool needsCProtection() 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 hasCProtectContent() const;
        ///
        bool drawFrame_;
        ///