// -*- C++ -*-
+/**
+ * \file math_matrixinset.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author André Pönitz
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
#ifndef MATH_MATRIXINSET_H
#define MATH_MATRIXINSET_H
#include "math_gridinset.h"
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-/** Multiline math paragraph base class.
- This is the base to all multiline editable math objects
- like array and eqnarray.
- \author Alejandro Aguilar Sierra
-*/
-class LaTeXFeatures;
+// "shortcut" for DelimInset("(",ArrayInset,")")
class MathMatrixInset : public MathGridInset {
-public:
- ///
- MathMatrixInset();
- ///
- explicit MathMatrixInset(MathInsetTypes t);
- ///
- MathMatrixInset(MathInsetTypes t, col_type cols);
- ///
- MathInset * clone() const;
- ///
- void write(std::ostream &, bool fragile) const;
- ///
- void metrics(MathStyles st) const;
+public:
///
- void draw(Painter &, int x, int y) const;
+ MathMatrixInset(MathGridInset const &);
///
- string label(row_type row) const;
+ MathMatrixInset(std::string const & str);
///
- void label(row_type row, string const & label);
- ///
- void numbered(row_type row, bool num);
- ///
- bool numbered(row_type row) const;
- ///
- bool numberedType() const;
- ///
- bool display() const;
- ///
- bool ams() const;
- ///
- std::vector<string> const getLabelList() const;
- ///
- void validate(LaTeXFeatures & features) const;
+ virtual std::auto_ptr<InsetBase> clone() const;
+ /// identifies MatrixInsets
+ MathMatrixInset const * asMatrixInset() const { return this; }
///
- void addRow(row_type);
- ///
- void delRow(row_type);
+ void write(WriteStream & os) const;
///
- void addCol(col_type);
+ void normalize(NormalStream &) const;
///
- void delCol(col_type);
- ///
- void appendRow();
-
- /// change type
- void mutate(string const &);
- ///
- void mutate(MathInsetTypes);
-
- ///
- int defaultColSpace(col_type col);
- ///
- char defaultColAlign(col_type col);
-
- ///
- MathInsetTypes getType() const;
-
-private:
- ///
- void setType(MathInsetTypes t);
- ///
- void validate1(LaTeXFeatures & features);
- ///
- void header_write(std::ostream &) const;
- ///
- void footer_write(std::ostream &) const;
- ///
- void glueall();
- ///
- string nicelabel(row_type row) const;
-
+ void maple(MapleStream &) const;
///
- MathInsetTypes objtype_;
+ void maxima(MaximaStream &) const;
///
- std::vector<int> nonum_;
+ void mathmlize(MathMLStream &) const;
///
- std::vector<string> label_;
+ void octave(OctaveStream &) const;
};
#endif