+
+#define DEC_PYCALLBACK_wxSize__pure(CBNAME) \
+ wxSize CBNAME(); \
+
+
+#define IMP_PYCALLBACK_wxSize__pure(CLASS, PCLASS, CBNAME) \
+ wxSize CLASS::CBNAME() { \
+ wxSize rval(0,0); \
+ bool doSave = wxPyRestoreThread(); \
+ if (m_myInst.findCallback(#CBNAME)) { \
+ PyObject* ro; \
+ wxSize* ptr; \
+ ro = m_myInst.callCallbackObj(Py_BuildValue("()")); \
+ if (! SWIG_GetPtrObj(ro, (void **)&ptr, "_wxSize_p")) \
+ rval = *ptr; \
+ } \
+ wxPySaveThread(doSave); \
+ return rval; \
+ }
+
+//---------------------------------------------------------------------------
+
+#define DEC_PYCALLBACK_BOOL_WXWIN(CBNAME) \
+ bool CBNAME(wxWindow* a); \
+ bool base_##CBNAME(wxWindow* a);
+
+
+#define IMP_PYCALLBACK_BOOL_WXWIN(CLASS, PCLASS, CBNAME) \
+ bool CLASS::CBNAME(wxWindow* a) { \
+ bool rval; \
+ bool doSave = wxPyRestoreThread(); \
+ if (m_myInst.findCallback(#CBNAME)) \
+ rval = m_myInst.callCallback(Py_BuildValue("(O)", \
+ wxPyConstructObject((void*)a,"wxWindow"))); \
+ else \
+ rval = PCLASS::CBNAME(a); \
+ wxPySaveThread(doSave); \
+ return rval; \
+ } \
+ bool CLASS::base_##CBNAME(wxWindow* a) { \
+ return PCLASS::CBNAME(a); \
+ }
+
+//---------------------------------------------------------------------------
+
+#define DEC_PYCALLBACK_BOOL_(CBNAME) \
+ bool CBNAME(); \
+ bool base_##CBNAME();
+
+
+#define IMP_PYCALLBACK_BOOL_(CLASS, PCLASS, CBNAME) \
+ bool CLASS::CBNAME() { \
+ bool rval; \
+ bool doSave = wxPyRestoreThread(); \
+ if (m_myInst.findCallback(#CBNAME)) \
+ rval = m_myInst.callCallback(Py_BuildValue("()")); \
+ else \
+ rval = PCLASS::CBNAME(); \
+ wxPySaveThread(doSave); \
+ return rval; \
+ } \
+ bool CLASS::base_##CBNAME() { \
+ return PCLASS::CBNAME(); \
+ }
+