-#define DEC_PYCALLBACK_BOOL_PREWINDC(CBNAME) \
- bool CBNAME(wxPreviewCanvas* a, wxDC& b); \
- bool base_##CBNAME(wxPreviewCanvas* a, wxDC& b)
-
-
-#define IMP_PYCALLBACK_BOOL_PREWINDC(CLASS, PCLASS, CBNAME) \
- bool CLASS::CBNAME(wxPreviewCanvas* a, wxDC& b) { \
- bool rval=False; \
- bool found; \
- wxPyBeginBlockThreads(); \
- if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* win = wxPyMake_wxObject(a); \
- PyObject* dc = wxPyMake_wxObject(&b); \
- rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(OO)", win, dc));\
- Py_DECREF(win); \
- Py_DECREF(dc); \
- } \
- wxPyEndBlockThreads(); \
- if (! found) \
- rval = PCLASS::CBNAME(a, b); \
- return rval; \
- } \
- bool CLASS::base_##CBNAME(wxPreviewCanvas* a, wxDC& b) { \
- return PCLASS::CBNAME(a, b); \
- }
+#define DEC_PYCALLBACK_BOOL_PREWINDC(CBNAME) \
+ bool CBNAME(wxPreviewCanvas* a, wxDC& b)
+
+
+#define IMP_PYCALLBACK_BOOL_PREWINDC(CLASS, PCLASS, CBNAME) \
+ bool CLASS::CBNAME(wxPreviewCanvas* a, wxDC& b) { \
+ bool rval=false; \
+ bool found; \
+ wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
+ if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
+ PyObject* win = wxPyMake_wxObject(a,false); \
+ PyObject* dc = wxPyMake_wxObject(&b,false); \
+ rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(OO)", win, dc)); \
+ Py_DECREF(win); \
+ Py_DECREF(dc); \
+ } \
+ wxPyEndBlockThreads(blocked); \
+ if (! found) \
+ rval = PCLASS::CBNAME(a, b); \
+ return rval; \
+ }