X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1a75e76f399bc91b3f841e7f77140e83f9bd5958..caf448e3e19c0fcd6593e47138fe31a82e8c8a8d:/src/os2/button.cpp?ds=sidebyside diff --git a/src/os2/button.cpp b/src/os2/button.cpp index 61b0d68fa4..d75aa8258a 100644 --- a/src/os2/button.cpp +++ b/src/os2/button.cpp @@ -23,6 +23,7 @@ #include "wx/scrolwin.h" #endif +#include "wx/stockitem.h" #include "wx/os2/private.h" #define BUTTON_HEIGHT_FROM_CHAR_HEIGHT(cy) (11*EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)/10) @@ -43,16 +44,20 @@ IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl) bool wxButton::Create( wxWindow* pParent , wxWindowID vId -, const wxString& rsLabel +, const wxString& rsLbl , const wxPoint& rPos , const wxSize& rSize , long lStyle -#if wxUSE_VALIDATORS , const wxValidator& rValidator -#endif , const wxString& rsName ) { + wxString rsLabel(rsLbl); + if (rsLabel.empty() && wxIsStockID(vId)) + rsLabel = wxGetStockLabel(vId); + + wxString sLabel = ::wxPMTextToLabel(rsLabel); + SetName(rsName); #if wxUSE_VALIDATORS SetValidator(rValidator); @@ -75,7 +80,7 @@ bool wxButton::Create( m_hWnd = (WXHWND)::WinCreateWindow( GetHwndOf(pParent) // Parent handle ,WC_BUTTON // A Button class window - ,(PSZ)rsLabel.c_str() // Button text + ,(PSZ)sLabel.c_str() // Button text ,lStyle // Button style ,0, 0, 0, 0 // Location and size ,GetHwndOf(pParent) // Owner handle @@ -136,6 +141,7 @@ wxSize wxButton::DoGetBestSize() const int nWidthButton; int nWidthChar; int nHeightChar; + wxFont vFont = (wxFont)GetFont(); GetTextExtent( rsLabel ,&nWidthButton @@ -145,7 +151,7 @@ wxSize wxButton::DoGetBestSize() const wxGetCharSize( GetHWND() ,&nWidthChar ,&nHeightChar - ,(wxFont*)&GetFont() + ,&vFont ); // @@ -161,7 +167,7 @@ wxSize wxButton::DoGetBestSize() const // // Need a little extra to make it look right // - nHeightButton += nHeightChar/1.5; + nHeightButton += (int)(nHeightChar/1.5); if (!HasFlag(wxBU_EXACTFIT)) { @@ -232,7 +238,7 @@ void wxButton::SetDefault() wxCHECK_RET( pParent, _T("button without parent?") ); // - // Set this one as the default button both for wxWindows and Windows + // Set this one as the default button both for wxWidgets and Windows // wxWindow* pWinOldDefault = pParent->SetDefaultItem(this); @@ -313,7 +319,7 @@ void wxButton::SetDefaultStyle( if ((lStyle & BS_USERBUTTON) != BS_USERBUTTON) { if (bOn) - lStyle | BS_DEFAULT; + lStyle |= BS_DEFAULT; else lStyle &= ~BS_DEFAULT; ::WinSetWindowULong(GetHwndOf(pBtn), QWL_STYLE, lStyle);