X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_cursor.h;h=96d0348085baebb5a80f0bfa5afc51de198e5ad9;hb=d359dd8fca52c4f0100f7cf4bf636113c5c4e49f;hp=1d8e95950b88b83ef77bf30f50b10ba09ba18827;hpb=8953a40f95d8a357e6ae33a058bb43be06748aea;p=lyx.git diff --git a/src/mathed/math_cursor.h b/src/mathed/math_cursor.h index 1d8e95950b..96d0348085 100644 --- a/src/mathed/math_cursor.h +++ b/src/mathed/math_cursor.h @@ -60,12 +60,16 @@ public: /// explicit MathCursor(InsetFormulaBase *, bool left); /// + ~MathCursor(); + /// void insert(MathAtom const &); /// void insert(MathArray const &); /// void paste(MathArray const &); /// + void paste(MathGridInset const & data); + /// void erase(); /// void backspace(); @@ -105,11 +109,15 @@ public: /// current inset MathInset * par() const; /// return the next enclosing grid inset and the cursor's index in it - MathGridInset * enclosingGrid(idx_type &) const; - /// return the next enclosing grid inset and the cursor's index in it + MathGridInset * enclosingGrid(idx_type & idx) const; + /// return the next enclosing hull inset and the cursor's index in it + MathHullInset * enclosingHull(idx_type & idx) const; + /// go up to enclosing grid void popToEnclosingGrid(); + /// go up to the hull inset + void popToEnclosingHull(); /// - InsetFormulaBase * formula(); + InsetFormulaBase * formula() const; /// current offset in the current cell pos_type pos() const; /// current cell @@ -229,43 +237,61 @@ public: MathCursorPos & cursor(); /// reference to the last item of the path, i.e. "The Cursor" MathCursorPos const & cursor() const; + /// how deep are we nested? + unsigned depth() const; + /// local dispatcher + int dispatch(string const & cmd); /// describe the situation string info() const; /// dump selection information for debugging void seldump(char const * str) const; /// dump selection information for debugging void dump(char const * str) const; - /// - void stripFromLastEqualSign(); /// moves on void setSelection(cursor_type const & where, size_type n); /// - void insert(char); + void insert(char c); + /// + void insert(string const & str); /// lock/unlock inset void insetToggle(); /// hack for reveal codes void markInsert(); void markErase(); + void handleExtern(string const & arg); /// friend class Selection; + private: - /// moves cursor position one cell to the left - bool posLeft(); - /// moves cursor position one cell to the right - bool posRight(); /// moves cursor index one cell to the left bool idxLeft(); /// moves cursor index one cell to the right bool idxRight(); + /// moves cursor to beginning first cell of current line + bool idxLineFirst(); + /// moves cursor to end of last cell of current line + bool idxLineLast(); + /// moves cursor position one cell to the left + bool posLeft(); + /// moves cursor position one cell to the right + bool posRight(); /// moves position somehow up or down bool goUpDown(bool up); /// moves position into box bool bruteFind(int xo, int yo, int xlow, int xhigh, int ylow, int yhigh); + + /// grab grid marked by anchor and current cursor + MathGridInset grabSelection() const; + /// erase the selected part and re-sets the cursor + void eraseSelection(); + /// guess what + MathGridInset grabAndEraseSelection(); + /// string macroName() const; /// @@ -277,9 +303,9 @@ private: /// write access to cursor cell index idx_type & idx(); - /// path of positions the cursor had to go if it were leving each inset + /// path of positions the cursor had to go if it were leaving each inset cursor_type Cursor_; - /// path of positions the anchor had to go if it were leving each inset + /// path of positions the anchor had to go if it were leaving each inset mutable cursor_type Anchor_; /// pointer to enclsing LyX inset InsetFormulaBase * formula_;