X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathCancel.cpp;h=e0c86114a8ed71f9b680cdc1c5e68dfa9c38ef49;hb=2de30c62f8d671a8c8d4d52a6a7310e2c5ca84de;hp=545e6f5d20019bb4ec2252c8eea0219a2314b4eb;hpb=cf4e6ddad925d5888ecccbe560568c50a61a1cea;p=lyx.git diff --git a/src/mathed/InsetMathCancel.cpp b/src/mathed/InsetMathCancel.cpp index 545e6f5d20..e0c86114a8 100644 --- a/src/mathed/InsetMathCancel.cpp +++ b/src/mathed/InsetMathCancel.cpp @@ -3,7 +3,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Uwe Stöhr + * \author Uwe Stöhr * * Full author contact details are available in file CREDITS. */ @@ -12,9 +12,11 @@ #include "InsetMathCancel.h" -#include "LaTeXFeatures.h" #include "MathStream.h" +#include "LaTeXFeatures.h" +#include "MetricsInfo.h" + #include "frontends/Painter.h" #include @@ -35,17 +37,20 @@ Inset * InsetMathCancel::clone() const void InsetMathCancel::metrics(MetricsInfo & mi, Dimension & dim) const { + Changer dummy = mi.base.changeEnsureMath(); cell(0).metrics(mi, dim); - metricsMarkers(dim); + metricsMarkers(mi, dim); } void InsetMathCancel::draw(PainterInfo & pi, int x, int y) const { + Changer dummy = pi.base.changeEnsureMath(); // We first draw the text and then an arrow ColorCode const origcol = pi.base.font.color(); cell(0).draw(pi, x + 1, y); Dimension const dim = dimension(*pi.base.bv); + int const t = pi.base.solidLineThickness(); /* * y1 \ / @@ -63,12 +68,12 @@ void InsetMathCancel::draw(PainterInfo & pi, int x, int y) const int const y2 = y + dim.des; if (kind_ == cancel) - pi.pain.line(x2, y1, x1, y2, origcol); + pi.pain.line(x2, y1, x1, y2, origcol, pi.pain.line_solid, t); else if (kind_ == bcancel) - pi.pain.line(x2, y2, x1, y1, origcol); + pi.pain.line(x2, y2, x1, y1, origcol, pi.pain.line_solid, t); else if (kind_ == xcancel) { - pi.pain.line(x2, y1, x1, y2, origcol); - pi.pain.line(x2, y2, x1, y1, origcol); + pi.pain.line(x2, y1, x1, y2, origcol, pi.pain.line_solid, t); + pi.pain.line(x2, y2, x1, y1, origcol, pi.pain.line_solid, t); } drawMarkers(pi, x, y); @@ -126,21 +131,35 @@ void InsetMathCancel::infoize(odocstream & os) const } +// unfortunately, we do not have many options here, so we have to treat +// them all the same way. +void InsetMathCancel::htmlize(HtmlStream & os) const +{ + os << MTag("span", "style='text-decoration: line-through;'") + << cell(0) + << ETag("span"); +} + + void InsetMathCancel::mathmlize(MathStream & os) const { switch (kind_) { case cancel: - os << MTag("menclose", "notation='updiagonalstrike'") << cell(0) << ETag("menclose"); + os << MTag("menclose", "notation='updiagonalstrike'") + << cell(0) + << ETag("menclose"); break; case bcancel: - os << MTag("menclose", "notation='downdiagonalstrike'") << cell(0) << ETag("menclose"); + os << MTag("menclose", "notation='downdiagonalstrike'") + << cell(0) + << ETag("menclose"); break; case xcancel: os << MTag("menclose", "notation='updiagonalstrike'") << MTag("menclose", "notation='downdiagonalstrike'") << cell(0) << ETag("menclose") - << ETag("menclose"); + << ETag("menclose"); break; } }