📄 wxpython_int.h
字号:
wxSize CLASS::CBNAME() const { \
const char* errmsg = #CBNAME " should return a 2-tuple of integers."; \
bool found; wxSize rval(0,0); \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
PyObject* ro; \
ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("()")); \
if (ro) { \
if (PySequence_Check(ro) && PyObject_Length(ro) == 2) { \
PyObject* o1 = PySequence_GetItem(ro, 0); \
PyObject* o2 = PySequence_GetItem(ro, 1); \
if (PyNumber_Check(o1) && PyNumber_Check(o2)) { \
rval = wxSize(PyInt_AsLong(o1), PyInt_AsLong(o2)); \
} \
else \
PyErr_SetString(PyExc_TypeError, errmsg); \
Py_DECREF(o1); \
Py_DECREF(o2); \
} \
else { \
PyErr_SetString(PyExc_TypeError, errmsg); \
} \
Py_DECREF(ro); \
} \
} \
wxPyEndBlockThreads(blocked); \
if (! found) \
return PCLASS::CBNAME(); \
else \
return rval; \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_BOOL_BOOL(CBNAME) \
bool CBNAME(bool a)
#define IMP_PYCALLBACK_BOOL_BOOL(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(bool a) { \
bool rval=false, found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(i)",a));\
wxPyEndBlockThreads(blocked); \
if (! found) \
rval = PCLASS::CBNAME(a); \
return rval; \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_BOOL_INT(CBNAME) \
bool CBNAME(int a)
#define IMP_PYCALLBACK_BOOL_INT(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(int a) { \
bool rval=false, found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(i)",a));\
wxPyEndBlockThreads(blocked); \
if (! found) \
rval = PCLASS::CBNAME(a); \
return rval; \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_BOOL_INT_pure(CBNAME) \
bool CBNAME(int a)
#define IMP_PYCALLBACK_BOOL_INT_pure(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(int a) { \
bool rval=false; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if (wxPyCBH_findCallback(m_myInst, #CBNAME)) \
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(i)",a)); \
else rval = false; \
wxPyEndBlockThreads(blocked); \
return rval; \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK__DC(CBNAME) \
void CBNAME(wxDC& a)
#define IMP_PYCALLBACK__DC(CLASS, PCLASS, CBNAME) \
void CLASS::CBNAME(wxDC& a) { \
bool found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
PyObject* obj = wxPyMake_wxObject(&a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", obj)); \
Py_DECREF(obj); \
} \
wxPyEndBlockThreads(blocked); \
if (! found) \
PCLASS::CBNAME(a); \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK__DCBOOL(CBNAME) \
void CBNAME(wxDC& a, bool b)
#define IMP_PYCALLBACK__DCBOOL(CLASS, PCLASS, CBNAME) \
void CLASS::CBNAME(wxDC& a, bool b) { \
bool found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
PyObject* obj = wxPyMake_wxObject(&a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oi)", obj, (int)b)); \
Py_DECREF(obj); \
} \
wxPyEndBlockThreads(blocked); \
if (! found) \
PCLASS::CBNAME(a, b); \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK__DCBOOL(CBNAME) \
void CBNAME(wxDC& a, bool b)
#define IMP_PYCALLBACK__DCBOOL(CLASS, PCLASS, CBNAME) \
void CLASS::CBNAME(wxDC& a, bool b) { \
bool found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
PyObject* obj = wxPyMake_wxObject(&a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oi)", obj, (int)b)); \
Py_DECREF(obj); \
} \
wxPyEndBlockThreads(blocked); \
if (! found) \
PCLASS::CBNAME(a, b); \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK__2DBL(CBNAME) \
void CBNAME(double a, double b)
#define IMP_PYCALLBACK__2DBL(CLASS, PCLASS, CBNAME) \
void CLASS::CBNAME(double a, double b) { \
bool found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(dd)",a,b)); \
wxPyEndBlockThreads(blocked); \
if (! found) \
PCLASS::CBNAME(a, b); \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK__2DBL2INT(CBNAME) \
void CBNAME(double a, double b, int c, int d)
#define IMP_PYCALLBACK__2DBL2INT(CLASS, PCLASS, CBNAME) \
void CLASS::CBNAME(double a, double b, int c, int d) { \
bool found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(ddii)", \
a,b,c,d)); \
wxPyEndBlockThreads(blocked); \
if (! found) \
PCLASS::CBNAME(a, b, c, d); \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK__DC4DBLBOOL(CBNAME) \
void CBNAME(wxDC& a, double b, double c, double d, double e, bool f)
#define IMP_PYCALLBACK__DC4DBLBOOL(CLASS, PCLASS, CBNAME) \
void CLASS::CBNAME(wxDC& a, double b, double c, double d, double e, bool f) { \
bool found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
PyObject* obj = wxPyMake_wxObject(&a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oddddi)", obj, b, c, d, e, (int)f)); \
Py_DECREF(obj); \
} \
wxPyEndBlockThreads(blocked); \
if (! found) \
PCLASS::CBNAME(a, b, c, d, e, f); \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_BOOL_DC4DBLBOOL(CBNAME) \
bool CBNAME(wxDC& a, double b, double c, double d, double e, bool f)
#define IMP_PYCALLBACK_BOOL_DC4DBLBOOL(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(wxDC& a, double b, double c, double d, double e, bool f) { \
bool found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
bool rval=false; \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
PyObject* obj = wxPyMake_wxObject(&a,false); \
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oddddi)", obj, b, c, d, e, (int)f));\
Py_DECREF(obj); \
} \
wxPyEndBlockThreads(blocked); \
if (! found) \
rval = PCLASS::CBNAME(a, b, c, d, e, f); \
return rval; \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK__BOOL2DBL2INT(CBNAME) \
void CBNAME(bool a, double b, double c, int d, int e)
#define IMP_PYCALLBACK__BOOL2DBL2INT(CLASS, PCLASS, CBNAME) \
void CLASS::CBNAME(bool a, double b, double c, int d, int e) { \
bool found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(iddii)", \
(int)a,b,c,d,e)); \
wxPyEndBlockThreads(blocked); \
if (! found) \
PCLASS::CBNAME(a, b, c, d, e); \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK__DC4DBL(CBNAME) \
void CBNAME(wxDC& a, double b, double c, double d, double e)
#define IMP_PYCALLBACK__DC4DBL(CLASS, PCLASS, CBNAME) \
void CLASS::CBNAME(wxDC& a, double b, double c, double d, double e) { \
bool found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
PyObject* obj = wxPyMake_wxObject(&a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Odddd)", obj, b, c, d, e)); \
Py_DECREF(obj); \
} \
wxPyEndBlockThreads(blocked); \
if (! found) \
PCLASS::CBNAME(a, b, c, d, e); \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK__DCBOOL(CBNAME) \
void CBNAME(wxDC& a, bool b)
#define IMP_PYCALLBACK__DCBOOL(CLASS, PCLASS, CBNAME) \
void CLASS::CBNAME(wxDC& a, bool b) { \
bool found; \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -