From de42d281b6b8f888dd68827fadbb88d24a2e117e Mon Sep 17 00:00:00 2001 From: gazer Date: Fri, 29 Jan 2016 10:38:26 +0300 Subject: [PATCH] draw lines with drawLines --- src/dlangui/widgets/editors.d | 4 +-- src/dlangui/widgets/grid.d | 59 ++++++++++++++--------------------- 2 files changed, 25 insertions(+), 38 deletions(-) diff --git a/src/dlangui/widgets/editors.d b/src/dlangui/widgets/editors.d index 5feedda1..843b345e 100644 --- a/src/dlangui/widgets/editors.d +++ b/src/dlangui/widgets/editors.d @@ -960,12 +960,10 @@ class EditWidgetBase : ScrollWidgetBase, EditableContentListener, MenuItemAction // draw caret Rect caretRc = caretRect(); if (caretRc.intersects(_clientRect)) { - Rect rc1 = caretRc; - rc1.right = rc1.left + 1; caretRc.left++; if (_replaceMode) buf.fillRect(caretRc, _caretColorReplace); - buf.fillRect(rc1, _caretColor); + buf.drawLine(Point(caretRc.left, caretRc.bottom), Point(caretRc.left, caretRc.top), _caretColor); } } } diff --git a/src/dlangui/widgets/grid.d b/src/dlangui/widgets/grid.d index 565f0f54..33f74677 100644 --- a/src/dlangui/widgets/grid.d +++ b/src/dlangui/widgets/grid.d @@ -1407,11 +1407,6 @@ class StringGridWidget : StringGridWidgetBase { /// draw cell background protected override void drawHeaderCellBackground(DrawBuf buf, Rect rc, int c, int r) { - Rect vborder = rc; - Rect hborder = rc; - vborder.left = vborder.right - 1; - hborder.top = hborder.bottom - 1; - hborder.right--; bool selectedCol = (c == col) && !_rowSelect; bool selectedRow = r == row; bool selectedCell = selectedCol && selectedRow; @@ -1426,8 +1421,30 @@ class StringGridWidget : StringGridWidgetBase { cl = _cellHeaderSelectedBackgroundColor; } buf.fillRect(rc, cl); - buf.fillRect(vborder, _cellHeaderBorderColor); - buf.fillRect(hborder, _cellHeaderBorderColor); + buf.drawLine(Point(rc.right, rc.bottom), Point(rc.right, rc.top), _cellHeaderBorderColor); // vertical + buf.drawLine(Point(rc.left, rc.bottom), Point(rc.right - 1, rc.bottom), _cellHeaderBorderColor); // horizontal + } + + /// draw cell background + protected override void drawCellBackground(DrawBuf buf, Rect rc, int c, int r) { + bool selectedCol = c == col; + bool selectedRow = r == row; + bool selectedCell = selectedCol && selectedRow; + if (_rowSelect && selectedRow) + selectedCell = true; + // normal cell background + if (c < fixedCols || r < fixedRows) { + // fixed cell background + buf.fillRect(rc, _fixedCellBackgroundColor); + } + buf.drawLine(Point(rc.left, rc.bottom + 1), Point(rc.left, rc.top), _cellBorderColor); // vertical + buf.drawLine(Point(rc.left, rc.bottom), Point(rc.right - 1, rc.bottom), _cellBorderColor); // horizontal + if (selectedCell) { + if (_rowSelect) + buf.drawFrame(rc, _selectionColorRowSelect, Rect(0,1,0,1), _cellBorderColor); + else + buf.drawFrame(rc, _selectionColor, Rect(1,1,1,1), _cellBorderColor); + } } @@ -1442,34 +1459,6 @@ class StringGridWidget : StringGridWidgetBase { _cellHeaderSelectedBackgroundColor = style.customColor("grid_cell_background_header_selected", 0x80FFC040); super.onThemeChanged(); } - - /// draw cell background - protected override void drawCellBackground(DrawBuf buf, Rect rc, int c, int r) { - Rect vborder = rc; - Rect hborder = rc; - vborder.left = vborder.right - 1; - hborder.top = hborder.bottom - 1; - hborder.right--; - bool selectedCol = c == col; - bool selectedRow = r == row; - bool selectedCell = selectedCol && selectedRow; - if (_rowSelect && selectedRow) - selectedCell = true; - // normal cell background - if (c < fixedCols || r < fixedRows) { - // fixed cell background - buf.fillRect(rc, _fixedCellBackgroundColor); - } - buf.fillRect(vborder, _cellBorderColor); - buf.fillRect(hborder, _cellBorderColor); - if (selectedCell) { - if (_rowSelect) - buf.drawFrame(rc, _selectionColorRowSelect, Rect(0,1,0,1), _cellBorderColor); - else - buf.drawFrame(rc, _selectionColor, Rect(1,1,1,1), _cellBorderColor); - } - } - } import dlangui.widgets.metadata;