#include "TextPainter.h"
#include "frontends/FontMetrics.h"
+#include "frontends/Painter.h"
#include "support/lassert.h"
namespace lyx {
-InsetMathSpecialChar::InsetMathSpecialChar(docstring name)
+InsetMathSpecialChar::InsetMathSpecialChar(docstring const & name)
: name_(name), kerning_(0)
{
if (name.size() != 1) {
else if (name == "textbackslash")
char_ = '\\';
else
- LASSERT(false, /**/);
+ LASSERT(false, char_ = '?');
} else
char_ = name.at(0);
}
void InsetMathSpecialChar::metrics(MetricsInfo & mi, Dimension & dim) const
{
if (mi.base.fontname == "mathnormal") {
- ShapeChanger dummy(mi.base.font, UP_SHAPE);
+ Changer dummy = mi.base.font.changeShape(UP_SHAPE);;
dim = theFontMetrics(mi.base.font).dimension(char_);
} else {
frontend::FontMetrics const & fm = theFontMetrics(mi.base.font);
dim = fm.dimension(char_);
- kerning_ = fm.rbearing(char_) - dim.wid;
+ kerning_ = mathed_char_kerning(mi.base.font, char_);
}
}
void InsetMathSpecialChar::draw(PainterInfo & pi, int x, int y) const
{
if (pi.base.fontname == "mathnormal") {
- ShapeChanger dummy(pi.base.font, UP_SHAPE);
+ Changer dummy = pi.base.font.changeShape(UP_SHAPE);
pi.draw(x, y, char_);
} else {
pi.draw(x, y, char_);
}
+void InsetMathSpecialChar::htmlize(HtmlStream & ms) const
+{
+ switch (char_) {
+ case '&':
+ ms << "&";
+ break;
+ default:
+ ms.os().put(char_);
+ break;
+ }
+}
+
+
} // namespace lyx