X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/71e030352d74e4e6aed28cfcb0ea6edf3d17af6e..0fccf28fe6cfd00c63eac76d5aa27b8ce1330467:/src/common/framecmn.cpp?ds=sidebyside diff --git a/src/common/framecmn.cpp b/src/common/framecmn.cpp index 55ce182110..8bc2ffb5db 100644 --- a/src/common/framecmn.cpp +++ b/src/common/framecmn.cpp @@ -78,6 +78,11 @@ wxFrameBase::wxFrameBase() #endif // wxUSE_STATUSBAR } +wxFrameBase::~wxFrameBase() +{ + // this destructor is required for Darwin +} + wxFrame *wxFrameBase::New(wxWindow *parent, wxWindowID id, const wxString& title, @@ -148,12 +153,13 @@ wxPoint wxFrameBase::GetClientAreaOrigin() const wxPoint pt = wxTopLevelWindow::GetClientAreaOrigin(); #if wxUSE_TOOLBAR - if ( GetToolBar() && GetToolBar()->IsShown() ) + wxToolBar *toolbar = GetToolBar(); + if ( toolbar && toolbar->IsShown() ) { int w, h; - GetToolBar()->GetSize(& w, & h); + toolbar->GetSize(&w, &h); - if ( GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL ) + if ( toolbar->GetWindowStyleFlag() & wxTB_VERTICAL ) { pt.x += w; } @@ -182,12 +188,17 @@ bool wxFrameBase::ProcessCommand(int id) commandEvent.SetEventObject(this); wxMenuItem *item = bar->FindItem(id); - if ( item && item->IsCheckable() ) + if (item) { - item->Toggle(); + if (!item->IsEnabled()) + return TRUE; - // use the new value - commandEvent.SetInt(item->IsChecked()); + if (item->IsCheckable()) + { + item->Toggle(); + // use the new value + commandEvent.SetInt(item->IsChecked()); + } } return GetEventHandler()->ProcessEvent(commandEvent); @@ -398,8 +409,8 @@ void wxFrameBase::AttachMenuBar(wxMenuBar *menubar) { if ( menubar ) { - m_frameMenuBar = menubar; menubar->Attach((wxFrame *)this); + m_frameMenuBar = menubar; } }