#include "wx/settings.h"
#include "wx/dcscreen.h"
#include "wx/scrolwin.h"
+ #include "wx/toplevel.h"
#endif
#include "wx/stockitem.h"
m_hWnd = (WXHWND)::WinCreateWindow( GetHwndOf(pParent) // Parent handle
,WC_BUTTON // A Button class window
- ,(PSZ)sLabel.c_str() // Button text
+ ,sLabel.c_str() // Button text
,lStyle // Button style
,0, 0, 0, 0 // Location and size
,GetHwndOf(pParent) // Owner handle
wxButton::~wxButton()
{
- wxPanel* pPanel = wxDynamicCast(GetParent(), wxPanel);
+ wxTopLevelWindow *tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow);
- if (pPanel)
+ if (tlw)
{
- if (pPanel->GetDefaultItem() == this)
+ if (tlw->GetDefaultItem() == this)
{
//
// Don't leave the panel with invalid default item
//
- pPanel->SetDefaultItem(NULL);
+ tlw->SetDefaultItem(NULL);
}
}
} // end of wxButton::~wxButton
return ProcessCommand(vEvent);
} // end of wxButton::SendClickEvent
-void wxButton::SetDefault()
+wxWindow *wxButton::SetDefault()
{
- wxWindow* pParent = GetParent();
-
- wxCHECK_RET( pParent, _T("button without parent?") );
-
//
// Set this one as the default button both for wxWidgets and Windows
//
- wxWindow* pWinOldDefault = pParent->SetDefaultItem(this);
+ wxWindow* pWinOldDefault = wxButtonBase::SetDefault();
SetDefaultStyle( wxDynamicCast(pWinOldDefault, wxButton), false);
SetDefaultStyle( this, true );
+
+ return pWinOldDefault;
} // end of wxButton::SetDefault
void wxButton::SetTmpDefault()
{
- wxWindow* pParent = GetParent();
+ wxTopLevelWindow *tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow);
- wxCHECK_RET( pParent, _T("button without parent?") );
+ wxCHECK_RET( tlw, _T("button without top level window?") );
- wxWindow* pWinOldDefault = pParent->GetDefaultItem();
+ wxWindow* pWinOldDefault = tlw->GetDefaultItem();
- pParent->SetTmpDefaultItem(this);
+ tlw->SetTmpDefaultItem(this);
SetDefaultStyle( wxDynamicCast(pWinOldDefault, wxButton), false);
SetDefaultStyle( this, true );
} // end of wxButton::SetTmpDefault
void wxButton::UnsetTmpDefault()
{
- wxWindow* pParent = GetParent();
+ wxTopLevelWindow *tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow);
- wxCHECK_RET( pParent, _T("button without parent?") );
+ wxCHECK_RET( tlw, _T("button without top level window?") );
- pParent->SetTmpDefaultItem(NULL);
+ tlw->SetTmpDefaultItem(NULL);
- wxWindow* pWinOldDefault = pParent->GetDefaultItem();
+ wxWindow* pWinOldDefault = tlw->GetDefaultItem();
SetDefaultStyle( this, false );
SetDefaultStyle( wxDynamicCast(pWinOldDefault, wxButton), true );