2 #ifndef MATH_MATRIXINSET_H
3 #define MATH_MATRIXINSET_H
5 #include "math_gridinset.h"
11 /** Multiline math paragraph base class.
12 This is the base to all multiline editable math objects
13 like array and eqnarray.
14 \author Alejandro Aguilar Sierra
19 class MathMatrixInset : public MathGridInset {
24 explicit MathMatrixInset(MathInsetTypes t);
26 MathMatrixInset(MathInsetTypes t, unsigned int cols);
28 MathInset * clone() const;
30 void write(std::ostream &, bool fragile) const;
32 void metrics(MathStyles st) const;
34 void draw(Painter &, int x, int y) const;
36 string label(unsigned int row) const;
38 void label(unsigned int row, string const & label);
40 void numbered(unsigned int row, bool num);
42 bool numbered(unsigned int row) const;
44 bool numberedType() const;
50 std::vector<string> const getLabelList() const;
52 void validate(LaTeXFeatures & features) const;
55 void addRow(unsigned int);
57 void delRow(unsigned int);
59 void addCol(unsigned int);
61 void delCol(unsigned int);
66 void mutate(string const &);
68 void mutate(MathInsetTypes);
71 int defaultColSpace(unsigned int col);
73 char defaultColAlign(unsigned int col);
76 MathInsetTypes getType() const;
80 void setType(MathInsetTypes t);
82 void validate1(LaTeXFeatures & features);
84 void header_write(std::ostream &) const;
86 void footer_write(std::ostream &) const;
90 string nicelabel(unsigned int row) const;
93 MathInsetTypes objtype_;
95 std::vector<int> nonum_;
97 std::vector<string> label_;