wxXmlSubclassFactory for wxPython

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2002-10-07 20:08:19 +00:00
parent 762b5367f7
commit 65da7c0105
6 changed files with 248 additions and 59 deletions

View File

@@ -451,10 +451,10 @@ extern wxPyApp *wxPythonApp;
#define IMP_PYCALLBACK__(CLASS, PCLASS, CBNAME) \
void CLASS::CBNAME() { \
bool found; \
wxPyBeginBlockThreads(); \
wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("()")); \
wxPyEndBlockThreads(); \
wxPyEndBlockThreads(); \
if (! found) \
PCLASS::CBNAME(); \
} \
@@ -1877,6 +1877,29 @@ extern wxPyApp *wxPythonApp;
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_OBJECT_STRING_pure(CBNAME) \
wxObject* CBNAME(const wxString& a);
#define IMP_PYCALLBACK_OBJECT_STRING_pure(CLASS, PCLASS, CBNAME) \
wxObject* CLASS::CBNAME(const wxString& a) { \
wxObject* rv = NULL; \
wxPyBeginBlockThreads(); \
if (wxPyCBH_findCallback(m_myInst, #CBNAME)) { \
PyObject* so = wx2PyString(a); \
PyObject* ro; \
ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(O)", so)); \
if (ro) { \
SWIG_GetPtrObj(ro, (void **)&rv, "_wxObject_p"); \
Py_DECREF(ro); \
} \
Py_DECREF(so); \
} \
wxPyEndBlockThreads(); \
return rv; \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_BOOL_NODE_pure(CBNAME) \
bool CBNAME(wxXmlNode* a);