#define CURSOR_H
#include "cursor_slice.h"
+#include "dispatchresult.h"
#include <iosfwd>
#include <vector>
class InsetTabular;
class LyXText;
class Paragraph;
+class Row;
// these should go
class MathHullInset;
-class PainterInfo;
class MathUnknownInset;
class MathGridInset;
// only needed for gcc 2.95, remove when support terminated
-
-
template <typename A, typename B>
bool ptr_cmp(A const * a, B const * b)
{
-return a == b;
+ return a == b;
}
std::string selectionAsString(bool label) const;
///
void paste(std::string const & data);
+ ///
+ std::string currentState();
//
// access to the 'current' cursor slice
/// return the cell of the inset this cursor is in
idx_type & idx() { return current().idx(); }
/// return the last possible cell in this inset
- idx_type lastidx() const { return current().lastidx(); }
+ idx_type lastidx() const;
/// return the paragraph this cursor is in
par_type par() const { return current().par(); }
/// return the paragraph this cursor is in
InsetBase * nextInset();
/// the inset just in front of the cursor
InsetBase * prevInset();
+ /// the inset just in front of the cursor
+ InsetBase const * prevInset() const;
//
// math-specific part
//
// text-specific part
- ///
+ /// see comment for boundary_ below
bool boundary() const { return current().boundary(); }
- ///
+ /// see comment for boundary_ below
bool & boundary() { return current().boundary(); }
- ///
+ /// the paragraph we're in
Paragraph & paragraph();
- ///
+ /// the paragraph we're in
Paragraph const & paragraph() const;
+ /// the row in the paragraph we're in
+ Row & textRow();
+ /// the row in the paragraph we're in
+ Row const & textRow() const;
///
LyXText * text() const;
///
/// access to owning BufferView
BufferView & bv() const;
/// get some interesting description of current position
- void info(std::ostream & os);
+ void info(std::ostream & os) const;
/// are we in math mode (2), text mode (1) or unsure (0)?
int currentMode();
/// reset cursor
void reset();
+ /// for spellchecking
+ void replaceWord(std::string const & replacestring);
+ /// update our view
+ void update();
+ ///
+ void dispatched(dispatch_result_t res);
+ void notdispatched();
+ void noupdate();
/// output
friend std::ostream & operator<<(std::ostream & os, LCursor const & cur);
std::vector<CursorSlice> cursor_;
/// the anchor position
std::vector<CursorSlice> anchor_;
+
+ ///
+ DispatchResult disp_;
private:
///
/// split font inset etc
void handleFont(std::string const & font);
- void releaseMathCursor();
/// are we in mathed?
bool inMathed() const;
/// are we in texted?
void message(std::string const & msg) const;
/// display an error message
void errorMessage(std::string const & msg) const;
+ ///
+ std::string getPossibleLabel();
private:
/// moves cursor index one cell to the left