X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTocBackend.h;h=bc7a414745e71d2154c42f16fba4d4c271f46959;hb=e100536d59170a1c99437ea22b6fd1bea864bcf0;hp=32e3e02e8e5bd87ec1c0cf7469106f215d2b7698;hpb=6876ffa65b7dcc30b77f0e511de10279fae16348;p=lyx.git diff --git a/src/TocBackend.h b/src/TocBackend.h index 32e3e02e8e..bc7a414745 100644 --- a/src/TocBackend.h +++ b/src/TocBackend.h @@ -38,11 +38,13 @@ class TocItem public: /// Default constructor for STL containers. - TocItem() {} + TocItem() : dit_(0) {} /// TocItem(DocIterator const & dit, int depth, - docstring const & s + docstring const & s, + bool output_active, + docstring const & t = docstring() ); /// ~TocItem() {} @@ -53,7 +55,13 @@ public: /// docstring const & str() const; /// + docstring const & tooltip() const; + /// docstring const asString() const; + /// + DocIterator const & dit() const; + /// + bool isOutput() const { return output_; } /// the action corresponding to the goTo above FuncRequest action() const; @@ -61,20 +69,28 @@ public: protected: /// Current position of item. DocIterator dit_; - /// nesting depth int depth_; - /// Full item string docstring str_; + /// The tooltip string + docstring tooltip_; + /// Is this item in a note, inactive branch, etc? + bool output_; }; /// -class Toc : public std::vector { +class Toc : public std::vector +{ public: typedef std::vector::const_iterator const_iterator; - const_iterator Toc::item(DocIterator const & dit) const; + typedef std::vector::iterator iterator; + const_iterator item(DocIterator const & dit) const; + /// Look for a TocItem given its depth and string. + /// \return The first matching item. + /// \retval end() if no item was found. + iterator item(int depth, docstring const & str); }; typedef Toc::const_iterator TocIterator; @@ -95,9 +111,9 @@ public: /// void setBuffer(Buffer const * buffer) { buffer_ = buffer; } /// - void update(); - /// - void updateItem(DocIterator const & pit); + void update(bool output_active); + /// \return true if the item was updated. + bool updateItem(DocIterator const & pit); /// TocList const & tocs() const { return tocs_; } @@ -114,7 +130,8 @@ public: ) const; /// - void writePlaintextTocList(std::string const & type, odocstream & os) const; + void writePlaintextTocList(std::string const & type, + odocstringstream & os, size_t max_length) const; private: ///