]> git.lyx.org Git - features.git/blobdiff - src/RowPainter.cpp
Set advanced repl_buffer internal as well (#12246)
[features.git] / src / RowPainter.cpp
index 2175e4fbd6567254a5bcdcb20a157677bb198e10..44e4f7253479b64f27c42c37a423e5a6c4d87bae 100644 (file)
@@ -289,7 +289,10 @@ void RowPainter::paintChange(Row::Element const & e) const
 
 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);
 }
 
 
@@ -378,18 +381,17 @@ void RowPainter::paintAppendixStart(int y) const
 
 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);
        }
 }
 
@@ -627,7 +629,21 @@ void RowPainter::paintSelection() const
                pi_.pain.fillRectangle(int(x), y1,
                                       int(xo_ + tm_.width()) - int(x), y2 - y1,
                                       Color_selection);
+}
 
+
+void RowPainter::paintBookmark(int num) const
+{
+       BufferView const * bv = pi_.base.bv;
+       FontInfo fi = bv->buffer().params().getFont().fontInfo();
+       FontMetrics const & fm = theFontMetrics(fi);
+       fi.setColor(Color_bookmark);
+       // ❶ U+2776 DINGBAT NEGATIVE CIRCLED DIGIT ONE
+       char_type const ch = 0x2775 + num;
+       int const x = row_.isRTL()
+               ? bv->workWidth() - bv->rightMargin() + (bv->defaultMargin() - fm.width(ch)) / 2
+               : bv->leftMargin() - (bv->defaultMargin() + fm.width(ch)) / 2;
+       pi_.pain.text(x, yo_, ch, fi);
 }