void RowPainter::paintChangeBar() const
{
- pi_.pain.fillRectangle(5, yo_ - row_.ascent(), 3, row_.height(), Color_changebar);
+ int const x = pi_.base.bv->leftMargin() - pi_.base.bv->zoomedPixels(7);
+ Dimension const & cdim = row_.contents_dim();
+ pi_.pain.fillRectangle(x, yo_ - cdim.ascent(),
+ 3, cdim.height(), Color_changebar);
}
void RowPainter::paintTooLargeMarks(bool const left, bool const right) const
{
- if (left)
- pi_.pain.line(pi_.base.dottedLineThickness(), yo_ - row_.ascent(),
- pi_.base.dottedLineThickness(), yo_ + row_.descent(),
- Color_scroll, Painter::line_onoffdash,
- pi_.base.dottedLineThickness());
+ int const lwid = pi_.base.dottedLineThickness();
+ Dimension const & cdim = row_.contents_dim();
+ if (left) {
+ int const x = pi_.base.bv->leftMargin() - lwid;
+ pi_.pain.line(x, yo_ - cdim.ascent(), x, yo_ + cdim.descent(),
+ Color_scroll, Painter::line_onoffdash, lwid);
+ }
if (right) {
- int const wwidth =
- pi_.base.bv->workWidth() - pi_.base.dottedLineThickness();
- pi_.pain.line(wwidth, yo_ - row_.ascent(),
- wwidth, yo_ + row_.descent(),
- Color_scroll, Painter::line_onoffdash,
- pi_.base.dottedLineThickness());
+ int const x = pi_.base.bv->workWidth() - pi_.base.bv->rightMargin();
+ pi_.pain.line(x, yo_ - cdim.ascent(), x, yo_ + cdim.descent(),
+ Color_scroll, Painter::line_onoffdash, lwid);
}
}
pi_.pain.fillRectangle(int(x), y1,
int(xo_ + tm_.width()) - int(x), y2 - y1,
Color_selection);
+}
+
+void RowPainter::paintBookmark(int num) const
+{
+ int const x = row_.isRTL()
+ ? pi_.base.bv->workWidth() - pi_.base.bv->rightMargin() : 0;
+ FontInfo fi = pi_.base.bv->buffer().params().getFont().fontInfo();
+ fi.setColor(Color_bookmark);
+ // ❶ U+2776 DINGBAT NEGATIVE CIRCLED DIGIT ONE
+ char_type const ch = 0x2775 + num;
+ pi_.pain.text(x, yo_, ch, fi);
}