]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/statbar.cpp
Also allow key events for Shift-Tab when wxWANTS_CHARS style is used
[wxWidgets.git] / src / common / statbar.cpp
index 944b7979c198f6e3ff01c0d7754a51f26ae15be2..984a9e127828edad75530babd3fb9060908c7c2c 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     14.10.01
 // RCS-ID:      $Id$
 // Copyright:   (c) 2001 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
 // Created:     14.10.01
 // RCS-ID:      $Id$
 // Copyright:   (c) 2001 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// License:     wxWindows license
+// License:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
 ///////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -17,7 +17,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "statbar.h"
 #endif
 
     #pragma implementation "statbar.h"
 #endif
 
@@ -234,7 +234,8 @@ void wxStatusBarBase::FreeStacks()
     {
         if(m_statusTextStacks[i])
         {
     {
         if(m_statusTextStacks[i])
         {
-            m_statusTextStacks[i]->Clear();
+            wxListString& t = *m_statusTextStacks[i];
+            WX_CLEAR_LIST(wxListString, t);
             delete m_statusTextStacks[i];
         }
     }
             delete m_statusTextStacks[i];
         }
     }
@@ -249,7 +250,11 @@ void wxStatusBarBase::FreeStacks()
 void wxStatusBarBase::PushStatusText(const wxString& text, int number)
 {
     wxListString* st = GetOrCreateStatusStack(number);
 void wxStatusBarBase::PushStatusText(const wxString& text, int number)
 {
     wxListString* st = GetOrCreateStatusStack(number);
-    st->Insert(new wxString(GetStatusText(number)));
+    // This long-winded way around avoids an internal compiler error
+    // in VC++ 6 with RTTI enabled
+    wxString tmp1(GetStatusText(number));
+    wxString* tmp = new wxString(tmp1);
+    st->Insert(tmp);
     SetStatusText(text, number);
 }
 
     SetStatusText(text, number);
 }
 
@@ -257,10 +262,11 @@ void wxStatusBarBase::PopStatusText(int number)
 {
     wxListString *st = GetStatusStack(number);
     wxCHECK_RET( st, _T("Unbalanced PushStatusText/PopStatusText") );
 {
     wxListString *st = GetStatusStack(number);
     wxCHECK_RET( st, _T("Unbalanced PushStatusText/PopStatusText") );
-    wxListString::Node *top = st->GetFirst();
+    wxListString::compatibility_iterator top = st->GetFirst();
 
     SetStatusText(*top->GetData(), number);
 
     SetStatusText(*top->GetData(), number);
-    st->DeleteNode(top);
+    delete top->GetData();
+    st->Erase(top);
     if(st->GetCount() == 0)
     {
         delete st;
     if(st->GetCount() == 0)
     {
         delete st;
@@ -288,7 +294,6 @@ wxListString *wxStatusBarBase::GetOrCreateStatusStack(int i)
     if(!m_statusTextStacks[i])
     {
         m_statusTextStacks[i] = new wxListString();
     if(!m_statusTextStacks[i])
     {
         m_statusTextStacks[i] = new wxListString();
-        m_statusTextStacks[i]->DeleteContents(TRUE);
     }
 
     return m_statusTextStacks[i];
     }
 
     return m_statusTextStacks[i];