diff --git a/interface/wx/renderer.h b/interface/wx/renderer.h index 2a3772b78a..ddd4d3a1f8 100644 --- a/interface/wx/renderer.h +++ b/interface/wx/renderer.h @@ -552,7 +552,9 @@ public: /** Returns the size of a check box. - The @a win parameter is not used currently and can be @NULL. + + @param win A valid, i.e. non-null, window pointer which is used to get + the theme defining the checkbox size under some platforms. */ virtual wxSize GetCheckBoxSize(wxWindow* win) = 0; diff --git a/src/generic/renderg.cpp b/src/generic/renderg.cpp index fc2f39645d..eb5e1442c4 100644 --- a/src/generic/renderg.cpp +++ b/src/generic/renderg.cpp @@ -714,6 +714,8 @@ wxRendererGeneric::DrawCheckBox(wxWindow *WXUNUSED(win), wxSize wxRendererGeneric::GetCheckBoxSize(wxWindow *win) { + wxCHECK_MSG( win, wxSize(0, 0), "Must have a valid window" ); + return win->FromDIP(wxSize(16, 16)); } diff --git a/src/gtk/renderer.cpp b/src/gtk/renderer.cpp index 1c425261dc..a65d6f27f6 100644 --- a/src/gtk/renderer.cpp +++ b/src/gtk/renderer.cpp @@ -551,8 +551,13 @@ wxRendererGTK::DrawComboBoxDropButton(wxWindow *win, } wxSize -wxRendererGTK::GetCheckBoxSize(wxWindow *WXUNUSED(win)) +wxRendererGTK::GetCheckBoxSize(wxWindow* win) { + // Even though we don't use the window in this implementation, still check + // that it's valid to avoid surprises when running the same code under the + // other platforms. + wxCHECK_MSG( win, wxSize(0, 0), "Must have a valid window" ); + #ifdef __WXGTK3__ int min_width, min_height; wxGtkStyleContext sc; diff --git a/src/msw/renderer.cpp b/src/msw/renderer.cpp index d94f0c582f..6d529a1946 100644 --- a/src/msw/renderer.cpp +++ b/src/msw/renderer.cpp @@ -521,8 +521,12 @@ wxRendererMSW::DrawTitleBarBitmap(wxWindow *win, DoDrawFrameControl(DFC_CAPTION, kind, win, dc, rect, flags); } -wxSize wxRendererMSW::GetCheckBoxSize(wxWindow * WXUNUSED(win)) +wxSize wxRendererMSW::GetCheckBoxSize(wxWindow* win) { + // Even though we don't use the window in this implementation, still check + // that it's valid to avoid surprises when using themes. + wxCHECK_MSG( win, wxSize(0, 0), "Must have a valid window" ); + return wxSize(::GetSystemMetrics(SM_CXMENUCHECK), ::GetSystemMetrics(SM_CYMENUCHECK)); } @@ -830,6 +834,8 @@ wxRendererXP::DrawTitleBarBitmap(wxWindow *win, wxSize wxRendererXP::GetCheckBoxSize(wxWindow* win) { + wxCHECK_MSG( win, wxSize(0, 0), "Must have a valid window" ); + wxUxThemeHandle hTheme(win, L"BUTTON"); if (hTheme) { diff --git a/src/osx/carbon/renderer.cpp b/src/osx/carbon/renderer.cpp index 0f777377ac..aa124a816d 100644 --- a/src/osx/carbon/renderer.cpp +++ b/src/osx/carbon/renderer.cpp @@ -484,8 +484,13 @@ wxRendererMac::DrawCheckBox(wxWindow *win, kind, kThemeAdornmentNone); } -wxSize wxRendererMac::GetCheckBoxSize(wxWindow* WXUNUSED(win)) +wxSize wxRendererMac::GetCheckBoxSize(wxWindow* win) { + // Even though we don't use the window in this implementation, still check + // that it's valid to avoid surprises when running the same code under the + // other platforms. + wxCHECK_MSG( win, wxSize(0, 0), "Must have a valid window" ); + wxSize size; SInt32 width, height; OSStatus errStatus;