X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e3dbf5934e997729c6f4f5154b1b7f29d5d22149..7ba3ed2cbdf7bcd2668b0a6740b71fbaecefcddc:/wxPython/src/helpers.cpp diff --git a/wxPython/src/helpers.cpp b/wxPython/src/helpers.cpp index a1be4c1611..bc9dab8071 100644 --- a/wxPython/src/helpers.cpp +++ b/wxPython/src/helpers.cpp @@ -10,7 +10,6 @@ // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// -#include // get the correct definition of NULL #undef DEBUG #include @@ -29,7 +28,6 @@ #include #endif - //---------------------------------------------------------------------- #if PYTHON_API_VERSION <= 1007 && wxUSE_UNICODE @@ -80,8 +78,11 @@ BOOL WINAPI DllMain( LPVOID lpvReserved // reserved ) { - wxSetInstance(hinstDLL); - return 1; + // If wxPython is embedded in another wxWindows app then + // the inatance has already been set. + if (! wxGetInstance()) + wxSetInstance(hinstDLL); + return TRUE; } #endif @@ -91,11 +92,10 @@ BOOL WINAPI DllMain( wxPyApp::wxPyApp() { -// printf("**** ctor\n"); + SetUseBestVisual(TRUE); } wxPyApp::~wxPyApp() { -// printf("**** dtor\n"); } @@ -179,12 +179,14 @@ void __wxPreStart() wxPyTMutex = new wxMutex; #endif - // Bail out if there is already windows created. This means that the + wxApp::CheckBuildOptions(wxBuildOptions()); + + // Bail out if there is already a wxApp created. This means that the // toolkit has already been initialized, as in embedding wxPython in - // a C++ wxWindows app. - if (wxTopLevelWindows.Number() > 0) + // a C++ wxWindows app, so we don't need to call wxEntryStart. + if (wxTheApp != NULL) { return; - + } wxPyDoCleanup = TRUE; int argc = 0; @@ -223,13 +225,6 @@ PyObject* __wxStart(PyObject* /* self */, PyObject* args) if (!PyArg_ParseTuple(args, "O", &onInitFunc)) return NULL; -#if 0 // Try it out without this check, see how it does... - if (wxTopLevelWindows.Number() > 0) { - PyErr_SetString(PyExc_TypeError, "Only 1 wxApp per process!"); - return NULL; - } -#endif - // This is the next part of the wxEntry functionality... int argc = 0; wxChar** argv = NULL; @@ -527,8 +522,6 @@ PyObject* wxPyConstructObject(void* ptr, PyObject* wxPyConstructObject(void* ptr, const wxString& className, int setThisOwn) { - PyObject* obj; - if (!ptr) { Py_INCREF(Py_None); return Py_None; @@ -640,8 +633,9 @@ void wxPyBeginBlockThreads() { void wxPyEndBlockThreads() { #ifdef WXP_WITH_THREAD - PyThreadState* tstate = PyEval_SaveThread(); // Is there any need to save it again? + // PyThreadState* tstate = + PyEval_SaveThread(); #endif }