X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3304646d0657d889ad676485a4b635e2032b0038..34eeb223b428c2e9ec90d88348e7e62dfeb1cb65:/src/common/framecmn.cpp?ds=sidebyside diff --git a/src/common/framecmn.cpp b/src/common/framecmn.cpp index ab80346bc0..b0ad197a09 100644 --- a/src/common/framecmn.cpp +++ b/src/common/framecmn.cpp @@ -403,6 +403,7 @@ void wxFrameBase::SetStatusBar(wxStatusBar *statBar) #endif // wxUSE_STATUSBAR +#if wxUSE_MENUS || wxUSE_TOOLBAR void wxFrameBase::DoGiveHelp(const wxString& text, bool show) { #if wxUSE_STATUSBAR @@ -418,27 +419,35 @@ void wxFrameBase::DoGiveHelp(const wxString& text, bool show) wxString help; if ( show ) + { help = text; - // remember the old status bar text if this is the first time we're called - // since the menu has been opened as we're going to overwrite it in our - // DoGiveHelp() and we want to restore it when the menu is closed - // - // note that it would be logical to do this in OnMenuOpen() but under MSW - // we get an EVT_MENU_HIGHLIGHT before EVT_MENU_OPEN, strangely enough, and - // so this doesn't work and instead we use the ugly trick with using - // special m_oldStatusText value as "menu opened" (but it is arguably - // better than adding yet another member variable to wxFrame on all - // platforms) - if ( m_oldStatusText.empty() ) - { - m_oldStatusText = statbar->GetStatusText(m_statusBarPane); + // remember the old status bar text if this is the first time we're + // called since the menu has been opened as we're going to overwrite it + // in our DoGiveHelp() and we want to restore it when the menu is + // closed + // + // note that it would be logical to do this in OnMenuOpen() but under + // MSW we get an EVT_MENU_HIGHLIGHT before EVT_MENU_OPEN, strangely + // enough, and so this doesn't work and instead we use the ugly trick + // with using special m_oldStatusText value as "menu opened" (but it is + // arguably better than adding yet another member variable to wxFrame + // on all platforms) if ( m_oldStatusText.empty() ) { - // use special value to prevent us from doing this the next time - m_oldStatusText += _T('\0'); + m_oldStatusText = statbar->GetStatusText(m_statusBarPane); + if ( m_oldStatusText.empty() ) + { + // use special value to prevent us from doing this the next time + m_oldStatusText += _T('\0'); + } } } + else // hide the status bar text + { + // i.e. restore the old one + help = m_oldStatusText; + } statbar->SetStatusText(help, m_statusBarPane); #else @@ -446,6 +455,7 @@ void wxFrameBase::DoGiveHelp(const wxString& text, bool show) wxUnusedVar(show); #endif // wxUSE_STATUSBAR } +#endif // wxUSE_MENUS || wxUSE_TOOLBAR // ---------------------------------------------------------------------------- @@ -458,7 +468,7 @@ wxToolBar* wxFrameBase::CreateToolBar(long style, wxWindowID id, const wxString& name) { - // the main toolbar can't be recreated (unless it was explicitly deeleted + // the main toolbar can't be recreated (unless it was explicitly deleted // before) wxCHECK_MSG( !m_frameToolBar, (wxToolBar *)NULL, wxT("recreating toolbar in wxFrame") );