X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b07664068bc48173d08e3146ca05dceac275aa6a..67e49a98bbba6793cf1e344477bee9e46d4d5c71:/src/msw/button.cpp diff --git a/src/msw/button.cpp b/src/msw/button.cpp index e5423b1ffb..24d5340b6e 100644 --- a/src/msw/button.cpp +++ b/src/msw/button.cpp @@ -28,6 +28,8 @@ #pragma hdrstop #endif +#if wxUSE_BUTTON + #ifndef WX_PRECOMP #include "wx/button.h" #include "wx/brush.h" @@ -126,15 +128,6 @@ bool wxButton::Create(wxWindow *parent, wxButton::~wxButton() { - wxPanel *panel = wxDynamicCast(GetParent(), wxPanel); - if ( panel ) - { - if ( panel->GetDefaultItem() == this ) - { - // don't leave the panel with invalid default item - panel->SetDefaultItem(NULL); - } - } } // ---------------------------------------------------------------------------- @@ -164,7 +157,7 @@ wxSize wxButton::DoGetBestSize() const } /* static */ -wxSize wxButton::GetDefaultSize() +wxSize wxButtonBase::GetDefaultSize() { static wxSize s_sizeBtn; @@ -195,20 +188,20 @@ wxSize wxButton::GetDefaultSize() void wxButton::SetDefault() { wxWindow *parent = GetParent(); - wxButton *btnOldDefault = NULL; - wxPanel *panel = wxDynamicCast(parent, wxPanel); - if ( panel ) + wxButton *btnOldDefault; + if ( parent ) { - btnOldDefault = panel->GetDefaultItem(); - panel->SetDefaultItem(this); - } + wxWindow *winOldDefault = parent->SetDefaultItem(this); + btnOldDefault = wxDynamicCast(winOldDefault, wxButton); - if ( parent ) + ::SendMessage(GetWinHwnd(parent), DM_SETDEFID, m_windowId, 0L); + } + else // is a button without parent really normal? { - SendMessage(GetWinHwnd(parent), DM_SETDEFID, m_windowId, 0L); + btnOldDefault = NULL; } - if ( btnOldDefault ) + if ( btnOldDefault && btnOldDefault != this ) { // remove the BS_DEFPUSHBUTTON style from the other button long style = GetWindowLong(GetHwndOf(btnOldDefault), GWL_STYLE); @@ -527,3 +520,6 @@ bool wxButton::MSWOnDraw(WXDRAWITEMSTRUCT *wxdis) } #endif // __WIN32__ + +#endif // wxUSE_BUTTON +