X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/aa642a456cde1a8e4b97a74bdd16bd575e7123b1..bb996f289574defb0ae4339ae8e46ff3cf6fa54c:/src/osx/carbon/frame.cpp diff --git a/src/osx/carbon/frame.cpp b/src/osx/carbon/frame.cpp index 29c5880a89..09cd082182 100644 --- a/src/osx/carbon/frame.cpp +++ b/src/osx/carbon/frame.cpp @@ -50,7 +50,6 @@ bool wxFrame::Create(wxWindow *parent, long style, const wxString& name) { - if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name) ) return false; @@ -216,16 +215,6 @@ void wxFrame::OnActivate(wxActivateEvent& event) } } -void wxFrame::HandleResized( double timestampsec ) -{ - // according to the other ports we handle this within the OS level - // resize event, not within a wxSizeEvent - - PositionBars(); - - wxNonOwnedWindow::HandleResized( timestampsec ); -} - #if wxUSE_MENUS void wxFrame::DetachMenuBar() { @@ -236,8 +225,10 @@ void wxFrame::AttachMenuBar( wxMenuBar *menuBar ) { #if wxOSX_USE_CARBON wxFrame* tlf = wxDynamicCast( wxNonOwnedWindow::GetFromWXWindow( (WXWindow) FrontNonFloatingWindow() ) , wxFrame ); +#elif wxOSX_USE_COCOA + wxFrame* tlf = wxDynamicCast( wxNonOwnedWindow::GetFromWXWindow( wxOSXGetMainWindow() ) , wxFrame ); #else - wxFrame* tlf = (wxFrame*) wxTheApp->GetTopWindow(); + wxFrame* tlf = wxDynamicCast( wxTheApp->GetTopWindow(), wxFrame ); #endif bool makeCurrent = false; @@ -274,11 +265,16 @@ void wxFrame::DoGetClientSize(int *x, int *y) const int w, h; toolbar->GetSize(&w, &h); - if ( toolbar->GetWindowStyleFlag() & wxTB_VERTICAL ) + if ( toolbar->IsVertical() ) { if ( x ) *x -= w; } + else if ( toolbar->HasFlag( wxTB_BOTTOM ) ) + { + if ( y ) + *y -= h; + } else { #if !wxOSX_USE_NATIVE_TOOLBAR @@ -359,7 +355,7 @@ void wxFrame::PositionToolBar() { int cw, ch; - GetSize( &cw , &ch ) ; + wxTopLevelWindow::DoGetClientSize( &cw , &ch ); int statusX = 0 ; int statusY = 0 ; @@ -367,7 +363,7 @@ void wxFrame::PositionToolBar() #if wxUSE_STATUSBAR if (GetStatusBar() && GetStatusBar()->IsShown()) { - GetStatusBar()->GetClientSize(&statusX, &statusY); + GetStatusBar()->GetSize(&statusX, &statusY); ch -= statusY; } #endif @@ -384,20 +380,25 @@ void wxFrame::PositionToolBar() tx = ty = 0 ; GetToolBar()->GetSize(&tw, &th); - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) + if (GetToolBar()->HasFlag(wxTB_LEFT)) + { + // Use the 'real' position. wxSIZE_NO_ADJUSTMENTS + // means, pretend we don't have toolbar/status bar, so we + // have the original client size. + GetToolBar()->SetSize(tx , ty , tw, ch , wxSIZE_NO_ADJUSTMENTS ); + } + else if (GetToolBar()->HasFlag(wxTB_RIGHT)) { // Use the 'real' position. wxSIZE_NO_ADJUSTMENTS // means, pretend we don't have toolbar/status bar, so we // have the original client size. + tx = cw - tw; GetToolBar()->SetSize(tx , ty , tw, ch , wxSIZE_NO_ADJUSTMENTS ); } - else if (GetToolBar()->GetWindowStyleFlag() & wxTB_BOTTOM) + else if (GetToolBar()->HasFlag(wxTB_BOTTOM)) { - //FIXME: this positions the tool bar almost correctly, but still it doesn't work right yet, - //as 1) the space for the 'old' top toolbar is still taken up, and 2) the toolbar - //doesn't extend it's width to the width of the frame. tx = 0; - ty = ch - (th + statusY); + ty = ch - th; GetToolBar()->SetSize(tx, ty, cw, th, wxSIZE_NO_ADJUSTMENTS ); } else