]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/accel.cpp
Fix building wxSTC as a DLL using MinGW GCC 3.x.
[wxWidgets.git] / src / generic / accel.cpp
index bede8f488c4f5e5ef0c189cd26a7a97d334c11fd..50a7f9faaa81fbceb98b002c56fa08babc2637d8 100644 (file)
@@ -16,7 +16,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "accel.h"
 #endif
 
@@ -55,16 +55,19 @@ class wxAccelRefData : public wxObjectRefData
 public:
     wxAccelRefData()
     {
-        m_accels.DeleteContents(TRUE);
     }
 
     wxAccelRefData(const wxAccelRefData& data)
         : wxObjectRefData()
     {
-        m_accels.DeleteContents(TRUE);
         m_accels = data.m_accels;
     }
 
+    virtual ~wxAccelRefData()
+    {
+        WX_CLEAR_LIST(wxAccelList, m_accels);
+    }
+
     wxAccelList m_accels;
 };
 
@@ -133,14 +136,15 @@ void wxAcceleratorTable::Remove(const wxAcceleratorEntry& entry)
 {
     AllocExclusive();
 
-    wxAccelList::Node *node = M_ACCELDATA->m_accels.GetFirst();
+    wxAccelList::compatibility_iterator node = M_ACCELDATA->m_accels.GetFirst();
     while ( node )
     {
         const wxAcceleratorEntry *entryCur = node->GetData();
 
         if ( *entryCur == entry )
         {
-            M_ACCELDATA->m_accels.DeleteNode(node);
+            delete node->GetData();
+            M_ACCELDATA->m_accels.Erase(node);
 
             return;
         }
@@ -164,7 +168,7 @@ wxAcceleratorTable::GetEntry(const wxKeyEvent& event) const
         return NULL;
     }
 
-    wxAccelList::Node *node = M_ACCELDATA->m_accels.GetFirst();
+    wxAccelList::compatibility_iterator node = M_ACCELDATA->m_accels.GetFirst();
     while ( node )
     {
         const wxAcceleratorEntry *entry = node->GetData();