X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmathed%2Fmath_cursor.h;h=90519bec17aa0cd1327c11cf083eac80e7adf45b;hb=aea21e8cacad73e0d5df58637994b87b3eabc30e;hp=3a141d1ff2d57ab36e8ff1ce66e434b67d9712d6;hpb=77d227e06fa2ad29289c693662750ea58af32f90;p=lyx.git diff --git a/src/mathed/math_cursor.h b/src/mathed/math_cursor.h index 3a141d1ff2..90519bec17 100644 --- a/src/mathed/math_cursor.h +++ b/src/mathed/math_cursor.h @@ -33,6 +33,7 @@ class InsetFormulaBase; class MathArray; class MathXArray; class Painter; +class latexkeys; /// Description of a position struct MathCursorPos { @@ -50,14 +51,6 @@ struct MathCursorPos { MathXArray & xcell() const; /// returns xcell corresponding to this position MathXArray & xcell(int idx) const; - /// moves position on cell to the left - bool idxLeft(); - /// moves position on cell to the right - bool idxRight(); - /// moves position on cell up - bool idxUp(); - /// moves position on cell up - bool idxDown(); }; /// @@ -72,10 +65,6 @@ public: /// explicit MathCursor(InsetFormulaBase *); /// - ~MathCursor(); - /// - void insert(char, MathTextCodes t = LM_TC_MIN); - /// void insert(MathInset *); /// void insert(MathArray const &); @@ -99,15 +88,29 @@ public: void first(); /// Put the cursor in the last position void last(); + /// 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 position somehow up + bool goUp(); + /// moves position somehow down + bool goDown(); /// - void plainLeft(); + void idxNext(); /// - void plainRight(); + void idxPrev(); /// void plainErase(); /// void plainInsert(MathInset * p); /// + void niceInsert(MathInset * p); + /// void delLine(); /// This is in pixels from (maybe?) the top of inset void setPos(int, int); @@ -124,6 +127,8 @@ public: /// int idx() const; /// + int size() const; + /// void interpret(string const &); /// void setSize(MathStyles); @@ -131,8 +136,6 @@ public: bool toggleLimits(); /// // Macro mode methods - void macroModeOpen(); - /// void macroModeClose(); /// bool inMacroMode() const; @@ -157,15 +160,11 @@ public: /// void drawSelection(Painter & pain) const; /// - void clearLastCode(); - /// - void setLastCode(MathTextCodes t); - /// void handleFont(MathTextCodes t); /// - void handleAccent(string const & name); + void handleDelim(latexkeys const * l, latexkeys const * r); /// - void handleDelim(int l, int r); + void handleNest(MathInset * p); /// Splits cells and shifts right part to the next cell void splitCell(); /// Splits line and insert new row of cell @@ -173,18 +172,12 @@ public: /// MathTextCodes getLastCode() const; /// - void idxNext(); - /// - void idxPrev(); - /// void pullArg(bool goright); /// bool isInside(MathInset const *) const; /// MathTextCodes nextCode() const; /// - MathTextCodes prevCode() const; - /// char valign() const; /// char halign() const; @@ -212,16 +205,10 @@ public: /// MathXArray & xarray() const; - /// returns the first position of the (normalized) selection - MathCursorPos firstSelectionPos() const; - /// returns the last position of the (normalized) selection - MathCursorPos lastSelectionPos() const; /// returns the selection void getSelection(MathCursorPos &, MathCursorPos &) const; /// returns the normalized anchor of the selection MathCursorPos normalAnchor() const; - /// returns the normalized anchor of the selection - bool openable(MathInset *, bool selection, bool useupdown) const; /// path of positions the cursor had to go if it were leving each inset std::vector Cursor_; @@ -245,11 +232,6 @@ public: /// void dump(char const * str) const; - /// - int xpos() const; - /// - void gotoX(int x); - /// void merge(MathArray const & arr); /// @@ -262,16 +244,32 @@ public: MathSpaceInset * prevSpaceInset() const; private: /// - int & pos(); + string macroName() const; /// + void insert(char, MathTextCodes t = LM_TC_MIN); + /// can we enter the inset? + bool openable(MathInset *, bool selection) const; + /// can the setPos routine enter that inset? + bool positionable(MathInset *, bool selection) const; + /// write access to cursor cell position + int & pos(); + /// write access to cursor cell index int & idx(); + /// x-offset of current cell relative to par xo + int cellXOffset() const; + /// y-offset of current cell relative to par yo + int cellYOffset() const; + /// current x position relative to par xo + int xpos() const; + /// current y position relative to par yo + int ypos() const; + /// adjust position in current cell according to x. idx is not changed. + void gotoX(int x); /// InsetFormulaBase * const formula_; /// MathTextCodes lastcode_; - /// - MathFuncInset * imacro_; // Selection stuff /// do we currently select bool selection_;