]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/InsetMathXYMatrix.cpp
compile.
[lyx.git] / src / mathed / InsetMathXYMatrix.cpp
index 6b11ac2415fd9261508c766c1993fd991df16aff..d04d8f4f71f137d4aa733f26bb4295430a6df1b2 100644 (file)
 namespace lyx {
 
 
-InsetMathXYMatrix::InsetMathXYMatrix(Length const & s, char c)
-       : InsetMathGrid(1, 1), spacing_(s), spacing_code_(c)
-{}
+InsetMathXYMatrix::InsetMathXYMatrix(Buffer * buf, Length const & s, char c,
+       bool e) : InsetMathGrid(buf, 1, 1), spacing_(s), spacing_code_(c),
+       equal_spacing_(e)
+{
+}
 
 
 Inset * InsetMathXYMatrix::clone() const
@@ -55,19 +57,29 @@ void InsetMathXYMatrix::write(WriteStream & os) const
 {
        MathEnsurer ensurer(os);
        os << "\\xymatrix";
-       switch (spacing_code_) {
-       case 'R':
-       case 'C':
-       case 'M':
-       case 'W':
-       case 'H':
-       case 'L':
-               os << '@' << spacing_code_ << '='
-                  << from_ascii(spacing_.asLatexString());
-               break;
-       default:
-               if (!spacing_.empty())
-                       os << "@=" << from_ascii(spacing_.asLatexString());
+       if (equal_spacing_) {
+               os << "@!";
+               switch (spacing_code_) {
+               case '0':
+               case 'R':
+               case 'C':
+                       os << spacing_code_;
+               }
+       } else {
+               switch (spacing_code_) {
+               case 'R':
+               case 'C':
+               case 'M':
+               case 'W':
+               case 'H':
+               case 'L':
+                       os << '@' << spacing_code_ << '='
+                          << from_ascii(spacing_.asLatexString());
+                       break;
+               default:
+                       if (!spacing_.empty())
+                               os << "@=" << from_ascii(spacing_.asLatexString());
+               }
        }
        os << '{';
        InsetMathGrid::write(os);
@@ -78,19 +90,28 @@ void InsetMathXYMatrix::write(WriteStream & os) const
 void InsetMathXYMatrix::infoize(odocstream & os) const
 {
        os << "xymatrix ";
-       switch (spacing_code_) {
-       case 'R':
-       case 'C':
-       case 'M':
-       case 'W':
-       case 'H':
-       case 'L':
-               os << spacing_code_ << ' '
-                  << from_ascii(spacing_.asLatexString()) << ' ';
-               break;
-       default:
-               if (!spacing_.empty())
-                       os << from_ascii(spacing_.asLatexString()) << ' ';
+       if (equal_spacing_) {
+               switch (spacing_code_) {
+               case '0':
+               case 'R':
+               case 'C':
+                       os << '!' << spacing_code_ << ' ';
+               }
+       } else {
+               switch (spacing_code_) {
+               case 'R':
+               case 'C':
+               case 'M':
+               case 'W':
+               case 'H':
+               case 'L':
+                       os << spacing_code_ << ' '
+                          << from_ascii(spacing_.asLatexString()) << ' ';
+                       break;
+               default:
+                       if (!spacing_.empty())
+                               os << from_ascii(spacing_.asLatexString()) << ' ';
+               }
        }
        InsetMathGrid::infoize(os);
 }
@@ -119,4 +140,16 @@ void InsetMathXYMatrix::validate(LaTeXFeatures & features) const
 }
 
 
+void InsetMathXYMatrix::mathmlize(MathStream &) const
+{
+       throw MathExportException();
+}
+
+
+void InsetMathXYMatrix::htmlize(HtmlStream &) const 
+{
+       throw MathExportException(); 
+}
+
+
 } // namespace lyx