void substitute(MathMacro const & macro);
/// identifies NestInsets
MathNestInset * asNestInset() { return this; }
+ /// identifies NestInsets
+ MathNestInset const * asNestInset() const { return this; }
/// get cursor position
void getPos(idx_type idx, pos_type pos, int & x, int & y) const;
/// access to the lock
void lock(bool);
/// get notification when the cursor leaves this inset
- void notifyCursorLeaves();
+ void notifyCursorLeaves(idx_type);
/// direct access to the cell
MathArray & cell(idx_type);
void validate(LaTeXFeatures & features) const;
/// match in all cells
- bool match(MathInset *) const;
+ bool match(MathAtom const &) const;
/// replace in all cells
void replace(ReplaceData &);
/// do we contain a given pattern?
- bool contains(MathArray const &);
+ bool contains(MathArray const &) const;
/// glue everything to a single cell
MathArray glue() const;
/// writes \\, name(), and args in braces and '\\lyxlock' if necessary
void write(WriteStream & os) const;
- /// writes [, name(), and args in []
+ /// writes [, name(), and args in []
void normalize(NormalStream & os) const;
+ /// local dispatcher
+ result_type dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos);
+
protected:
/// we store the cells in a vector
typedef std::vector<MathArray> cells_type;