]> git.lyx.org Git - lyx.git/blobdiff - src/cursor.h
Implement os::current_root for native Win32 builds.
[lyx.git] / src / cursor.h
index e99a8a06bd4e16ba32c5e91988ea2e5cdae4e1d5..fa90fd6ad9b115e8a1e2a533f258b5dbfd15bb4e 100644 (file)
@@ -22,6 +22,7 @@ class Buffer;
 class BufferView;
 class FuncStatus;
 class FuncRequest;
+class Point;
 
 // these should go
 class MathUnknownInset;
@@ -38,8 +39,15 @@ public:
        explicit LCursor(BufferView & bv);
 
        /// dispatch from innermost inset upwards
-       DispatchResult dispatch(FuncRequest const & cmd);
-       /// are we willing to handle this event?
+       void dispatch(FuncRequest const & cmd);
+       /// get the resut of the last dispatch
+       DispatchResult result() const;
+        /**
+        * \returns true if this function made a definitive decision on
+        * whether the inset at this cursor position wants to handle the
+        * request \p cmd or not. The result of this decision is put into
+        * \p status.
+        */
        bool getStatus(FuncRequest const & cmd, FuncStatus & flag);
 
        /// add a new cursor slice
@@ -53,7 +61,7 @@ public:
        /// pop one slice off the cursor stack and go right
        bool popRight();
        /// sets cursor part
-       void setCursor(DocIterator const & it, bool sel);
+       void setCursor(DocIterator const & it);
 
        //
        // selection
@@ -117,10 +125,14 @@ public:
        /// insert a string
        void insert(std::string const & str);
 
+       /// in pixels from left of screen
+       int targetX() const;
        /// write acess to target x position of cursor
        int & x_target();
        /// return target x position of cursor
        int x_target() const;
+       /// set targetX in current position
+       void setTargetX();
        /// clear target x position of cursor
        void clearTargetX();
 
@@ -145,6 +157,8 @@ public:
        void undispatched();
        /// the event was already dispatched
        void dispatched();
+       /// call update() when done
+       void needsUpdate();
        /// don't call update() when done
        void noUpdate();
 
@@ -161,6 +175,7 @@ public:
        ///
        DispatchResult disp_;
 
+
 private:
        /**
         * The target x position of the cursor. This is used for when
@@ -180,6 +195,8 @@ private:
        /// are we on the way to get one?
        bool mark_;
 
+private:
+
        //
        // math specific stuff that could be promoted to "global" later
        //
@@ -221,8 +238,6 @@ public:
 
        /// in pixels from top of screen
        void setScreenPos(int x, int y);
-       /// in pixels from left of screen
-       int targetX() const;
        /// current offset in the top cell
        /// interpret name a name of a macro
        void macroModeClose();
@@ -268,12 +283,8 @@ public:
        bool openable(MathAtom const &) const;
        ///
        Encoding const * getEncoding() const;
-
-private:
-       /// moves position closest to (x, y) in current cell
-       void bruteFind2(int x, int y);
-       /// moves position closest to (x, y) in given box
-       bool bruteFind(int x, int y, int xlow, int xhigh, int ylow, int yhigh);
 };
 
+
+
 #endif // LYXCURSOR_H