X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathMatrix.cpp;h=4d309d13e88dba668401e28dd6b23e4562f17149;hb=573500dd04f154f27318ac5ec469a337f97fe9f0;hp=0460a9443ffd2dc14e992f596ef5f1b10002dfe5;hpb=05336422a4d708adebef1fbd861b74086befbe5a;p=lyx.git
diff --git a/src/mathed/InsetMathMatrix.cpp b/src/mathed/InsetMathMatrix.cpp
index 0460a9443f..4d309d13e8 100644
--- a/src/mathed/InsetMathMatrix.cpp
+++ b/src/mathed/InsetMathMatrix.cpp
@@ -14,11 +14,15 @@
#include "MathData.h"
#include "MathStream.h"
+#include "support/convert.h"
+
+using namespace std;
namespace lyx {
-InsetMathMatrix::InsetMathMatrix(InsetMathGrid const & p)
- : InsetMathGrid(p)
+InsetMathMatrix::InsetMathMatrix(InsetMathGrid const & p,
+ docstring const & left, docstring const & right)
+ : InsetMathGrid(p), left_(left), right_(right)
{}
@@ -88,15 +92,10 @@ void InsetMathMatrix::mathematica(MathematicaStream & os) const
}
-// FIXME XHTML
-// We need more information here, so we can output the correct
-// delimiters, which will not always be "[". To do this, we need
-// to make some changes to InsetMathMatrix, adding a member to
-// record the type of delimiter, and then make the extractMatrices
-// routine in MathExtern give us this information.
void InsetMathMatrix::mathmlize(MathStream & os) const
{
- os << "[";
+ os << ""
+ << left_ << "";
os << MTag("mtable");
for (row_type row = 0; row < nrows(); ++row) {
os << MTag("mtr");
@@ -105,7 +104,33 @@ void InsetMathMatrix::mathmlize(MathStream & os) const
os << ETag("mtr");
}
os << ETag("mtable");
- os << "]";
+ os << ""
+ << right_ << "";
+}
+
+
+void InsetMathMatrix::htmlize(HtmlStream & os) const
+{
+ os << MTag("table", "class='matrix'") << '\n';
+
+ // we do not print the delimiters but instead try to hack them
+ string const rows = convert(nrows());
+ string const lattrib =
+ "class='ldelim' rowspan='" + rows + "'";
+ string const rattrib =
+ "class='rdelim' rowspan='" + rows + "'";
+
+ for (row_type row = 0; row < nrows(); ++row) {
+ os << MTag("tr") << '\n';
+ if (row == 0)
+ os << MTag("td", lattrib) << ETag("td") << '\n';
+ for (col_type col = 0; col < ncols(); ++col)
+ os << MTag("td") << cell(index(row, col)) << ETag("td") << '\n';
+ if (row == 0)
+ os << MTag("td", rattrib) << ETag("td") << '\n';
+ os << ETag("tr") << '\n';
+ }
+ os << ETag("table") << '\n';
}