X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTocBackend.h;h=9704352922e8ef80bfe5261ab99de9e5144e9975;hb=e01e14872d60935908ad42bc164bff1342277b22;hp=25b39c953876ee331e67e987a97bf1d862c965fd;hpb=37333444c0ff59ea53e80b94322a59bc52b1cab1;p=lyx.git diff --git a/src/TocBackend.h b/src/TocBackend.h index 25b39c9538..9704352922 100644 --- a/src/TocBackend.h +++ b/src/TocBackend.h @@ -9,21 +9,19 @@ * \author Abdelrazak Younes * * Full author contact details are available in file CREDITS. - * - * TocBackend mainly used in toc.[Ch] */ #ifndef TOC_BACKEND_H #define TOC_BACKEND_H +#include "ParIterator.h" + +#include "support/strfwd.h" + #include #include #include -#include "ParIterator.h" - -#include "support/docstream.h" - namespace lyx { @@ -48,9 +46,9 @@ public: /// ~TocItem() {} /// - int const id() const; + int id() const; /// - int const depth() const; + int depth() const; /// docstring const & str() const; /// @@ -72,13 +70,13 @@ protected: /// -typedef std::vector Toc; +class Toc : public std::vector {}; + typedef Toc::const_iterator TocIterator; + /// The ToC list. /// A class and no typedef because we want to forward declare it. -class TocList : public std::map -{ -}; +class TocList : public std::map {}; /// @@ -88,29 +86,29 @@ class TocBackend { public: /// - TocBackend(Buffer const * buffer = NULL): buffer_(buffer) {} - /// - ~TocBackend() {} + TocBackend(Buffer const * buffer) : buffer_(buffer) {} /// - void setBuffer(Buffer const * buffer) - { buffer_ = buffer; } + void setBuffer(Buffer const * buffer) { buffer_ = buffer; } /// void update(); /// void updateItem(ParConstIterator const & pit); /// - TocList const & tocs() const - { return tocs_; } + TocList const & tocs() const { return tocs_; } + TocList & tocs() { return tocs_; } /// Toc const & toc(std::string const & type) const; + Toc & toc(std::string const & type); + /// Return the first Toc Item before the cursor - TocIterator const item( + TocIterator item( std::string const & type, ///< Type of Toc. ParConstIterator const & ///< The cursor location in the document. - ) const; + ) const; + /// void writePlaintextTocList(std::string const & type, odocstream & os) const; private: @@ -118,18 +116,15 @@ private: TocList tocs_; /// Buffer const * buffer_; - }; // TocBackend -inline -bool operator==(TocItem const & a, TocItem const & b) +inline bool operator==(TocItem const & a, TocItem const & b) { return a.id() == b.id() && a.str() == b.str() && a.depth() == b.depth(); } -inline -bool operator!=(TocItem const & a, TocItem const & b) +inline bool operator!=(TocItem const & a, TocItem const & b) { return !(a == b); }