namespace lyx {
namespace frontend {
-const float Painter::thin_line = 0.5;
+const float Painter::thin_line = 0.0;
GuiPainter::GuiPainter(QPaintDevice * device)
: QPainter(device), Painter(),
sig.append(QChar(static_cast<short>(f.series())));
sig.append(QChar(static_cast<short>(f.realShape())));
sig.append(QChar(static_cast<short>(f.size())));
- sig.append(QChar(static_cast<short>(f.color())));
+ Color const & color = f.realColor();
+ sig.append(QChar(static_cast<short>(color.baseColor)));
+ sig.append(QChar(static_cast<short>(color.mergeColor)));
if (!monochrome_min_.empty()) {
QColor const & min = monochrome_min_.top();
QColor const & max = monochrome_max_.top();
void GuiPainter::leaveMonochromeMode()
{
- LASSERT(!monochrome_min_.empty(), /**/);
+ LASSERT(!monochrome_min_.empty(), return);
monochrome_min_.pop();
monochrome_max_.pop();
}
if (f.realShape() == SMALLCAPS_SHAPE) {
textwidth = smallCapsText(x, y, str, f);
- if (f.underbar() == FONT_ON)
- underline(f, x, y, textwidth);
- if (f.strikeout() == FONT_ON)
- strikeoutLine(f, x, y, textwidth);
- if (f.uuline() == FONT_ON)
- doubleUnderline(f, x, y, textwidth);
- if (f.uwave() == FONT_ON)
- wavyHorizontalLine(x, y, textwidth, f.realColor().baseColor);
+ textDecoration(f, x, y, textwidth);
return textwidth;
}
// textwidth = fontMetrics().width(str);
// because the above is awfully expensive on MacOSX
textwidth = fm.width(s);
- if (f.underbar() == FONT_ON)
- underline(f, x, y, textwidth);
- if (f.strikeout() == FONT_ON)
- strikeoutLine(f, x, y, textwidth);
- if (f.uuline() == FONT_ON)
- doubleUnderline(f, x, y, textwidth);
- if (f.uwave() == FONT_ON)
- // f.color() doesn't work on some circumstances
- wavyHorizontalLine(x, y, textwidth, f.realColor().baseColor);
+ textDecoration(f, x, y, textwidth);
if (!isDrawingEnabled())
return textwidth;
}
+void GuiPainter::textDecoration(FontInfo const & f, int x, int y, int width)
+{
+ if (f.underbar() == FONT_ON)
+ underline(f, x, y, width);
+ if (f.strikeout() == FONT_ON)
+ strikeoutLine(f, x, y, width);
+ if (f.uuline() == FONT_ON)
+ doubleUnderline(f, x, y, width);
+ if (f.uwave() == FONT_ON)
+ // f.color() doesn't work on some circumstances
+ wavyHorizontalLine(x, y, width, f.realColor().baseColor);
+}
+
+
static int max(int a, int b) { return a > b ? a : b; }