1 // -*- C++ -*- 2 /** 3 * \file InsetMathXYMatrix.h 4 * This file is part of LyX, the document processor. 5 * Licence details can be found in the file COPYING. 6 * 7 * \author André Pönitz 8 * 9 * Full author contact details are available in file CREDITS. 10 */ 11 12 #ifndef MATH_XYMATRIX_H 13 #define MATH_XYMATRIX_H 14 15 #include "Length.h" 16 #include "InsetMathGrid.h" 17 18 19 namespace lyx { 20 21 22 class InsetMathXYMatrix : public InsetMathGrid { 23 public: 24 /// 25 InsetMathXYMatrix(Buffer * buf, Length const & = Length(), char c = '\0', 26 bool equal_spacing = false); 27 /// 28 void metrics(MetricsInfo &, Dimension &) const; 29 /// 30 void draw(PainterInfo & pi, int x, int y) const; 31 /// asXYMatrixInset()32 InsetMathXYMatrix const * asXYMatrixInset() const { return this; } 33 /// 34 virtual int colsep() const; 35 /// 36 virtual int rowsep() const; 37 38 /// 39 void write(WriteStream & os) const; 40 /// 41 void infoize(odocstream & os) const; 42 /// 43 void normalize(NormalStream &) const; 44 /// 45 void maple(MapleStream &) const; 46 /// 47 void validate(LaTeXFeatures & features) const; 48 /// lyxCode()49 InsetCode lyxCode() const { return MATH_XYMATRIX_CODE; } 50 /// 51 void mathmlize(MathStream &) const; 52 /// 53 void htmlize(HtmlStream &) const; 54 55 private: 56 /// 57 virtual Inset * clone() const; 58 /// extra spacing, may be empty 59 Length spacing_; 60 /// 61 char spacing_code_; 62 /// 63 bool equal_spacing_; 64 }; 65 66 67 68 } // namespace lyx 69 #endif 70