]> git.saurik.com Git - wxWidgets.git/commitdiff
Did splitting of wxEntry for wxMSW. Not nearly as complex as wxGTK
authorRobin Dunn <robin@alldunn.com>
Sat, 11 Mar 2000 09:05:03 +0000 (09:05 +0000)
committerRobin Dunn <robin@alldunn.com>
Sat, 11 Mar 2000 09:05:03 +0000 (09:05 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6612 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/app.cpp
utils/wxPython/src/helpers.cpp
utils/wxPython/src/msw/wx.cpp

index 7b445e7df2a5ea75578a4a01be8715d069c505e1..95ca2a631dc213c90ebc022bdc0e3a76de017f46 100644 (file)
@@ -577,6 +577,27 @@ void wxApp::CleanUp()
 #endif // wxUSE_LOG
 }
 
+//----------------------------------------------------------------------
+// Entry point helpers, used by wxPython
+//----------------------------------------------------------------------
+
+int  WXDLLEXPORT wxEntryStart( int WXUNUSED(argc), char** WXUNUSED(argv) )
+{
+    return wxApp::Initialize();
+}
+
+int  WXDLLEXPORT wxEntryInitGui()
+{
+    wxTheApp->OnInitGui();
+    return 0;
+}
+
+void WXDLLEXPORT wxEntryCleanup()
+{
+    wxApp::CleanUp();
+}
+
+
 #if !defined(_WINDLL) || (defined(_WINDLL) && defined(WXMAKINGDLL))
 
 // temporarily disable this warning which would be generated in release builds
@@ -585,7 +606,9 @@ void wxApp::CleanUp()
     #pragma warning(disable: 4715) // not all control paths return a value
 #endif // Visual C++
 
-//// Main wxWindows entry point
+//----------------------------------------------------------------------
+// Main wxWindows entry point
+//----------------------------------------------------------------------
 int wxEntry(WXHINSTANCE hInstance,
             WXHINSTANCE WXUNUSED(hPrevInstance),
             char *lpCmdLine,
@@ -620,7 +643,7 @@ int wxEntry(WXHINSTANCE hInstance,
 #endif
         wxhInstance = (HINSTANCE) hInstance;
 
-        if (!wxApp::Initialize())
+        if (!wxEntryStart(0,0))
             return 0;
 
         // create the application object or ensure that one already exists
@@ -643,7 +666,7 @@ int wxEntry(WXHINSTANCE hInstance,
 
         // GUI-specific initialisation. In fact on Windows we don't have any,
         // but this call is provided for compatibility across platforms.
-        wxTheApp->OnInitGui();
+        wxEntryInitGui();
 
         // We really don't want timestamps by default, because it means
         // we can't simply double-click on the error message and get to that
@@ -685,7 +708,7 @@ int wxEntry(WXHINSTANCE hInstance,
 
         wxTheApp->OnExit();
 
-        wxApp::CleanUp();
+        wxEntryCleanup();
 
         return retValue;
 
@@ -718,12 +741,14 @@ int wxEntry(WXHINSTANCE hInstance,
 
 #else /*  _WINDLL  */
 
-//// Entry point for DLLs
+//----------------------------------------------------------------------
+// Entry point for wxWindows + the App in a DLL
+//----------------------------------------------------------------------
 
 int wxEntry(WXHINSTANCE hInstance)
 {
     wxhInstance = (HINSTANCE) hInstance;
-    wxApp::Initialize();
+    wxEntryStart(0, 0);
 
     // The app may have declared a global application object, but we recommend
     // the IMPLEMENT_APP macro is used instead, which sets an initializer function
@@ -741,7 +766,7 @@ int wxEntry(WXHINSTANCE hInstance)
     wxTheApp->argc = 0;
     wxTheApp->argv = NULL;
 
-    wxTheApp->OnInitGui();
+    wxEntryInitGui();
 
     wxTheApp->OnInit();
 
index 2613693160f6c96336cadd8c4fafecef1dbce8ef..9a32b7fc273fae92d90cb02d1881ab2b0b4b23c6 100644 (file)
@@ -105,9 +105,9 @@ int  wxPyApp::MainLoop(void) {
 //---------------------------------------------------------------------
 //----------------------------------------------------------------------
 
-int wxEntryStart( int argc, char *argv[] );
-int wxEntryInitGui();
-void wxEntryCleanup();
+int  WXDLLEXPORT wxEntryStart( int argc, char** argv );
+int  WXDLLEXPORT wxEntryInitGui();
+void WXDLLEXPORT wxEntryCleanup();
 
 
 // This is where we pick up the first part of the wxEntry functionality...
@@ -125,55 +125,6 @@ void __wxPreStart()
     if (wxTopLevelWindows.Number() > 0)
         return;
 
-#if 0
-
-#ifdef __WXMSW__
-    wxApp::Initialize();
-#endif
-
-#ifdef __WXGTK__
-    PyObject* sysargv = PySys_GetObject("argv");
-    int argc = PyList_Size(sysargv);
-    char** argv = new char*[argc+1];
-    int x;
-    for(x=0; x<argc; x++)
-        argv[x] = PyString_AsString(PyList_GetItem(sysargv, x));
-    argv[argc] = NULL;
-
-#if wxUSE_THREADS
-    /* GTK 1.2 up to version 1.2.3 has broken threads */
-    if ((gtk_major_version == 1) &&
-        (gtk_minor_version == 2) &&
-        (gtk_micro_version < 4))
-    {
-        printf( "wxWindows warning: GUI threading disabled due to outdated GTK version\n" );
-    }
-    else
-    {
-        g_thread_init(NULL);
-    }
-#endif
-
-    gtk_set_locale();
-
-#if wxUSE_WCHAR_T
-    if (!wxOKlibc()) wxConvCurrent = &wxConvLocal;
-#else
-    if (!wxOKlibc()) wxConvCurrent = (wxMBConv*) NULL;
-#endif
-
-    gdk_threads_enter();
-    gtk_init( &argc, &argv );
-    wxSetDetectableAutoRepeat( TRUE );
-    delete [] argv;
-
-    if (!wxApp::Initialize())
-    {
-        gdk_threads_leave();
-    }
-#endif
-#endif // 0
-
 
     PyObject* sysargv = PySys_GetObject("argv");
     int argc = PyList_Size(sysargv);
index 778018e029c7eb10feb585a66e9ca8e00efd070e..63748f6506c825080a8e3da6f2fc6c4e763e573d 100644 (file)
@@ -615,7 +615,7 @@ PyObject *ptrfree(PyObject *_PTRVALUE) {
 
 
     void wxApp_CleanUp() {
-        wxApp::CleanUp();
+        __wxCleanup();
     }
 
 extern "C" SWIGEXPORT(void) initwindowsc();