X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTocBackend.h;h=d1d0d1ad0a6113aa2fde03d87e3f0f501166a39b;hb=a187929721cac97a93b72a210ed6515b32ba788d;hp=f9e700e379411c46706c8d884ffe8631cbf69fed;hpb=1e51e87f680a7a903d1c24bccf26598459efec47;p=lyx.git diff --git a/src/TocBackend.h b/src/TocBackend.h index f9e700e379..d1d0d1ad0a 100644 --- a/src/TocBackend.h +++ b/src/TocBackend.h @@ -33,11 +33,12 @@ 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, @@ -53,6 +54,8 @@ public: docstring const & str() const; /// docstring const asString() const; + /// + DocIterator const & dit() const; /// the action corresponding to the goTo above FuncRequest action() const; @@ -70,7 +73,17 @@ protected: /// -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 +104,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_; }