//#include <gdk/gdk.h>
//#include <gdk/gdkx.h>
//#include <gtk/gtkwindow.h>
+
+extern GtkWidget *wxRootWindow;
+
#endif
}
int wxPyApp::MainLoop(void) {
- int retval = wxApp::MainLoop();
-//# AfterMainLoop();
- wxPythonApp->OnExit(); //#
- return retval;
-}
-
-
-//# void wxPyApp::AfterMainLoop(void) {
-// // more stuff from wxEntry...
+ int retval = 0;
-// if (wxPythonApp->GetTopWindow()) {
-// // Forcibly delete the window.
-// if (wxPythonApp->GetTopWindow()->IsKindOf(CLASSINFO(wxFrame)) ||
-// wxPythonApp->GetTopWindow()->IsKindOf(CLASSINFO(wxDialog))) {
-
-// wxPythonApp->GetTopWindow()->Close(TRUE);
-// wxPythonApp->DeletePendingObjects();
-// }
-// else {
-// delete wxPythonApp->GetTopWindow();
-// wxPythonApp->SetTopWindow(NULL);
-// }
-// }
-// #ifdef __WXGTK__
-// wxPythonApp->DeletePendingObjects();
-// #endif
+ DeletePendingObjects();
+#ifdef __WXGTK__
+ m_initialized = wxTopLevelWindows.GetCount() != 0;
+#endif
-// wxPythonApp->OnExit();
-// wxApp::CleanUp();
-// // delete wxPythonApp;
-// }
+ if (Initialized()) {
+ retval = wxApp::MainLoop();
+ wxPythonApp->OnExit();
+ }
+ return retval;
+}
//---------------------------------------------------------------------
-// a few native methods to add to the module
//----------------------------------------------------------------------
+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...
// The rest is in __wxStart and AfterMainLoop. This function is called when
if (wxTopLevelWindows.Number() > 0)
return;
-#ifdef __WXMSW__
- wxApp::Initialize();
-#endif
-#ifdef __WXGTK__
PyObject* sysargv = PySys_GetObject("argv");
int argc = PyList_Size(sysargv);
char** argv = new char*[argc+1];
argv[x] = PyString_AsString(PyList_GetItem(sysargv, x));
argv[argc] = NULL;
- gtk_set_locale();
-#if wxUSE_WCHAR_T
- if (!wxOKlibc()) wxConvCurrent = &wxConvLocal;
-#else
- if (!wxOKlibc()) wxConvCurrent = (wxMBConv*) NULL;
-#endif
- gtk_init( &argc, &argv );
- wxSetDetectableAutoRepeat( TRUE );
- delete [] argv;
-
- wxApp::Initialize(); // may return FALSE. Should we check?
-#endif
-
+ wxEntryStart(argc, argv);
}
+
#ifdef WXP_WITH_THREAD
PyThreadState* wxPyEventThreadState = NULL;
#endif
// This is the next part of the wxEntry functionality...
wxPythonApp->argc = 0;
wxPythonApp->argv = NULL;
- wxPythonApp->OnInitGui();
+ wxEntryInitGui();
// Call the Python App's OnInit function
arglist = PyTuple_New(0);
}
#ifdef __WXGTK__
- wxTheApp->m_initialized = (wxTopLevelWindows.Number() > 0);
+ wxTheApp->m_initialized = (wxTopLevelWindows.GetCount() > 0);
#endif
Py_INCREF(Py_None);
return Py_None;
}
-
+void __wxCleanup() {
+ wxEntryCleanup();
+}