]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/button.cpp
changed wxDC::GetTextExtent() and related methods to take const wxFont pointer, for...
[wxWidgets.git] / src / msw / button.cpp
index 05c20f9b8853ca86a02636de853515d965489cf6..1470b0c04469eeb1d1efd9fa9fbfe11294e16d7d 100644 (file)
@@ -343,18 +343,16 @@ wxSize wxButtonBase::GetDefaultSize()
  */
 
 // set this button as the (permanently) default one in its panel
-void wxButton::SetDefault()
+wxWindow *wxButton::SetDefault()
 {
-    wxTopLevelWindow *tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow);
-
-    wxCHECK_RET( tlw, _T("button without top level window?") );
-
     // set this one as the default button both for wxWidgets ...
-    wxWindow *winOldDefault = tlw->SetDefaultItem(this);
+    wxWindow *winOldDefault = wxButtonBase::SetDefault();
 
     // ... and Windows
     SetDefaultStyle(wxDynamicCast(winOldDefault, wxButton), false);
     SetDefaultStyle(this, true);
+
+    return winOldDefault;
 }
 
 // set this button as being currently default
@@ -849,11 +847,10 @@ bool wxButton::MSWOnDraw(WXDRAWITEMSTRUCT *wxdis)
     }
 
     COLORREF colFg = wxColourToRGB(GetForegroundColour());
-    DrawButtonText(hdc, &rectBtn,
-                   state & ODS_NOACCEL ? GetLabelText()
-                                       : GetLabel(),
-                   state & ODS_DISABLED ? GetSysColor(COLOR_GRAYTEXT)
-                                        : colFg);
+    if ( state & ODS_DISABLED ) colFg = GetSysColor(COLOR_GRAYTEXT) ;
+    wxString label = GetLabel();
+    if ( state & ODS_NOACCEL ) label = GetLabelText() ;
+    DrawButtonText(hdc, &rectBtn, label, colFg);
 
     return true;
 }