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 (char_ == ' ') {
- dim.asc = 4;
- dim.des = 0;
- dim.wid = 10;
- } else if (mi.base.fontname == "mathnormal") {
- ShapeChanger dummy(mi.base.font, UP_SHAPE);
+ if (mi.base.fontname == "mathnormal") {
+ 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 (char_ == ' ') {
- int xp[4];
- int yp[4];
- int w = 10;
-
- xp[0] = ++x; yp[0] = y - 3;
- xp[1] = x; yp[1] = y;
- xp[2] = x + w - 2; yp[2] = y;
- xp[3] = x + w - 2; yp[3] = y - 3;
-
- pi.pain.lines(xp, yp, 4, Color_special);
- } else if (pi.base.fontname == "mathnormal") {
- ShapeChanger dummy(pi.base.font, UP_SHAPE);
+ if (pi.base.fontname == "mathnormal") {
+ 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