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