X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTocBackend.h;h=20c87294a67647ac727de58f37aae80144806a02;hb=3f8fa07c6ed38218d6a4048f2993a512aa942c96;hp=ca584e51e5829941f711530d5f6b8e9f7fbe40b3;hpb=6c300f72a217722652dc27db9108e1050028979c;p=lyx.git diff --git a/src/TocBackend.h b/src/TocBackend.h index ca584e51e5..20c87294a6 100644 --- a/src/TocBackend.h +++ b/src/TocBackend.h @@ -17,16 +17,17 @@ #define TOC_BACKEND_H #include -#include #include #include #include "pariterator.h" +#include "support/docstream.h" + + namespace lyx { class Buffer; -class LyXView; class Paragraph; class FuncRequest; class LCursor; @@ -34,57 +35,58 @@ class LCursor; /// /** */ -class TocBackend +class TocItem { + friend class TocBackend; + public: /// - /** - */ - class Item - { - friend class TocBackend; - friend bool operator==(Item const & a, Item const & b); - - public: - /// - Item( - ParConstIterator const & par_it = ParConstIterator(), - int d = -1, - docstring const & s = docstring()); - /// - ~Item() {} - /// - bool const isValid() const; - /// - int const id() const; - /// - int const depth() const; - /// - docstring const & str() const; - /// - docstring const asString() const; - /// set cursor in LyXView to this Item - void goTo(LyXView & lv_) const; - /// the action corresponding to the goTo above - FuncRequest action() const; - - protected: - /// Current position of item. - ParConstIterator par_it_; - - /// nesting depth - int depth_; - - /// Full item string - docstring str_; - }; - - /// - typedef std::vector Toc; - typedef std::vector::const_iterator TocIterator; - /// - typedef std::map TocList; + TocItem(ParConstIterator const & par_it = ParConstIterator(), + int d = -1, + docstring const & s = docstring()); + /// + ~TocItem() {} + /// + bool const isValid() const; + /// + int const id() const; + /// + int const depth() const; + /// + docstring const & str() const; + /// + docstring const asString() const; + + /// the action corresponding to the goTo above + FuncRequest action() const; + +protected: + /// Current position of item. + ParConstIterator par_it_; + + /// nesting depth + int depth_; + /// Full item string + docstring str_; +}; + + +/// +typedef std::vector Toc; +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 TocBackend +{ public: /// TocBackend(Buffer const * buffer = NULL): buffer_(buffer) {} @@ -98,17 +100,17 @@ public: /// void update(); /// - TocList const & tocs() + TocList const & tocs() const { return tocs_; } /// - std::vector const & types() + std::vector const & types() const { return types_; } /// - Toc const & toc(std::string const & type); + Toc const & toc(std::string const & type) const; /// Return the first Toc Item before the cursor - TocIterator const item(std::string const & type, ParConstIterator const &); + TocIterator const item(std::string const & type, ParConstIterator const &) const; - void asciiTocList(std::string const & type, odocstream & os) const; + void writePlaintextTocList(std::string const & type, odocstream & os) const; private: /// @@ -121,14 +123,14 @@ private: }; // TocBackend inline -bool operator==(TocBackend::Item const & a, TocBackend::Item const & b) +bool operator==(TocItem const & a, TocItem const & b) { return a.id() == b.id() && a.str() == b.str() && a.depth() == b.depth(); } inline -bool operator!=(TocBackend::Item const & a, TocBackend::Item const & b) +bool operator!=(TocItem const & a, TocItem const & b) { return !(a == b); }