class MathArrayInset;
+class MathBraceInset;
class MathBoxInset;
class MathCharInset;
class MathDelimInset;
class MathStringInset;
class MathSpaceInset;
class MathSymbolInset;
+class MathUnknownInset;
+class MathXYMatrixInset;
class NormalStream;
class OctaveStream;
// the return value indicates whether the cursor should leave the inset
// and/or the whole inset should be deleted
virtual void idxDelete(idx_type & idx, bool & popit, bool & deleteit);
- // deletes a cell range and moves the cursor
- virtual void idxDeleteRange(idx_type from, idx_type to);
// returns list of cell indices that are "between" from and to for
// selection purposes
virtual std::vector<idx_type> idxBetween(idx_type from, idx_type to) const;
virtual int cellYOffset(idx_type) const { return 0; }
/// identifies certain types of insets
- virtual MathArrayInset * asArrayInset() { return 0; }
- virtual MathBoxInset * asBoxInset() { return 0; }
- virtual MathBoxInset const * asBoxInset() const { return 0; }
- virtual MathCharInset const * asCharInset() const { return 0; }
- virtual MathDelimInset * asDelimInset() { return 0; }
- virtual MathDelimInset const * asDelimInset() const { return 0; }
- virtual MathFuncInset * asFuncInset() { return 0; }
- virtual MathFracInset * asFracInset() { return 0; }
- virtual MathGridInset * asGridInset() { return 0; }
- virtual MathHullInset * asHullInset() { return 0; }
- virtual MathHullInset const * asHullInset() const { return 0; }
- virtual MathMacroTemplate * asMacroTemplate() { return 0; }
- virtual MathMatrixInset const * asMatrixInset() const { return 0; }
- virtual MathNestInset * asNestInset() { return 0; }
- virtual MathScriptInset * asScriptInset() { return 0; }
- virtual MathScriptInset const * asScriptInset() const { return 0; }
- virtual MathSpaceInset * asSpaceInset() { return 0; }
- virtual MathStringInset * asStringInset() { return 0; }
- virtual MathSymbolInset const * asSymbolInset() const { return 0; }
- virtual UpdatableInset * asHyperActiveInset() const { return 0; }
+ virtual MathArrayInset * asArrayInset() { return 0; }
+ virtual MathBraceInset * asBraceInset() { return 0; }
+ virtual MathBoxInset * asBoxInset() { return 0; }
+ virtual MathBoxInset const * asBoxInset() const { return 0; }
+ virtual MathCharInset const * asCharInset() const { return 0; }
+ virtual MathDelimInset * asDelimInset() { return 0; }
+ virtual MathDelimInset const * asDelimInset() const { return 0; }
+ virtual MathFuncInset * asFuncInset() { return 0; }
+ virtual MathFracInset * asFracInset() { return 0; }
+ virtual MathGridInset * asGridInset() { return 0; }
+ virtual MathHullInset * asHullInset() { return 0; }
+ virtual MathHullInset const * asHullInset() const { return 0; }
+ virtual MathMacroTemplate * asMacroTemplate() { return 0; }
+ virtual MathMatrixInset const * asMatrixInset() const { return 0; }
+ virtual MathNestInset * asNestInset() { return 0; }
+ virtual MathScriptInset * asScriptInset() { return 0; }
+ virtual MathScriptInset const * asScriptInset() const { return 0; }
+ virtual MathSpaceInset * asSpaceInset() { return 0; }
+ virtual MathStringInset * asStringInset() { return 0; }
+ virtual MathSymbolInset const * asSymbolInset() const { return 0; }
+ virtual MathUnknownInset const * asUnknownInset() const { return 0; }
+ virtual MathXYMatrixInset const* asXYMatrixInset() const{ return 0; }
+ virtual UpdatableInset * asHyperActiveInset() const { return 0; }
/// identifies things that can get scripts
virtual bool isScriptable() const { return false; }
virtual bool match(MathInset *) const { return false; }
/// replace things by other things
virtual void replace(ReplaceData &) {}
+ /// do we contain a given subsequence?
+ virtual bool contains(MathArray const &) { return false; }
/// write LaTeX and Lyx code
virtual void write(WriteStream & os) const;