#include <vector>
#include <string>
-#include "pariterator.h"
+#include "ParIterator.h"
-#include "support/docstream.h"
+#include "support/strfwd.h"
namespace lyx {
class Buffer;
-class Paragraph;
class FuncRequest;
-class LCursor;
///
/**
friend class TocBackend;
public:
+ /// Default constructor for STL containers.
+ TocItem() {}
///
- TocItem(ParConstIterator const & par_it = ParConstIterator(),
- int d = -1,
- docstring const & s = docstring());
+ TocItem(ParConstIterator const & par_it,
+ int depth,
+ docstring const & s
+ );
///
~TocItem() {}
///
- bool const isValid() const;
+ int id() const;
///
- int const id() const;
- ///
- int const depth() const;
+ int depth() const;
///
docstring const & str() const;
///
/// the action corresponding to the goTo above
FuncRequest action() const;
-
+
protected:
/// Current position of item.
ParConstIterator par_it_;
///
typedef std::vector<TocItem> 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<std::string, Toc>
-{
-};
+class TocList : public std::map<std::string, Toc> {};
///
void setBuffer(Buffer const * buffer)
{ buffer_ = buffer; }
///
- bool addType(std::string const & type);
- ///
void update();
+ ///
+ void updateItem(ParConstIterator const & pit);
+
///
TocList const & tocs() const
{ return tocs_; }
- ///
- std::vector<std::string> const & types() const
- { return types_; }
+
///
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 &) const;
+ TocIterator const item(
+ std::string const & type, ///< Type of Toc.
+ ParConstIterator const & ///< The cursor location in the document.
+ ) const;
void writePlaintextTocList(std::string const & type, odocstream & os) const;
private:
- ///
- TocList tocs_;
///
- std::vector<std::string> types_;
+ TocList tocs_;
///
Buffer const * buffer_;