]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/framecmn.cpp
fix VC 7.x release build problems
[wxWidgets.git] / src / common / framecmn.cpp
index 8bc2ffb5db650f512cc7343be534c2789b90109d..a057189897b127f1e3419dd13371bee746760162 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Julian Smart, Vadim Zeitlin
 // Created:     01/02/97
 // Id:          $Id$
-// Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
+// Copyright:   (c) 1998 Robert Roebling and Julian Smart
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
     #include "wx/statusbr.h"
 #endif
 
-// FIXME - temporary hack in absence of wxTLW in all ports!
-#ifndef wxTopLevelWindowNative
-    #define wxTopLevelWindow wxTopLevelWindowBase
-#endif
-
 // ----------------------------------------------------------------------------
 // event table
 // ----------------------------------------------------------------------------
@@ -76,6 +71,8 @@ wxFrameBase::wxFrameBase()
 #if wxUSE_STATUSBAR
     m_frameStatusBar = NULL;
 #endif // wxUSE_STATUSBAR
+
+    m_statusBarPane = 0;
 }
 
 wxFrameBase::~wxFrameBase()
@@ -152,7 +149,7 @@ wxPoint wxFrameBase::GetClientAreaOrigin() const
 {
     wxPoint pt = wxTopLevelWindow::GetClientAreaOrigin();
 
-#if wxUSE_TOOLBAR
+#if wxUSE_TOOLBAR && !defined(__WXUNIVERSAL__)
     wxToolBar *toolbar = GetToolBar();
     if ( toolbar && toolbar->IsShown() )
     {
@@ -196,12 +193,14 @@ bool wxFrameBase::ProcessCommand(int id)
         if (item->IsCheckable())
         {
             item->Toggle();
+
             // use the new value
             commandEvent.SetInt(item->IsChecked());
         }
     }
 
-    return GetEventHandler()->ProcessEvent(commandEvent);
+    GetEventHandler()->ProcessEvent(commandEvent);
+    return TRUE;
 #else // !wxUSE_MENUS
     return FALSE;
 #endif // wxUSE_MENUS/!wxUSE_MENUS
@@ -276,16 +275,28 @@ void wxFrameBase::SetStatusWidths(int n, const int widths_field[] )
     PositionStatusBar();
 }
 
-bool wxFrameBase::ShowMenuHelp(wxStatusBar *statbar, int menuId)
+void wxFrameBase::PushStatusText(const wxString& text, int number)
 {
-#if wxUSE_MENUS
-    if ( !statbar )
-        return FALSE;
+    wxCHECK_RET( m_frameStatusBar != NULL, wxT("no statusbar to set text for") );
+
+    m_frameStatusBar->PushStatusText(text, number);
+}
+
+void wxFrameBase::PopStatusText(int number)
+{
+    wxCHECK_RET( m_frameStatusBar != NULL, wxT("no statusbar to set text for") );
+
+    m_frameStatusBar->PopStatusText(number);
+}
 
+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 ( menuId != wxID_SEPARATOR && menuId != -2 /* wxID_TITLE */ )
+    if ( show )
     {
         wxMenuBar *menuBar = GetMenuBar();
         if ( menuBar )
@@ -298,9 +309,7 @@ bool wxFrameBase::ShowMenuHelp(wxStatusBar *statbar, int menuId)
         }
     }
 
-    // set status text even if the string is empty - this will at least
-    // remove the string from the item which was previously selected
-    statbar->SetStatusText(helpString);
+    DoGiveHelp(helpString, show);
 
     return !helpString.IsEmpty();
 #else // !wxUSE_MENUS
@@ -310,6 +319,19 @@ bool wxFrameBase::ShowMenuHelp(wxStatusBar *statbar, int menuId)
 
 #endif // wxUSE_STATUSBAR
 
+void wxFrameBase::DoGiveHelp(const wxString& text, bool show)
+{
+#if wxUSE_STATUSBAR
+    if ( m_statusBarPane < 0 ) return;
+    wxStatusBar* statbar = GetStatusBar();
+    if ( !statbar ) return;
+
+    wxString help = show ? text : wxString();
+    statbar->SetStatusText( help, m_statusBarPane );
+#endif // wxUSE_STATUSBAR
+}
+
+
 // ----------------------------------------------------------------------------
 // toolbar stuff
 // ----------------------------------------------------------------------------
@@ -390,7 +412,7 @@ void wxFrameBase::DoMenuUpdates(wxMenu* menu, wxWindow* focusWin)
             }
 
             if (item->GetSubMenu())
-                DoMenuUpdates(item->GetSubMenu(), (wxWindow*) NULL);
+                DoMenuUpdates(item->GetSubMenu(), focusWin);
         }
         node = node->GetNext();
     }