]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/module.cpp
Create a new wxStringBase class, providing a STL-like API, using
[wxWidgets.git] / src / common / module.cpp
index 5a65c70b940e411664d506e19ed5f185de2f2eaf..e8ddb80a0af439b6b9d44af11e0e4fe9f6843eb5 100644 (file)
@@ -35,18 +35,24 @@ void wxModule::RegisterModule(wxModule* module)
     m_modules.Append(module);
 }
 
+void wxModule::UnregisterModule(wxModule* module)
+{
+    m_modules.DeleteObject(module);
+    delete module;
+}
+
 // Collect up all module-derived classes, create an instance of each,
 // and register them.
 void wxModule::RegisterModules()
 {
-    wxNode *node;
+    wxHashTable::compatibility_iterator node;
     wxClassInfo* classInfo;
 
     wxClassInfo::sm_classTable->BeginFind();
     node = wxClassInfo::sm_classTable->Next();
     while (node)
     {
-        classInfo = (wxClassInfo *)node->Data();
+        classInfo = (wxClassInfo *)node->GetData();
         if ( classInfo->IsKindOf(CLASSINFO(wxModule)) &&
             (classInfo != (& (wxModule::sm_classwxModule))) )
         {
@@ -60,13 +66,13 @@ void wxModule::RegisterModules()
 bool wxModule::InitializeModules()
 {
     // Initialize user-defined modules
-    wxModuleList::Node *node;
+    wxModuleList::compatibility_iterator node;
     for ( node = m_modules.GetFirst(); node; node = node->GetNext() )
     {
         if ( !node->GetData()->Init() )
         {
             // clean up already initialized modules - process in reverse order
-            wxModuleList::Node *n;
+            wxModuleList::compatibility_iterator n;
             for ( n = node->GetPrevious(); n; n = n->GetPrevious() )
             {
                 n->GetData()->OnExit();
@@ -82,13 +88,12 @@ bool wxModule::InitializeModules()
 void wxModule::CleanUpModules()
 {
     // Cleanup user-defined modules
-    wxModuleList::Node *node;
+    wxModuleList::compatibility_iterator node;
     for ( node = m_modules.GetFirst(); node; node = node->GetNext() )
     {
         node->GetData()->Exit();
     }
 
-    m_modules.DeleteContents(TRUE);
-    m_modules.Clear();
+    WX_CLEAR_LIST(wxModuleList, m_modules);
 }