#include "wx/init.h"
#include "wx/thread.h"
-#include "wx/ptr_scpd.h"
+#include "wx/scopedptr.h"
#include "wx/except.h"
#if defined(__WXMSW__) && defined(__WXDEBUG__)
wxDummyConsoleApp() { }
virtual int OnRun() { wxFAIL_MSG( _T("unreachable code") ); return 0; }
+ virtual bool DoYield(bool, long) { return true; }
- DECLARE_NO_COPY_CLASS(wxDummyConsoleApp)
+ wxDECLARE_NO_COPY_CLASS(wxDummyConsoleApp);
};
// we need a special kind of auto pointer to wxApp which not only deletes the
wxApp::SetInstance(ptr);
}
- DECLARE_NO_COPY_CLASS(wxAppPtr)
+ wxDECLARE_NO_COPY_CLASS(wxAppPtr);
};
// class to ensure that wxAppBase::CleanUp() is called if our Initialize()
wchar_t **argv;
#endif // wxUSE_UNICODE
- DECLARE_NO_COPY_CLASS(InitData)
+ wxDECLARE_NO_COPY_CLASS(InitData);
} gs_initData;
// ============================================================================
// 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?
- 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
// initialize wxRTTI
if ( !DoCommonPreInit() )
- {
return false;
- }
// first of all, we need an application object
// --------------------------------------------
if ( !app->Initialize(argc, argv) )
- {
return false;
- }
// remember, possibly modified (e.g. due to removal of toolkit-specific
// parameters), command line arguments in member variables
app->argc = argc;
app->argv = argv;
-
wxCallAppCleanup callAppCleanup(app.get());
- // for compatibility call the old initialization function too
- if ( !app->OnInitGui() )
- return false;
-
// common initialization after wxTheApp creation
// ---------------------------------------------
wxTRY
{
-
// app initialization
if ( !wxTheApp->CallOnInit() )
{