X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3882e74621cd5833fddb432fe014bea66c16ee28..1a1f3e4b53fd5d1515b16905edf4250dfb2fc676:/src/msw/frame.cpp diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index c93bb168a1..8f0ce449bc 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -357,9 +357,32 @@ void wxFrame::PositionStatusBar() int sw, sh; m_frameStatusBar->GetSize(&sw, &sh); + int x = 0; +#if wxUSE_TOOLBAR + wxToolBar * const toolbar = GetToolBar(); + if ( toolbar && !toolbar->HasFlag(wxTB_TOP) ) + { + const wxSize sizeTB = toolbar->GetSize(); + + if ( toolbar->HasFlag(wxTB_LEFT | wxTB_RIGHT) ) + { + if ( toolbar->HasFlag(wxTB_LEFT) ) + x -= sizeTB.x; + + w += sizeTB.x; + } + else // wxTB_BOTTOM + { + // we need to position the status bar below the toolbar + h += sizeTB.y; + } + } + //else: no adjustments necessary for the toolbar on top +#endif // wxUSE_TOOLBAR + // Since we wish the status bar to be directly under the client area, // we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS. - m_frameStatusBar->SetSize(0, h, w, sh); + m_frameStatusBar->SetSize(x, h, w, sh); } #endif // wxUSE_STATUSBAR @@ -600,16 +623,13 @@ wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& nam void wxFrame::PositionToolBar() { - int x = 0, y = 0; + // TODO: we want to do something different in WinCE, because the toolbar + // should be associated with the commandbar, instead of being + // independent window. +#if !defined(WINCE_WITHOUT_COMMANDBAR) wxToolBar *toolbar = GetToolBar(); if ( toolbar && toolbar->IsShown() ) { -#if defined(WINCE_WITHOUT_COMMANDBAR) - // We want to do something different in WinCE, because - // the toolbar should be associated with the commandbar, - // and not an independent window. - // TODO -#else // don't call our (or even wxTopLevelWindow) version because we want // the real (full) client area size, not excluding the tool/status bar int width, height; @@ -627,6 +647,7 @@ void wxFrame::PositionToolBar() toolbar->GetPosition( &tx, &ty ); toolbar->GetSize( &tw, &th ); + int x = 0, y = 0; if ( toolbar->HasFlag(wxTB_BOTTOM) ) { x = 0; @@ -719,8 +740,8 @@ void wxFrame::PositionToolBar() if (tx != 0 || ty != 0 || widthChanging || heightChanging) toolbar->SetSize(x, y, desiredW, desiredH, wxSIZE_NO_ADJUSTMENTS); -#endif // __WXWINCE__ } +#endif // !WINCE_WITH_COMMANDBAR } #endif // wxUSE_TOOLBAR @@ -983,7 +1004,7 @@ bool wxFrame::HandleMenuSelect(WXWORD nItem, WXWORD flags, WXHMENU hMenu) // items opening popup menus (they don't have them anyhow) but do clear // the status line - otherwise, we would be left with the help message // for the previous item which doesn't apply any more - DoGiveHelp(wxEmptyString, false); + DoGiveHelp(wxEmptyString, true); return false; }