// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
-#include <stdio.h> // get the correct definition of NULL
#undef DEBUG
#include <Python.h>
#include <wx/gtk/win_gtk.h>
#endif
-
//----------------------------------------------------------------------
#if PYTHON_API_VERSION <= 1007 && wxUSE_UNICODE
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
wxPyApp::wxPyApp() {
-// printf("**** ctor\n");
+ SetUseBestVisual(TRUE);
}
wxPyApp::~wxPyApp() {
-// printf("**** dtor\n");
}
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;
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;
PyObject* wxPyConstructObject(void* ptr,
const wxString& className,
int setThisOwn) {
- PyObject* obj;
-
if (!ptr) {
Py_INCREF(Py_None);
return Py_None;
void wxPyEndBlockThreads() {
#ifdef WXP_WITH_THREAD
- PyThreadState* tstate = PyEval_SaveThread();
// Is there any need to save it again?
+ // PyThreadState* tstate =
+ PyEval_SaveThread();
#endif
}