#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 <algorithm>
using namespace std;
void InsetMathXArrow::metrics(MetricsInfo & mi, Dimension & dim) const
{
- ScriptChanger dummy(mi.base);
+ Changer dummy2 = mi.base.changeEnsureMath();
+ Changer dummy = mi.base.changeScript();
Dimension dim0;
cell(0).metrics(mi, dim0);
Dimension dim1;
dim.wid = max(dim0.width(), dim1.width()) + 10;
dim.asc = dim0.height() + 10;
dim.des = dim1.height();
- metricsMarkers(dim);
}
void InsetMathXArrow::draw(PainterInfo & pi, int x, int y) const
{
- ScriptChanger dummy(pi.base);
+ Changer dummy2 = pi.base.changeEnsureMath();
+ Changer dummy = pi.base.changeScript();
Dimension const dim = dimension(*pi.base.bv);
Dimension const & dim0 = cell(0).dimension(*pi.base.bv);
// center the cells with the decoration
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::mathmlize(MathStream & ms) const
{
char const * arrow;
-
+
if (name_ == "xleftarrow")
arrow = "←";
else if (name_ == "xrightarrow")