X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTocBackend.h;h=40d2dbafe1b06992af9a3b3404dc8abd7687574a;hb=d83e0022017fa6245173e55332f60b7a4a78dc31;hp=f9e700e379411c46706c8d884ffe8631cbf69fed;hpb=1e51e87f680a7a903d1c24bccf26598459efec47;p=lyx.git diff --git a/src/TocBackend.h b/src/TocBackend.h index f9e700e379..40d2dbafe1 100644 --- a/src/TocBackend.h +++ b/src/TocBackend.h @@ -33,15 +33,17 @@ class FuncRequest; */ class TocItem { + friend class Toc; friend class TocBackend; public: /// Default constructor for STL containers. - TocItem() {} + TocItem() : dit_(0) {} /// TocItem(DocIterator const & dit, int depth, - docstring const & s + docstring const & s, + docstring const & t = docstring() ); /// ~TocItem() {} @@ -52,7 +54,11 @@ public: /// docstring const & str() const; /// + docstring const & tooltip() const; + /// docstring const asString() const; + /// + DocIterator const & dit() const; /// the action corresponding to the goTo above FuncRequest action() const; @@ -66,11 +72,24 @@ protected: /// Full item string docstring str_; + + /// The tooltip string + docstring tooltip_; }; /// -class Toc : public std::vector {}; +class Toc : public std::vector +{ +public: + typedef std::vector::const_iterator const_iterator; + 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; @@ -91,8 +110,8 @@ public: void setBuffer(Buffer const * buffer) { buffer_ = buffer; } /// void update(); - /// - void updateItem(DocIterator const & pit); + /// \return true if the item was updated. + bool updateItem(DocIterator const & pit); /// TocList const & tocs() const { return tocs_; }