]> git.lyx.org Git - lyx.git/blobdiff - src/cursor.h
fix tabular crashs
[lyx.git] / src / cursor.h
index 1dd11dc5a410d65d40152978e17a005c77d983ac..91e169f5f142a4464bdd4d6fcdc22da6bc675ce4 100644 (file)
@@ -13,6 +13,7 @@
 #define CURSOR_H
 
 #include "cursor_slice.h"
+#include "dispatchresult.h"
 
 #include <iosfwd>
 #include <vector>
@@ -25,22 +26,20 @@ class FuncRequest;
 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;
 }
 
 
@@ -148,6 +147,8 @@ public:
        std::string selectionAsString(bool label) const;
        ///
        void paste(std::string const & data);
+       ///
+       std::string currentState();
 
        //
        // access to the 'current' cursor slice
@@ -159,7 +160,7 @@ public:
        /// 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
@@ -191,6 +192,8 @@ public:
        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
@@ -218,14 +221,18 @@ public:
 
        //
        // 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;
        ///
@@ -274,11 +281,19 @@ public:
        /// 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);
@@ -288,6 +303,9 @@ public:
        std::vector<CursorSlice> cursor_;
        /// the anchor position
        std::vector<CursorSlice> anchor_;
+       
+       /// 
+       DispatchResult disp_;
 
 private:
        ///
@@ -416,7 +434,6 @@ public:
        /// split font inset etc
        void handleFont(std::string const & font);
 
-       void releaseMathCursor();
        /// are we in mathed?
        bool inMathed() const;
        /// are we in texted?
@@ -426,6 +443,8 @@ public:
        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