X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTocBackend.h;h=d1d0d1ad0a6113aa2fde03d87e3f0f501166a39b;hb=2098f1d8c20d51e63e670bcdc9da8996068975bf;hp=9704352922e8ef80bfe5261ab99de9e5144e9975;hpb=9398a1495a4a626a1f834de76ea4fc577198e4dc;p=lyx.git diff --git a/src/TocBackend.h b/src/TocBackend.h index 9704352922..d1d0d1ad0a 100644 --- a/src/TocBackend.h +++ b/src/TocBackend.h @@ -14,7 +14,7 @@ #ifndef TOC_BACKEND_H #define TOC_BACKEND_H -#include "ParIterator.h" +#include "DocIterator.h" #include "support/strfwd.h" @@ -33,13 +33,14 @@ class FuncRequest; */ class TocItem { + friend class Toc; friend class TocBackend; public: /// Default constructor for STL containers. - TocItem() {} + TocItem() : dit_(0) {} /// - TocItem(ParConstIterator const & par_it, + TocItem(DocIterator const & dit, int depth, docstring const & s ); @@ -53,13 +54,15 @@ public: docstring const & str() const; /// docstring const asString() const; + /// + DocIterator const & dit() const; /// the action corresponding to the goTo above FuncRequest action() const; protected: /// Current position of item. - ParConstIterator par_it_; + DocIterator dit_; /// nesting depth int depth_; @@ -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(ParConstIterator const & pit); + /// \return true if the item was updated. + bool updateItem(DocIterator const & pit); /// TocList const & tocs() const { return tocs_; } @@ -105,7 +118,7 @@ public: /// Return the first Toc Item before the cursor TocIterator item( std::string const & type, ///< Type of Toc. - ParConstIterator const & ///< The cursor location in the document. + DocIterator const & dit ///< The cursor location in the document. ) const; ///