]> git.lyx.org Git - lyx.git/blobdiff - src/cursor.h
cleanup after svn hang-up, #undef CursorShape. Should be compilable ganin now.
[lyx.git] / src / cursor.h
index 5cd4b39ad52c20a8de90b9b2fe34862570c3e376..e934700244e060bdbe3c7b9b197cb0e8d39cfa9d 100644 (file)
@@ -26,7 +26,7 @@ class Point;
 class LyXFont;
 
 // these should go
-class MathUnknownInset;
+class InsetMathUnknown;
 class Encoding;
 
 
@@ -86,9 +86,7 @@ public:
        ///
        void selHandle(bool selecting);
        //
-       std::string selectionAsString(bool label) const;
-       ///
-       void paste(std::string const & data);
+       lyx::docstring selectionAsString(bool label) const;
        ///
        std::string currentState();
 
@@ -114,7 +112,7 @@ public:
        /// insert an inset
        void insert(InsetBase *);
        /// insert a single char
-       void insert(char c);
+       void insert(lyx::char_type c);
        /// insert a string
        void insert(std::string const & str);
 
@@ -146,13 +144,30 @@ public:
        void reset(InsetBase &);
        /// for spellchecking
        void replaceWord(std::string const & replacestring);
-       /// the event was not (yet) dispatched
+       /**
+        * the event was not (yet) dispatched.
+        *
+        * Should only be called by an inset's doDispatch() method. It means:
+        * I, the doDispatch() method of InsetFoo, hereby declare that I am
+        * not able to handle that request and trust my parent will do the
+        * Right Thing (even if my getStatus partner said that I can do it).
+        * It is sort of a kludge that should be used only rarely...
+        */
        void undispatched();
        /// the event was already dispatched
        void dispatched();
        /// call update() when done
        void needsUpdate();
-       /// don't call update() when done
+       /**
+        * don't call update() when done
+        *
+        * Should only be called by an inset's doDispatch() method. It means:
+        * I handled that request and I can reassure you that the screen does
+        * not need to be re-drawn and all entries in the coord cache stay
+        * valid (and there are no other things to put in the coord cache).
+        * This is a fairly rare event as well and only some optimization.
+        * Not using noUpdate() should never be wrong.
+        */
        void noUpdate();
        /// fix cursor in circumstances that should never happen
        void fixIfBroken();
@@ -189,6 +204,11 @@ private:
        bool selection_;
        /// are we on the way to get one?
        bool mark_;
+       /// If true, we are behind the previous char, otherwise we are in front
+       // of the next char. This only make a difference when we are in front
+       // of a big inset spanning a whole row and computing coordinates for
+       // displaying the cursor.
+       bool logicalpos_;
 
 private:
 
@@ -234,12 +254,14 @@ public:
        /// in pixels from top of screen
        void setScreenPos(int x, int y);
        /// current offset in the top cell
-       /// interpret name a name of a macro
-       void macroModeClose();
+
+       /// interpret name a name of a macro. Returns true if
+       /// something got inserted.
+       bool macroModeClose();
        /// are we currently typing the name of a macro?
        bool inMacroMode() const;
        /// get access to the macro we are currently typing
-       MathUnknownInset * activeMacro();
+       InsetMathUnknown * activeMacro();
 
        /// replace selected stuff with at, placing the former
        // selection in given cell of atom
@@ -261,9 +283,9 @@ public:
        void handleFont(std::string const & font);
 
        /// display a message
-       void message(std::string const & msg) const;
+       void message(lyx::docstring const & msg) const;
        /// display an error message
-       void errorMessage(std::string const & msg) const;
+       void errorMessage(lyx::docstring const & msg) const;
        ///
        std::string getPossibleLabel();