// -*- C++ -*-
-/* This file is part of
- * ======================================================
- *
- * LyX, The Document Processor
+/**
+ * \file toc.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * Copyright 2002 The LyX Team.
+ * \author Jean-Marc Lasgouttes
+ * \author Angus Leeming
*
- * ======================================================
+ * Full author contact details are available in file CREDITS.
*
- * \file toc.h
- * \author Angus Leeming <a.leeming@ic.ac.uk>
- * \author Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
+ * Nice functions and objects to handle TOCs
*/
#ifndef TOC_H
#define TOC_H
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "support/LOstream.h"
-#include "LString.h"
-
-#include <map>
-#include <vector>
-
-class Buffer;
-class LyXView;
-class Paragraph;
+class LCursor;
-/** Nice functions and objects to handle TOCs
- */
-namespace toc
-{
+namespace lyx {
+namespace toc {
-///
-struct TocItem {
- TocItem(Paragraph * p, int d, string const & s)
- : par(p), depth(d), str(s) {}
- ///
- string const asString() const;
- /// set cursor in LyXView to this TocItem
- void goTo(LyXView & lv_) const;
- /// the action corresponding to the goTo above
- int action() const;
- ///
- Paragraph * par;
- ///
- int depth;
- ///
- string str;
+/// 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
};
-///
-typedef std::vector<TocItem> Toc;
-///
-typedef std::map<string, Toc> TocList;
-
-///
-TocList const getTocList(Buffer const *);
-
-///
-std::vector<string> const getTypes(Buffer const *);
-
-///
-void asciiTocList(string const &, Buffer const *, ostream &);
-
-/** Given the cmdName of the TOC param, returns the type used
- by ControlToc::getContents() */
-string const getType(string const & cmdName);
-
-///
-inline
-bool operator==(TocItem const & a, TocItem const & b)
-{
- return a.par == b.par && a.str == b.str;
- // No need to compare depth.
-}
-
-///
-inline
-bool operator!=(TocItem const & a, TocItem const & b)
-{
- return !(a == b);
- // No need to compare depth.
-}
+void outline(OutlineOp, LCursor &);
} // namespace toc
+} // namespace lyx
#endif // CONTROLTOC_H