- void metrics(MathStyles st) const;
- /// draw the object, sets xo_ and yo_ cached values
- void draw(Painter &, int x, int y) const;
- /// appends itself with macro arguments substituted
- void substitute(MathMacro const & macro);
-
- /// The left key
- bool idxLeft(unsigned int & idx, unsigned int & pos) const;
- /// The right key
- bool idxRight(unsigned int & idx, unsigned int & pos) const;
-
- /// Move one physical cell up
- bool idxNext(unsigned int & idx, unsigned int & pos) const;
- /// Move one physical cell down
- bool idxPrev(unsigned int & idx, unsigned int & pos) const;
+ InsetBase * editXY(LCursor & cur, int x, int y);
+
+ /// order of movement through the cells when pressing the left key
+ bool idxLeft(LCursor &) const;
+ /// order of movement through the cells when pressing the right key
+ bool idxRight(LCursor &) const;
+
+ /// move one physical cell up
+ bool idxNext(LCursor &) const;
+ /// move one physical cell down
+ bool idxPrev(LCursor &) const;
+
+ /// target pos when we enter the inset from the left by pressing "Right"
+ bool idxFirst(LCursor &) const;
+ /// target pos when we enter the inset from the right by pressing "Left"
+ bool idxLast(LCursor &) const;
+
+ /// number of cells currently governed by us
+ idx_type nargs() const;
+ /// access to the lock
+ bool lock() const;
+ /// access to the lock
+ void lock(bool);
+ /// get notification when the cursor leaves this inset
+ void notifyCursorLeaves(LCursor & cur);
+
+ /// direct access to the cell
+ MathArray & cell(idx_type);
+ /// direct access to the cell
+ MathArray const & cell(idx_type) const;
+
+ /// can we move into this cell (see macroarg.h)
+ bool isActive() const;
+ /// request "external features"
+ void validate(LaTeXFeatures & features) const;