From f4756eaa2f29171381bcf8a81c9108629a6e4c7c Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 22 Nov 2019 02:49:40 +0100 Subject: [PATCH] Centre checkboxes in wxGrid vertically by default Make the alignment used by default in wxGridCellBoolRenderer and wxGridCellBoolEditor consistent and centre the checkbox vertically in both of them: previously only the editor tried to do it, but failed, because the code wrongly overwrote the default alignment as it used GetAlignment() instead of GetNonDefaultAlignment(), while the renderer didn't even try. --- src/generic/gridctrl.cpp | 5 +++-- src/generic/grideditors.cpp | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/generic/gridctrl.cpp b/src/generic/gridctrl.cpp index a72c4b1674..ea0d6d7a15 100644 --- a/src/generic/gridctrl.cpp +++ b/src/generic/gridctrl.cpp @@ -953,8 +953,9 @@ void wxGridCellBoolRenderer::Draw(wxGrid& grid, { wxGridCellRenderer::Draw(grid, attr, dc, rect, row, col, isSelected); - int vAlign, hAlign; - attr.GetAlignment(&hAlign, &vAlign); + int hAlign = wxALIGN_LEFT; + int vAlign = wxALIGN_CENTRE_VERTICAL; + attr.GetNonDefaultAlignment(&hAlign, &vAlign); const wxRect checkBoxRect = wxGetGridCheckBoxRect diff --git a/src/generic/grideditors.cpp b/src/generic/grideditors.cpp index 08954cc7fe..65755042c9 100644 --- a/src/generic/grideditors.cpp +++ b/src/generic/grideditors.cpp @@ -1218,10 +1218,10 @@ void wxGridCellBoolEditor::Create(wxWindow* parent, void wxGridCellBoolEditor::SetSize(const wxRect& r) { - int hAlign = wxALIGN_CENTRE; - int vAlign = wxALIGN_CENTRE; + int hAlign = wxALIGN_LEFT; + int vAlign = wxALIGN_CENTRE_VERTICAL; if (GetCellAttr()) - GetCellAttr()->GetAlignment(& hAlign, & vAlign); + GetCellAttr()->GetNonDefaultAlignment(&hAlign, &vAlign); const wxRect checkBoxRect = wxGetGridCheckBoxRect