* \author Angus Leeming
*
* Full author contact details are available in file CREDITS.
+ *
+ * Nice functions and objects to handle TOCs
*/
#ifndef TOC_H
#define TOC_H
-#include "support/LOstream.h"
-#include "LString.h"
-
#include <map>
+#include <iosfwd>
#include <vector>
+#include <string>
+
+#include "pariterator.h"
class Buffer;
class LyXView;
class Paragraph;
+class FuncRequest;
-/** Nice functions and objects to handle TOCs
- */
namespace lyx {
namespace toc {
///
-struct TocItem {
- TocItem(int par_id, int d, string const & s)
+class TocItem {
+public:
+ TocItem(int par_id, int d, std::string const & s)
: id_(par_id), depth(d), str(s) {}
///
- string const asString() const;
+ std::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;
+ FuncRequest action() const;
/// Paragraph ID containing this item
int id_;
/// nesting depth
int depth;
///
- string str;
+ std::string str;
};
///
typedef std::vector<TocItem> Toc;
///
-typedef std::map<string, Toc> TocList;
+typedef std::map<std::string, Toc> TocList;
///
-TocList const getTocList(Buffer const *);
+TocList const getTocList(Buffer const &);
///
-std::vector<string> const getTypes(Buffer const *);
+std::vector<std::string> const getTypes(Buffer const &);
///
-void asciiTocList(string const &, Buffer const *, std::ostream &);
+void asciiTocList(std::string const &, Buffer const &, std::ostream &);
/** Given the cmdName of the TOC param, returns the type used
by ControlToc::getContents() */
-string const getType(string const & cmdName);
+std::string const getType(std::string const & cmdName);
+
+/** Returns the guiname from a given @c type
+ 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)
}
+/// 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
+};
+
+
+void outline(OutlineOp, Buffer *, pit_type &);
+
+
} // namespace toc
} // namespace lyx