+ /// draw the object, sets xo_ and yo_ cached values
+ virtual void draw(Painter &, int x, int baseline) = 0;
+ /// write LaTeX and Lyx code
+ virtual void write(std::ostream &, bool fragile) const = 0;
+ /// write normalized content
+ virtual void writeNormal(std::ostream &) const;
+ /// reproduce itself
+ virtual MathInset * clone() const = 0;
+ /// appends itself with macro arguments substituted
+ virtual void substitute(MathArray & array, MathMacro const & macro) const;
+ /// compute the size of the object, sets ascend_, descend_ and width_
+ virtual void metrics(MathStyles st) = 0;
+ ///
+ virtual int ascent() const;