]> 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 0729c9eea0a7ff5a0b0517bfdef376d6e4c51e9d..1470b0c04469eeb1d1efd9fa9fbfe11294e16d7d 100644 (file)
@@ -36,6 +36,7 @@
     #include "wx/settings.h"
     #include "wx/dcscreen.h"
     #include "wx/dcclient.h"
+    #include "wx/toplevel.h"
 #endif
 
 #include "wx/stockitem.h"
@@ -253,7 +254,7 @@ wxSize wxButton::DoGetBestSize() const
 
     wxCoord wBtn,
             hBtn;
-    dc.GetMultiLineTextExtent(wxStripMenuCodes(GetLabel()), &wBtn, &hBtn);
+    dc.GetMultiLineTextExtent(GetLabelText(), &wBtn, &hBtn);
 
     // add a margin -- the button is wider than just its label
     wBtn += 3*GetCharWidth();
@@ -342,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
@@ -848,11 +847,10 @@ bool wxButton::MSWOnDraw(WXDRAWITEMSTRUCT *wxdis)
     }
 
     COLORREF colFg = wxColourToRGB(GetForegroundColour());
-    DrawButtonText(hdc, &rectBtn,
-                   (state & ODS_NOACCEL ? wxStripMenuCodes(GetLabel())
-                                        : 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;
 }