+
+#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); \
+ }
+
+
+
+