-#if defined(__WXDEBUG__)
- // check if event classes implement Clone() correctly
- // NOTE: the check is done against _all_ event classes which are linked to
- // the executable currently running, which are not necessarily all
- // wxWidgets event classes.
- const wxClassInfo *ci = wxClassInfo::GetFirst();
- while (ci)
- {
- // 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!");
-
- wxEvent* cloned = test->Clone();
- if (!cloned || cloned->GetClassInfo() != ci)
- wxLogWarning("The event class '%s' does not correctly implements wxEvent::Clone()!",
- ci->GetClassName());
-
- delete test;
- }
-
- ci = ci->GetNext();
- }
-#endif
-