]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/InsetMathXArrow.cpp
typo
[lyx.git] / src / mathed / InsetMathXArrow.cpp
index d2121d6dfef331cc1ed577e12ffedbab6b16201f..a9ed6b0004393db8a6120147abd0082794271cd7 100644 (file)
 
 #include <config.h>
 
-#include "support/lassert.h"
-
 #include "InsetMathXArrow.h"
 
 #include "MathData.h"
 #include "MathStream.h"
-#include "MathStream.h"
 #include "MathSupport.h"
 
 #include "LaTeXFeatures.h"
 #include "MetricsInfo.h"
 
+#include "support/debug.h"
+#include "support/lassert.h"
 
 #include <algorithm>
 
@@ -52,7 +51,6 @@ void InsetMathXArrow::metrics(MetricsInfo & mi, Dimension & dim) const
        dim.wid = max(dim0.width(), dim1.width()) + 10;
        dim.asc = dim0.height() + 10;
        dim.des = dim1.height();
-       metricsMarkers(mi, dim);
 }
 
 
@@ -66,12 +64,11 @@ void InsetMathXArrow::draw(PainterInfo & pi, int x, int y) const
        cell(0).draw(pi, x + dim.width()/2 - dim0.width()/2, y - 10);
        Dimension const & dim1 = cell(1).dimension(*pi.base.bv);
        cell(1).draw(pi, x + dim.width()/2 - dim1.width()/2, y + dim1.height());
-       mathed_draw_deco(pi, x + 1, y - 7, dim.wid - 2, 5, name_);
-       drawMarkers(pi, x, y);
+       mathed_draw_deco(pi, x, y - 7, dim.wid, 5, name_);
 }
 
 
-void InsetMathXArrow::write(WriteStream & os) const
+void InsetMathXArrow::write(TeXMathStream & os) const
 {
        MathEnsurer ensurer(os);
        os << '\\' << name_;
@@ -87,47 +84,85 @@ void InsetMathXArrow::normalize(NormalStream & os) const
 }
 
 
-void InsetMathXArrow::mathmlize(MathStream & ms) const
+void InsetMathXArrow::mathmlize(MathMLStream & ms) const
 {
        char const * arrow;
-       
-       if (name_ == "xleftarrow")
-               arrow = "&larr;";
-       else if (name_ == "xrightarrow")
-               arrow = "&rarr;";
-       else if (name_ == "xhookleftarrow")
-               arrow = "&larrhk;";
-       else if (name_ == "xhookrightarrow")
-               arrow = "&rarrhk;";
-       else if (name_ == "xLeftarrow")
-               arrow = "&lArr;";
-       else if (name_ == "xRightarrow")
-               arrow = "&rArr;";
-       else if (name_ == "xleftrightarrow")
-               arrow = "&leftrightarrow;";
-       else if (name_ == "xLeftrightarrow")
-               arrow = "&Leftrightarrow;";
-       else if (name_ == "xleftharpoondown")
-               arrow = "&leftharpoondown;";
-       else if (name_ == "xleftharpoonup")
-               arrow = "&leftharpoonup;";
-       else if (name_ == "xleftrightharpoons")
-               arrow = "&leftrightharpoons;";
-       else if (name_ == "xrightharpoondown")
-               arrow = "&rightharpoondown;";
-       else if (name_ == "xrightharpoonup")
-               arrow = "&rightharpoonup;";
-       else if (name_ == "xrightleftharpoons")
-               arrow = "&rightleftharpoons;";
-       else if (name_ == "xmapsto")
-               arrow = "&mapsto;";
-       else {
-               lyxerr << "mathmlize conversion for '" << name_ << "' not implemented" << endl;
-               LASSERT(false, arrow = "&rarr;");
+
+       if (!ms.xmlMode()) { // Use HTML entities.
+               if (name_ == "xleftarrow")
+                       arrow = "&larr;";
+               else if (name_ == "xrightarrow")
+                       arrow = "&rarr;";
+               else if (name_ == "xhookleftarrow")
+                       arrow = "&larrhk;";
+               else if (name_ == "xhookrightarrow")
+                       arrow = "&rarrhk;";
+               else if (name_ == "xLeftarrow")
+                       arrow = "&lArr;";
+               else if (name_ == "xRightarrow")
+                       arrow = "&rArr;";
+               else if (name_ == "xleftrightarrow")
+                       arrow = "&leftrightarrow;";
+               else if (name_ == "xLeftrightarrow")
+                       arrow = "&Leftrightarrow;";
+               else if (name_ == "xleftharpoondown")
+                       arrow = "&leftharpoondown;";
+               else if (name_ == "xleftharpoonup")
+                       arrow = "&leftharpoonup;";
+               else if (name_ == "xleftrightharpoons")
+                       arrow = "&leftrightharpoons;";
+               else if (name_ == "xrightharpoondown")
+                       arrow = "&rightharpoondown;";
+               else if (name_ == "xrightharpoonup")
+                       arrow = "&rightharpoonup;";
+               else if (name_ == "xrightleftharpoons")
+                       arrow = "&rightleftharpoons;";
+               else if (name_ == "xmapsto")
+                       arrow = "&mapsto;";
+               else {
+                       lyxerr << "mathmlize conversion for '" << name_ << "' not implemented" << endl;
+                       LASSERT(false, arrow = "&rarr;");
+               }
+       } else { // Use XML entities.
+               if (name_ == "xleftarrow")
+                       arrow = "&#x2190;";
+               else if (name_ == "xrightarrow")
+                       arrow = "&#x2192;";
+               else if (name_ == "xhookleftarrow")
+                       arrow = "&#x21a9;";
+               else if (name_ == "xhookrightarrow")
+                       arrow = "&#x21aa;";
+               else if (name_ == "xLeftarrow")
+                       arrow = "&#x21d0;";
+               else if (name_ == "xRightarrow")
+                       arrow = "&#x21d2;";
+               else if (name_ == "xleftrightarrow")
+                       arrow = "&#x2194;";
+               else if (name_ == "xLeftrightarrow")
+                       arrow = "&#x21d4;";
+               else if (name_ == "xleftharpoondown")
+                       arrow = "&#x21bd;";
+               else if (name_ == "xleftharpoonup")
+                       arrow = "&#x21bc;";
+               else if (name_ == "xleftrightharpoons")
+                       arrow = "&#x21cb;";
+               else if (name_ == "xrightharpoondown")
+                       arrow = "&#x21c1;";
+               else if (name_ == "xrightharpoonup")
+                       arrow = "&#x21c0;";
+               else if (name_ == "xrightleftharpoons")
+                       arrow = "&#x21cc;";
+               else if (name_ == "xmapsto")
+                       arrow = "&#x21a6;";
+               else {
+                       lyxerr << "mathmlize XML conversion for '" << name_ << "' not implemented" << endl;
+                       LASSERT(false, arrow = "&#x2192;");
+               }
        }
-       ms << "<munderover accent='false' accentunder='false'>"
+
+       ms << "<" << from_ascii(ms.namespacedTag("munderover")) << " accent='false' accentunder='false'>"
           << arrow << cell(1) << cell(0)
-          << "</munderover>";
+          << "</" << from_ascii(ms.namespacedTag("munderover"))<< ">";
 }