Fix for the undocumented holes in spiner sizes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28826 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Włodzimierz Skiba
2004-08-18 09:15:49 +00:00
parent c9c4689547
commit b081046a66

View File

@@ -212,18 +212,23 @@ wxSize wxControl::DoGetBestSize() const
// wxChoice and others. // wxChoice and others.
wxSize wxControl::GetBestSpinerSize(const bool is_vertical) const wxSize wxControl::GetBestSpinerSize(const bool is_vertical) const
{ {
// take size according to layout
wxSize bestSize(GetSystemMetrics(is_vertical ? SM_CXVSCROLL : SM_CXHSCROLL),
GetSystemMetrics(is_vertical ? SM_CYVSCROLL : SM_CYHSCROLL));
// correct size as for undocumented MSW variants cases (WinCE and perhaps others)
if (bestSize.x==0)
bestSize.x = bestSize.y;
if (bestSize.y==0)
bestSize.y = bestSize.x;
// double size according to layout
if (is_vertical) if (is_vertical)
{ bestSize.y *= 2;
// vertical control
return wxSize(GetSystemMetrics(SM_CXVSCROLL),
2*GetSystemMetrics(SM_CYVSCROLL));
}
else else
{ bestSize.x *= 2;
// horizontal control
return wxSize(2*GetSystemMetrics(SM_CXHSCROLL), return bestSize;
GetSystemMetrics(SM_CYHSCROLL));
}
} }
/* static */ wxVisualAttributes /* static */ wxVisualAttributes