X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/be6068f6c32d028fa47d710e35e012a3f23eeec1..77631b1d818c890391b7111a1e499f1317a9ea07:/src/mac/carbon/frame.cpp diff --git a/src/mac/carbon/frame.cpp b/src/mac/carbon/frame.cpp index 8a07a0bbc6..c888e6c41d 100644 --- a/src/mac/carbon/frame.cpp +++ b/src/mac/carbon/frame.cpp @@ -24,7 +24,7 @@ #include "wx/mac/uma.h" extern wxWindowList wxModelessWindows; -extern wxList wxPendingDelete; +//extern wxList wxPendingDelete; BEGIN_EVENT_TABLE(wxFrame, wxFrameBase) EVT_ACTIVATE(wxFrame::OnActivate) @@ -134,7 +134,7 @@ wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id, wxStatusBar *statusBar; statusBar = new wxStatusBar(this, id, style, name); - statusBar->SetSize(100 , WX_MAC_STATUSBAR_HEIGHT); + statusBar->SetSize(100, WX_MAC_STATUSBAR_HEIGHT); statusBar->SetFieldsCount(number); return statusBar; @@ -204,21 +204,25 @@ void wxFrame::OnActivate(wxActivateEvent& event) ? m_winLastFocused->GetParent() : NULL; - if ( !parent ) + if (parent == NULL) parent = this; wxSetFocusToChild(parent, &m_winLastFocused); if (m_frameMenuBar != NULL) { - m_frameMenuBar->MacInstallMenuBar() ; + m_frameMenuBar->MacInstallMenuBar(); } - else if (wxTheApp->GetTopWindow() && wxTheApp->GetTopWindow()->IsKindOf(CLASSINFO(wxFrame))) + else { - // Trying toplevel frame membar - if (((wxFrame*)wxTheApp->GetTopWindow())->GetMenuBar()) - ((wxFrame*)wxTheApp->GetTopWindow())->GetMenuBar()->MacInstallMenuBar(); - } + wxFrame *tlf = wxDynamicCast( wxTheApp->GetTopWindow(), wxFrame ); + if (tlf != NULL) + { + // Trying top-level frame membar + if (tlf->GetMenuBar()) + tlf->GetMenuBar()->MacInstallMenuBar(); + } + } } } @@ -232,14 +236,14 @@ void wxFrame::DetachMenuBar() void wxFrame::AttachMenuBar( wxMenuBar *menuBar ) { - wxTopLevelWindowMac* tlw = wxFindWinFromMacWindow( FrontNonFloatingWindow() ); + wxFrame* tlf = wxDynamicCast( wxFindWinFromMacWindow( FrontNonFloatingWindow() ) , wxFrame ); bool makeCurrent = false; // if this is already the current menubar or we are the frontmost window - if ( (tlw == this) || (m_frameMenuBar == wxMenuBar::MacGetInstalledMenuBar()) ) + if ( (tlf == this) || (m_frameMenuBar == wxMenuBar::MacGetInstalledMenuBar()) ) makeCurrent = true; // or there is an app-level menubar like MDI - else if ( (GetMenuBar() == NULL) && (((wxFrame*)wxTheApp->GetTopWindow()) == this) ) + else if ( tlf && (tlf->GetMenuBar() == NULL) && (((wxFrame*)wxTheApp->GetTopWindow()) == this) ) makeCurrent = true; wxFrameBase::AttachMenuBar( menuBar ); @@ -382,5 +386,16 @@ void wxFrame::PositionToolBar() } } } + +void wxFrame::PositionBars() +{ +#if wxUSE_STATUSBAR + PositionStatusBar(); +#endif +#if wxUSE_TOOLBAR + PositionToolBar(); +#endif +} + #endif