]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/init.cpp
refactor WM_COMMAND messages handling in MDI frames to avoid duplicating code unneces...
[wxWidgets.git] / src / common / init.cpp
index 5154c1afd7947c7e03beb8fb2ac833d6c2c4296f..d9d3cf0dc70d01f147b5cead787a978fcc8d22d1 100644 (file)
@@ -255,28 +255,35 @@ static bool DoCommonPostInit()
     //       the executable currently running, which are not necessarily all
     //       wxWidgets event classes.
     const wxClassInfo *ci = wxClassInfo::GetFirst();
     //       the executable currently running, which are not necessarily all
     //       wxWidgets event classes.
     const wxClassInfo *ci = wxClassInfo::GetFirst();
-    while (ci)
+    for (; ci; ci = ci->GetNext())
     {
         // is this class derived from wxEvent?
     {
         // is this class derived from wxEvent?
-        if (ci->IsKindOf(CLASSINFO(wxEvent)) && wxString(ci->GetClassName()) != "wxEvent")
-        {
-            if (!ci->IsDynamic())
-                wxLogWarning("The event class '%s' should have a DECLARE_DYNAMIC_CLASS macro!",
-                             ci->GetClassName());
-
-            // yes; test if it implements Clone() correctly
-            wxEvent* test = dynamic_cast<wxEvent*>(ci->CreateObject());
-            wxASSERT_MSG(test, "The event class should have a DECLARE_DYNAMIC_CLASS macro!");
+        if (!ci->IsKindOf(CLASSINFO(wxEvent)) || wxString(ci->GetClassName()) == "wxEvent")
+            continue;
 
 
-            wxEvent* cloned = test->Clone();
-            if (!cloned || cloned->GetClassInfo() != ci)
-                wxLogWarning("The event class '%s' does not correctly implements wxEvent::Clone()!",
-                             ci->GetClassName());
+        if (!ci->IsDynamic())
+        {
+            wxLogWarning("The event class '%s' should have a DECLARE_DYNAMIC_CLASS macro!",
+                         ci->GetClassName());
+            continue;
+        }
 
 
-            delete test;
+        // yes; test if it implements Clone() correctly
+        wxEvent* test = wxDynamicCast(ci->CreateObject(),wxEvent);
+        if (test == NULL)
+        {
+            wxLogWarning("The event class '%s' should have a DECLARE_DYNAMIC_CLASS macro!",
+                         ci->GetClassName());
+            continue;
         }
 
         }
 
-        ci = ci->GetNext();
+        wxEvent* cloned = test->Clone();
+        if (!cloned || cloned->GetClassInfo() != ci)
+            wxLogWarning("The event class '%s' does not correctly implement Clone()!",
+                         ci->GetClassName());
+
+        delete cloned;
+        delete test;
     }
 #endif
 
     }
 #endif