X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTocBackend.h;h=20c87294a67647ac727de58f37aae80144806a02;hb=52eb91c94fb70d58dceef430659c8781de2eccda;hp=1c7308dc4e63308bce866a762a9be91734fce91c;hpb=71f356c372461cd2d2dc4fe6cc71deec6909b3ca;p=lyx.git diff --git a/src/TocBackend.h b/src/TocBackend.h index 1c7308dc4e..20c87294a6 100644 --- a/src/TocBackend.h +++ b/src/TocBackend.h @@ -17,75 +17,76 @@ #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; -namespace lyx { - /// /** */ -class TocBackend +class TocItem { -public: + friend class TocBackend; +public: + /// + 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; /// - /** - */ - class Item - { - friend class TocBackend; - friend bool operator==(Item const & a, Item const & b); - - public: - /// - Item( - ParConstIterator const & par_it = ParConstIterator(), - int d = -1, - std::string const & s = std::string()); - /// - ~Item() {} - /// - bool const isValid() const; - /// - int const id() const; - /// - int const depth() const; - /// - std::string const & str() const; - /// - std::string 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 - std::string str_; - }; - - /// - typedef std::vector Toc; - typedef std::vector::const_iterator TocIterator; - /// - typedef std::map TocList; + 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) {} @@ -99,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, std::ostream & os) const; + void writePlaintextTocList(std::string const & type, odocstream & os) const; private: /// @@ -122,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); }