X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathSqrt.cpp;h=7cfe028c242cec0c09ba42083db3f9a1ecba29ff;hb=e5bb491e2e10a8097284d11eae5501a3673731cb;hp=d11dac084cf9ee640cfaa04b590b562c832e2e59;hpb=758de9577dcf3ff912c794dc4dffa13e138ffd41;p=lyx.git diff --git a/src/mathed/InsetMathSqrt.cpp b/src/mathed/InsetMathSqrt.cpp index d11dac084c..7cfe028c24 100644 --- a/src/mathed/InsetMathSqrt.cpp +++ b/src/mathed/InsetMathSqrt.cpp @@ -12,6 +12,7 @@ #include "InsetMathSqrt.h" +#include "InsetMathRoot.h" #include "MathData.h" #include "MathStream.h" #include "MathSupport.h" @@ -38,33 +39,13 @@ Inset * InsetMathSqrt::clone() const void InsetMathSqrt::metrics(MetricsInfo & mi, Dimension & dim) const { - Changer dummy = mi.base.changeEnsureMath(); - cell(0).metrics(mi, dim); - // make sure that the dim is high enough for any character - Dimension fontDim; - math_font_max_dim(mi.base.font, fontDim.asc, fontDim.des); - dim += fontDim; - // Some room for the decoration - dim.asc += 1; - dim.wid += 7; + mathed_root_metrics(mi, cell(0), nullptr, dim); } void InsetMathSqrt::draw(PainterInfo & pi, int x, int y) const { - Changer dummy = pi.base.changeEnsureMath(); - cell(0).draw(pi, x + 9, y); - Dimension const dim = dimension(*pi.base.bv); - int const a = dim.ascent(); - int const d = dim.descent(); - int xp[3]; - int yp[3]; - pi.pain.line(x + dim.width(), y - a + 1, - x + 7, y - a + 1, pi.base.font.color()); - xp[0] = x + 7; yp[0] = y - a + 1; - xp[1] = x + 4; yp[1] = y + d - 1; - xp[2] = x; yp[2] = y + (d - a)/2; - pi.pain.lines(xp, yp, 3, pi.base.font.color()); + mathed_draw_root(pi, x, y, cell(0), nullptr, dimension(*pi.base.bv)); } @@ -88,7 +69,7 @@ void InsetMathSqrt::drawT(TextPainter & /*pain*/, int /*x*/, int /*y*/) const } -void InsetMathSqrt::write(WriteStream & os) const +void InsetMathSqrt::write(TeXMathStream & os) const { MathEnsurer ensurer(os); os << "\\sqrt{" << cell(0) << '}'; @@ -117,17 +98,17 @@ void InsetMathSqrt::octave(OctaveStream & os) const } -void InsetMathSqrt::mathmlize(MathStream & os) const +void InsetMathSqrt::mathmlize(MathMLStream & ms) const { - os << MTag("msqrt") << cell(0) << ETag("msqrt"); + ms << MTag("msqrt") << cell(0) << ETag("msqrt"); } void InsetMathSqrt::htmlize(HtmlStream & os) const { os << MTag("span", "class='sqrt'") - << from_ascii("√") - << MTag("span", "class='sqrtof'") << cell(0) << ETag("span") + << from_ascii("√") + << MTag("span", "class='sqrtof'") << cell(0) << ETag("span") << ETag("span"); }