From ab02d36e102fd4d680e292a27c4db0388bb6ff24 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 22 Nov 2019 01:35:11 +0100 Subject: [PATCH] Account for vertical alignment in wxGetGridCheckBoxRect() too Do it if only for consistency with the horizontal alignment. --- src/generic/grid.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp index 8c0bc850e7..bfbaf2b352 100644 --- a/src/generic/grid.cpp +++ b/src/generic/grid.cpp @@ -10335,7 +10335,7 @@ wxGridCellEditor* wxGridTypeRegistry::GetEditor(int index) wxRect wxGetGridCheckBoxRect(wxWindow* win, const wxRect& cellRect, int hAlign, - int WXUNUSED(vAlign)) + int vAlign) { wxSize checkBoxSize = wxRendererNative::Get().GetCheckBoxSize(win, wxCONTROL_CELL); @@ -10368,8 +10368,19 @@ wxRect wxGetGridCheckBoxRect(wxWindow* win, checkBoxRect.SetX(cellRect.x + GRID_CELL_CHECKBOX_MARGIN); } - // TODO: support vAlign - checkBoxRect = checkBoxRect.CentreIn(cellRect, wxVERTICAL); + if ( vAlign & wxALIGN_CENTER_VERTICAL ) + { + checkBoxRect = checkBoxRect.CentreIn(cellRect, wxVERTICAL); + } + else if ( vAlign & wxALIGN_BOTTOM ) + { + checkBoxRect.SetY(cellRect.y + cellRect.height + - checkBoxRect.y - GRID_CELL_CHECKBOX_MARGIN); + } + else // wxALIGN_TOP + { + checkBoxRect.SetY(cellRect.y + GRID_CELL_CHECKBOX_MARGIN); + } return checkBoxRect; }