]> git.lyx.org Git - lyx.git/blobdiff - src/toc.h
minimal effort implementation of:
[lyx.git] / src / toc.h
index 96f6966de3b257c9ff8be3dc74a0619f6b3da38a..919d1ba28243cb6413162099f8664e048ae3be24 100644 (file)
--- a/src/toc.h
+++ b/src/toc.h
 #ifndef TOC_H
 #define TOC_H
 
-#include <map>
-#include <iosfwd>
-#include <vector>
-#include <string>
+#include "TocBackend.h"
 
-#include "pariterator.h"
-
-class Buffer;
-class LyXView;
-class Paragraph;
-class FuncRequest;
+class LCursor;
 
 namespace lyx {
 namespace toc {
 
-///
-class TocItem {
-public:
-       TocItem(int par_id, int d, std::string const & s)
-               : id_(par_id), depth(d), str(s) {}
-       ///
-       std::string const asString() const;
-       /// set cursor in LyXView to this TocItem
-       void goTo(LyXView & lv_) const;
-       /// the action corresponding to the goTo above
-       FuncRequest action() const;
-       /// Paragraph ID containing this item
-       int id_;
-       /// nesting depth
-       int depth;
-       ///
-       std::string str;
-};
+typedef TocBackend::Item TocItem;
+typedef TocBackend::Toc::const_iterator TocIterator;
+typedef TocBackend::Toc Toc;
+typedef TocBackend::TocList TocList;
 
 ///
-typedef std::vector<TocItem> Toc;
+void updateToc(Buffer const &);
+
 ///
-typedef std::map<std::string, Toc> TocList;
+TocList const & getTocList(Buffer const &);
 
 ///
-TocList const getTocList(Buffer const &);
+Toc const & getToc(Buffer const & buf, std::string const & type);
 
 ///
-std::vector<std::string> const getTypes(Buffer const &);
+std::vector<std::string> const & getTypes(Buffer const &);
+
+/// Return the first TocItem before the cursor
+TocIterator const getCurrentTocItem(Buffer const &, LCursor const &,
+                                                                         std::string const & type);
 
 ///
 void asciiTocList(std::string const &, Buffer const &, std::ostream &);
@@ -71,31 +54,16 @@ std::string const getType(std::string const & cmdName);
     The localization of the names will be done in the frontends */
 std::string const getGuiName(std::string const & type, Buffer const &);
 
-inline
-bool operator==(TocItem const & a, TocItem const & b)
-{
-       return a.id_ == b.id_ && a.str == b.str;
-       // No need to compare depth.
-}
-
-
-inline
-bool operator!=(TocItem const & a, TocItem const & b)
-{
-       return !(a == b);
-}
-
-
 /// the type of outline operation
 enum OutlineOp {
-       UP, // Move this header with text down
-       DOWN,   // Move this header with text up
-       IN, // Make this header deeper
-       OUT // Make this header shallower
+       Up, // Move this header with text down
+       Down,   // Move this header with text up
+       In, // Make this header deeper
+       Out // Make this header shallower
 };
 
 
-void Outline(OutlineOp, Buffer *, pit_type &);
+void outline(OutlineOp, LCursor &);
 
 
 } // namespace toc