2 #ifndef MATH_PARINSET_H
3 #define MATH_PARINSET_H
5 #include "math_inset.h"
12 /** The math paragraph base class, base to all editable math objects
13 \author Alejandro Aguilar Sierra
15 class MathParInset: public MathedInset {
18 MathParInset(short st = LM_ST_TEXT, string const & nm = string(),
19 short ot = LM_OT_MIN);
22 MathParInset(MathParInset *);
24 virtual ~MathParInset();
26 virtual MathedInset * Clone();
27 /// Draw the object on a drawable
28 virtual void draw(Painter &, int x, int baseline);
30 virtual void Write(std::ostream &, bool fragile);
32 virtual void Metrics();
34 virtual void UserSetSize(short);
35 /// Data is stored in a LyXArray
36 virtual void setData(MathedArray *);
38 virtual MathedArray * GetData();
39 /// Paragraph position
40 virtual void GetXY(int &, int &) const;
42 virtual void setXY(int x, int y);
44 virtual void SetFocus(int, int) {}
46 virtual bool Inside(int, int);
47 // Tab stuff used by Matrix.
49 virtual void SetAlign(char, string const &) {}
51 virtual int GetColumns() const { return 1; }
53 virtual int GetRows() const { return 1; }
55 virtual bool isMatrix() const { return false; }
58 virtual bool setArgumentIdx(int i) { return (i == 0); }
60 virtual bool setNextArgIdx() { return false; }
62 virtual int getArgumentIdx() const { return 0; }
64 virtual int getMaxArgumentIdx() const { return 0; }
66 virtual void SetStyle(short);
68 virtual MathedRowSt * getRowSt() const;
70 virtual void setRowSt(MathedRowSt *) {}
72 virtual bool Permit(short f) const;
82 /// Paragraph data is stored here
95 /// Cursor start position