X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fcursor.h;h=332bf219fbdc603efb3716f369cb1776a46b833f;hb=d1f2a9c0000f0ad038425900b001c16a56c72afa;hp=e99a8a06bd4e16ba32c5e91988ea2e5cdae4e1d5;hpb=ba0a69bcd964c1962ddfb0ac01f92127da26171c;p=lyx.git diff --git a/src/cursor.h b/src/cursor.h index e99a8a06bd..332bf219fb 100644 --- a/src/cursor.h +++ b/src/cursor.h @@ -22,6 +22,8 @@ class Buffer; class BufferView; class FuncStatus; class FuncRequest; +class Point; +class LyXFont; // these should go class MathUnknownInset; @@ -38,10 +40,9 @@ public: explicit LCursor(BufferView & bv); /// dispatch from innermost inset upwards - DispatchResult dispatch(FuncRequest const & cmd); - /// are we willing to handle this event? - bool getStatus(FuncRequest const & cmd, FuncStatus & flag); - + void dispatch(FuncRequest const & cmd); + /// get the resut of the last dispatch + DispatchResult result() const; /// add a new cursor slice void push(InsetBase & inset); /// add a new cursor slice, place cursor on left end @@ -53,7 +54,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 @@ -99,8 +100,6 @@ public: bool & macromode() { return macromode_; } /// returns x,y position void getPos(int & x, int & y) const; - /// returns cursor dimension - void getDim(int & asc, int & desc) const; // // common part @@ -117,10 +116,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,8 +148,12 @@ public: void undispatched(); /// the event was already dispatched void dispatched(); + /// call update() when done + void needsUpdate(); /// don't call update() when done void noUpdate(); + /// fix cursor in circumstances that should never happen + void fixIfBroken(); /// output friend std::ostream & operator<<(std::ostream & os, LCursor const & cur); @@ -161,6 +168,7 @@ public: /// DispatchResult disp_; + private: /** * The target x position of the cursor. This is used for when @@ -180,6 +188,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 +231,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 +276,9 @@ 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); + /// font at cursor position + LyXFont getFont() const; }; + #endif // LYXCURSOR_H