]> git.saurik.com Git - wxWidgets.git/commitdiff
removed second parameter of wxFrame::DoGiveHelp(), the help string is always shown...
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 2 Apr 2007 22:00:52 +0000 (22:00 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 2 Apr 2007 22:00:52 +0000 (22:00 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/frame.h
src/common/framecmn.cpp
src/common/tbarbase.cpp
src/os2/frame.cpp

index 8c599ae4352de461b09655c7448a54e5159e3455..a9134b0a262add3c3d8175af3c4e0b832cafdb04 100644 (file)
@@ -169,9 +169,9 @@ public:
 #endif // no wxTopLevelWindowNative
 
 #if wxUSE_MENUS || wxUSE_TOOLBAR
-    // show help text (typically in the statusbar); show is false
-    // if you are hiding the help, true otherwise
-    virtual void DoGiveHelp(const wxString& text, bool show);
+    // show help text for the currently selected menu or toolbar item
+    // (typically in the status bar)
+    virtual void DoGiveHelp(const wxString& text);
 #endif
 
 protected:
index a4e9d210b07f1bbcf05dd35db60c86a2418a5d9a..218239b815e9b54157100e8d99f8cc20de535a02 100644 (file)
@@ -365,9 +365,7 @@ bool wxFrameBase::ShowMenuHelp(wxStatusBar *WXUNUSED(statbar), int menuId)
 #if wxUSE_MENUS
     // if no help string found, we will clear the status bar text
     wxString helpString;
-    bool show = menuId != wxID_SEPARATOR && menuId != -2 /* wxID_TITLE */;
-
-    if ( show )
+    if ( menuId != wxID_SEPARATOR && menuId != -3 /* wxID_TITLE */ )
     {
         wxMenuBar *menuBar = GetMenuBar();
         if ( menuBar )
@@ -380,7 +378,7 @@ bool wxFrameBase::ShowMenuHelp(wxStatusBar *WXUNUSED(statbar), int menuId)
         }
     }
 
-    DoGiveHelp(helpString, show);
+    DoGiveHelp(helpString);
 
     return !helpString.empty();
 #else // !wxUSE_MENUS
@@ -404,7 +402,7 @@ void wxFrameBase::SetStatusBar(wxStatusBar *statBar)
 #endif // wxUSE_STATUSBAR
 
 #if wxUSE_MENUS || wxUSE_TOOLBAR
-void wxFrameBase::DoGiveHelp(const wxString& text, bool show)
+void wxFrameBase::DoGiveHelp(const wxString& help)
 {
 #if wxUSE_STATUSBAR
     if ( m_statusBarPane < 0 )
@@ -417,40 +415,26 @@ void wxFrameBase::DoGiveHelp(const wxString& text, bool show)
     if ( !statbar )
         return;
 
-    wxString help;
-    if ( show )
+    // 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() )
     {
-        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)
+        m_oldStatusText = statbar->GetStatusText(m_statusBarPane);
         if ( m_oldStatusText.empty() )
         {
-            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');
-            }
+            // 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;
-
-        // make sure we get the up to date text when showing it the next time
-        m_oldStatusText.clear();
-    }
 
     statbar->SetStatusText(help, m_statusBarPane);
 #else
index a8ada3fa9bc144ddf2150fcb57102e6934c69345..8a63d697a084c20c482960b308e5c3327d00c4a7 100644 (file)
@@ -631,10 +631,16 @@ void wxToolBarBase::OnMouseEnter(int id)
     if( frame )
     {
         wxString help;
-        wxToolBarToolBase* tool = id == wxID_ANY ? (wxToolBarToolBase*)NULL : FindById(id);
-        if(tool)
-            help = tool->GetLongHelp();
-        frame->DoGiveHelp( help, id != wxID_ANY );
+        if ( id != wxID_ANY )
+        {
+           const wxToolBarToolBase * const tool = FindById(id);
+           if ( tool )
+               help = tool->GetLongHelp();
+        }
+
+        // do it even if help string is empty to avoid showing the help for the
+        // previously selected tool when another one is selected
+        frame->DoGiveHelp(help);
     }
 
     (void)GetEventHandler()->ProcessEvent(event);
index f7ab688deb7bbbfba3c572497ab5e5725e88f452..ce171dc2e738420eca7b19c93b1cb0f0d66023c9 100644 (file)
@@ -1055,7 +1055,7 @@ bool wxFrame::HandleMenuSelect( WXWORD nItem,
         }
         else
         {
-            DoGiveHelp(wxEmptyString, false);
+            DoGiveHelp(wxEmptyString);
             return false;
         }
     }