]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/init.cpp
1. wxDateTimeHolidayAuthority class for calculating the holidays added
[wxWidgets.git] / src / common / init.cpp
index 1af0b671f5f1e07fa48752a1363f4c184c88733e..0fa42d7d8f7fda405c2e1cf19e7e720218d753d7 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
-    #pragma implementation "appbase.h"
+#include "wx/wxprec.h"
+
+#ifdef    __BORLANDC__
+  #pragma hdrstop
+#endif  //__BORLANDC__
+
+#ifndef WX_PRECOMP
+    #include "wx/app.h"
+    #include "wx/debug.h"
 #endif
 
-#include "wx/app.h"
-#include "wx/debug.h"
+#include "wx/module.h"
 
 // ----------------------------------------------------------------------------
 // global vars
@@ -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; }
 };
 
 // ----------------------------------------------------------------------------
@@ -53,26 +59,71 @@ static size_t gs_nInitCount = 0;
 // implementation
 // ============================================================================
 
+// ----------------------------------------------------------------------------
+// stubs for some GUI functions
+// ----------------------------------------------------------------------------
+
+void WXDLLEXPORT wxExit()
+{
+    abort();
+}
+
+// Yield to other apps/messages
+bool WXDLLEXPORT wxYield()
+{
+    // do nothing
+    return TRUE;
+}
+
+// Yield to other apps/messages
+void WXDLLEXPORT wxWakeUpIdle()
+{
+    // do nothing
+}
+
+// ----------------------------------------------------------------------------
+// wxBase-specific functions
+// ----------------------------------------------------------------------------
+
 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;