// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
-
-#ifdef __WXGTK__
-#include <gtk/gtk.h>
-#endif
+#include <stdio.h> // get the correct definition of NULL
#undef DEBUG
#include <Python.h>
#include "helpers.h"
+
#ifdef __WXMSW__
#include <wx/msw/private.h>
#undef FindWindow
#undef GetClassInfo
#undef GetClassName
#endif
-#include <wx/module.h>
+
+#ifdef __WXGTK__
+#include <gtk/gtk.h>
+#include <gdk/gdkprivate.h>
+#include <wx/gtk/win_gtk.h>
+//#include <gdk/gdk.h>
+//#include <gdk/gdkx.h>
+//#include <gtk/gtkwindow.h>
+#endif
//---------------------------------------------------------------------------
// This one isn't acutally called... See __wxStart()
bool wxPyApp::OnInit(void) {
- return false;
+ return FALSE;
}
int wxPyApp::MainLoop(void) {
}
bResult = PyInt_AS_LONG(result);
if (! bResult) {
- PyErr_SetString(PyExc_SystemExit, "OnInit returned false, exiting...");
+ PyErr_SetString(PyExc_SystemExit, "OnInit returned FALSE, exiting...");
return NULL;
}
wxPyCallbackHelper::wxPyCallbackHelper() {
m_self = NULL;
m_lastFound = NULL;
+ m_incRef = FALSE;
}
wxPyCallbackHelper::~wxPyCallbackHelper() {
bool doSave = wxPyRestoreThread();
- Py_XDECREF(m_self);
+ if (m_incRef)
+ Py_XDECREF(m_self);
wxPySaveThread(doSave);
}
void wxPyCallbackHelper::setSelf(PyObject* self, int incref) {
m_self = self;
+ m_incRef = incref;
if (incref)
Py_INCREF(m_self);
}
wxPyEvtSelfRef::wxPyEvtSelfRef() {
//m_self = Py_None; // **** We don't do normal ref counting to prevent
//Py_INCREF(m_self); // circular loops...
- m_cloned = false;
+ m_cloned = FALSE;
}
wxPyEvtSelfRef::~wxPyEvtSelfRef() {
return pyList;
}
+//----------------------------------------------------------------------
+
+long wxPyGetWinHandle(wxWindow* win) {
+#ifdef __WXMSW__
+ return (long)win->GetHandle();
+#endif
+
+ // Find and return the actual X-Window.
+#ifdef __WXGTK__
+ if (win->m_wxwindow) {
+ GdkWindowPrivate* bwin = (GdkWindowPrivate*)GTK_PIZZA(win->m_wxwindow)->bin_window;
+ if (bwin) {
+ return (long)bwin->xwindow;
+ }
+ }
+#endif
+ return 0;
+}
+
//----------------------------------------------------------------------
// Some helper functions for typemaps in my_typemaps.i, so they won't be
// included in every file...