Added wxPy versions of wxPrintPreview, wxPreviewFrame, and

wxPreviewControlBar so they can be derived from in Python and be able
to override the C++ virtual methods.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20968 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2003-06-06 21:25:16 +00:00
parent 83ef7e2eaf
commit 71df851e7f
3 changed files with 375 additions and 20 deletions

View File

@@ -526,6 +526,27 @@ extern wxPyApp *wxPythonApp;
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_VOID_(CBNAME) \
void CBNAME(); \
void base_##CBNAME();
#define IMP_PYCALLBACK_VOID_(CLASS, PCLASS, CBNAME) \
void CLASS::CBNAME() { \
bool found; \
wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("()")); \
wxPyEndBlockThreads(); \
if (! found) \
PCLASS::CBNAME(); \
} \
void CLASS::base_##CBNAME() { \
PCLASS::CBNAME(); \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_VOID_INTINT(CBNAME) \
void CBNAME(int a, int b); \
void base_##CBNAME(int a, int b);
@@ -547,6 +568,27 @@ extern wxPyApp *wxPythonApp;
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_VOID_INT(CBNAME) \
void CBNAME(int a); \
void base_##CBNAME(int a);
#define IMP_PYCALLBACK_VOID_INT(CLASS, PCLASS, CBNAME) \
void CLASS::CBNAME(int a) { \
bool found; \
wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(i)",a)); \
wxPyEndBlockThreads(); \
if (! found) \
PCLASS::CBNAME(a); \
} \
void CLASS::base_##CBNAME(int a) { \
PCLASS::CBNAME(a); \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_VOID_INT4(CBNAME) \
void CBNAME(int a, int b, int c, int d); \
void base_##CBNAME(int a, int b, int c, int d);
@@ -674,6 +716,28 @@ extern wxPyApp *wxPythonApp;
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_BOOL_BOOL(CBNAME) \
bool CBNAME(bool a); \
bool base_##CBNAME(bool a);
#define IMP_PYCALLBACK_BOOL_BOOL(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(bool a) { \
bool rval=FALSE, found; \
wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(i)",a));\
wxPyEndBlockThreads(); \
if (! found) \
rval = PCLASS::CBNAME(a); \
return rval; \
} \
bool CLASS::base_##CBNAME(bool a) { \
return PCLASS::CBNAME(a); \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_BOOL_INT(CBNAME) \
bool CBNAME(int a); \
bool base_##CBNAME(int a);
@@ -1408,6 +1472,34 @@ extern wxPyApp *wxPythonApp;
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_BOOL_WXWINDC(CBNAME) \
bool CBNAME(wxWindow* a, wxDC& b); \
bool base_##CBNAME(wxWindow* a, wxDC& b);
#define IMP_PYCALLBACK_BOOL_WXWINDC(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(wxWindow* 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(wxWindow* a, wxDC& b) { \
return PCLASS::CBNAME(a, b); \
}
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_VOID_WXWINBASE(CBNAME) \
void CBNAME(wxWindowBase* a); \
void base_##CBNAME(wxWindowBase* a);