]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/init.cpp
tmake template for DLL project for VC++ 6.0
[wxWidgets.git] / src / common / init.cpp
index 1af0b671f5f1e07fa48752a1363f4c184c88733e..e1fef28c238169c9d20d09d5911ee1d7329d8f8d 100644 (file)
@@ -33,6 +33,12 @@ wxApp * WXDLLEXPORT wxTheApp = NULL;
 wxAppInitializerFunction
     wxAppBase::m_appInitFn = (wxAppInitializerFunction)NULL;
 
+#if wxUSE_THREADS
+    // List of events pending processing
+    wxList *wxPendingEvents = NULL;
+    wxCriticalSection *wxPendingEventsLocker = NULL;
+#endif // wxUSE_THREADS
+
 // ----------------------------------------------------------------------------
 // private classes
 // ----------------------------------------------------------------------------
@@ -40,7 +46,7 @@ wxAppInitializerFunction
 class /* no WXDLLEXPORT */ wxConsoleApp : public wxApp
 {
 public:
-    virtual int OnRun() { wxFAIL_MSG(T("unreachable")); return 0; }
+    virtual int OnRun() { wxFAIL_MSG(wxT("unreachable")); return 0; }
 };
 
 // ----------------------------------------------------------------------------
@@ -55,24 +61,43 @@ static size_t gs_nInitCount = 0;
 
 bool WXDLLEXPORT wxInitialize()
 {
-    if ( gs_nInitCount++ )
+    if ( gs_nInitCount )
     {
         // already initialized
         return TRUE;
     }
 
     wxASSERT_MSG( !wxTheApp,
-                  T("either call wxInitialize or create app, not both!") );
+                  wxT("either call wxInitialize or create app, not both!") );
+
+    wxClassInfo::InitializeClasses();
+
+    wxModule::RegisterModules();
+    if ( !wxModule::InitializeModules() )
+    {
+        return FALSE;
+    }
 
     wxTheApp = new wxConsoleApp;
 
-    return wxTheApp != NULL;
+    if ( !wxTheApp )
+    {
+        return FALSE;
+    }
+
+    gs_nInitCount++;
+
+    return TRUE;
 }
 
 void WXDLLEXPORT wxUninitialize()
 {
     if ( !--gs_nInitCount )
     {
+        wxModule::CleanUpModules();
+
+        wxClassInfo::CleanUpClasses();
+
         // delete the application object
         delete wxTheApp;
         wxTheApp = (wxApp *)NULL;