]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/tglbtn.cpp
don't create m_dottedPen with an invalid 0 style which results in an assert under MSW
[wxWidgets.git] / src / msw / tglbtn.cpp
index e3e986fe8c0ef32437136d1ed5cb32ba6fb37a82..906c430116b868ffc6c16c2313b09b020dea3745 100644 (file)
@@ -114,7 +114,7 @@ wxSize wxToggleButton::DoGetBestSize() const
 {
    wxString label = wxGetWindowText(GetHWND());
    int wBtn;
-   GetTextExtent(wxStripMenuCodes(label), &wBtn, NULL);
+   GetTextExtent(GetLabelText(label), &wBtn, NULL);
 
    int wChar, hChar;
    wxGetCharSize(GetHWND(), &wChar, &hChar, GetFont());
@@ -126,14 +126,18 @@ wxSize wxToggleButton::DoGetBestSize() const
    int hBtn = BUTTON_HEIGHT_FROM_CHAR_HEIGHT(hChar);
 
 #if wxUSE_BUTTON
-   wxSize sz = wxButton::GetDefaultSize();
-   if (wBtn > sz.x)
-       sz.x = wBtn;
-   if (hBtn > sz.y)
-       sz.y = hBtn;
-#else
+   // make all buttons of at least standard size unless wxBU_EXACTFIT is given
+   if ( !HasFlag(wxBU_EXACTFIT) )
+   {
+       const wxSize szMin = wxButton::GetDefaultSize();
+       if ( wBtn < szMin.x )
+           wBtn = szMin.x;
+       if ( hBtn < szMin.y )
+           hBtn = szMin.y;
+   }
+#endif // wxUSE_BUTTON
+
    wxSize sz(wBtn, hBtn);
-#endif
 
    CacheBestSize(sz);
    return sz;