X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fdf565feca722eddb84168a95dbef329ba23d719..6cef0db28018fd2644ee4e38af715872e5242459:/src/mac/carbon/frame.cpp diff --git a/src/mac/carbon/frame.cpp b/src/mac/carbon/frame.cpp index d4462b59b0..b4da3e565f 100644 --- a/src/mac/carbon/frame.cpp +++ b/src/mac/carbon/frame.cpp @@ -18,17 +18,15 @@ #include "wx/dcclient.h" #include "wx/menu.h" #include "wx/dialog.h" + #include "wx/settings.h" + #include "wx/toolbar.h" + #include "wx/statusbr.h" + #include "wx/menuitem.h" #endif // WX_PRECOMP -#include "wx/statusbr.h" -#include "wx/toolbar.h" -#include "wx/menuitem.h" -#include "wx/settings.h" - #include "wx/mac/uma.h" extern wxWindowList wxModelessWindows; -//extern wxList wxPendingDelete; BEGIN_EVENT_TABLE(wxFrame, wxFrameBase) EVT_ACTIVATE(wxFrame::OnActivate) @@ -48,20 +46,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow) void wxFrame::Init() { - m_frameMenuBar = NULL; - m_frameStatusBar = NULL; m_winLastFocused = NULL; - -#if wxUSE_TOOLBAR - m_frameToolBar = NULL; -#endif - -#if wxUSE_TOOLTIPS - // NB: is this used anywhere? - m_hwndToolTip = NULL; -#endif - - m_iconized = false; } bool wxFrame::Create(wxWindow *parent, @@ -132,6 +117,7 @@ bool wxFrame::Enable(bool enable) return true; } +#if wxUSE_STATUSBAR wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id, const wxString& name) { @@ -156,6 +142,7 @@ void wxFrame::PositionStatusBar() m_frameStatusBar->SetSize(0, h, w, WX_MAC_STATUSBAR_HEIGHT); } } +#endif // wxUSE_STATUSBAR // Responds to colour changes, and passes event on to children. void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event) @@ -163,6 +150,7 @@ void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event) SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE)); Refresh(); +#if wxUSE_STATUSBAR if ( m_frameStatusBar ) { wxSysColourChangedEvent event2; @@ -170,6 +158,7 @@ void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event) event2.SetEventObject( m_frameStatusBar ); m_frameStatusBar->ProcessEvent(event2); } +#endif // wxUSE_STATUSBAR // Propagate the event to the non-top-level children wxWindow::OnSysColourChanged(event); @@ -359,14 +348,17 @@ void wxFrame::PositionToolBar() int cw, ch; GetSize( &cw , &ch ) ; + + int statusX = 0 ; + int statusY = 0 ; +#if wxUSE_STATUSBAR if (GetStatusBar() && GetStatusBar()->IsShown()) { - int statusX, statusY; - GetStatusBar()->GetClientSize(&statusX, &statusY); ch -= statusY; } +#endif if (GetToolBar()) { @@ -381,6 +373,15 @@ void wxFrame::PositionToolBar() // have the original client size. GetToolBar()->SetSize(tx , ty , tw, ch , wxSIZE_NO_ADJUSTMENTS ); } + else if (GetToolBar()->GetWindowStyleFlag() & 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); + GetToolBar()->SetSize(tx, ty, cw, th, wxSIZE_NO_ADJUSTMENTS ); + } else { #if !wxMAC_USE_NATIVE_TOOLBAR @@ -390,6 +391,7 @@ void wxFrame::PositionToolBar() } } } +#endif // wxUSE_TOOLBAR void wxFrame::PositionBars() { @@ -401,4 +403,4 @@ void wxFrame::PositionBars() #endif } -#endif +