-class wxPyPrintout : public wxPrintout {
-public:
- wxPyPrintout(const wxString& title) : wxPrintout(title) {}
-
- PYCALLBACK_BOOL_INTINT(wxPrintout, OnBeginDocument);
- PYCALLBACK__(wxPrintout, OnEndDocument);
- PYCALLBACK__(wxPrintout, OnBeginPrinting);
- PYCALLBACK__(wxPrintout, OnEndPrinting);
- PYCALLBACK__(wxPrintout, OnPreparePrinting);
- PYCALLBACK_BOOL_INT_pure(wxPrintout, OnPrintPage);
- PYCALLBACK_BOOL_INT(wxPrintout, HasPage);
-
-
- // Since this one would be tough and ugly to do with the Macros...
- void GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) {
- bool hadErr = false;
-
- if (m_myInst.findCallback("GetPageInfo")) {
- PyObject* result = m_myInst.callCallbackObj(Py_BuildValue("()"));
- if (result && PyTuple_Check(result) && PyTuple_Size(result) == 4) {
- PyObject* val;
-
- val = PyTuple_GetItem(result, 0);
- if (PyInt_Check(val)) *minPage = PyInt_AsLong(val);
- else hadErr = true;
-
- val = PyTuple_GetItem(result, 1);
- if (PyInt_Check(val)) *maxPage = PyInt_AsLong(val);
- else hadErr = true;
-
- val = PyTuple_GetItem(result, 2);
- if (PyInt_Check(val)) *pageFrom = PyInt_AsLong(val);
- else hadErr = true;
-
- val = PyTuple_GetItem(result, 3);
- if (PyInt_Check(val)) *pageTo = PyInt_AsLong(val);
- else hadErr = true;
- }
- else
- hadErr = true;
-
- if (hadErr) {
- PyErr_SetString(PyExc_TypeError, "GetPageInfo should return a tuple of 4 integers.");
- PyErr_Print();
- }
- Py_DECREF(result);
-#ifdef WXP_WITH_THREAD
- PyEval_SaveThread();
-#endif
+
+
+// Since this one would be tough and ugly to do with the Macros...
+void wxPyPrintout::GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) {
+ bool hadErr = false;
+
+ bool doSave = wxPyRestoreThread();
+ if (m_myInst.findCallback("GetPageInfo")) {
+ PyObject* result = m_myInst.callCallbackObj(Py_BuildValue("()"));
+ if (result && PyTuple_Check(result) && PyTuple_Size(result) == 4) {
+ PyObject* val;
+
+ val = PyTuple_GetItem(result, 0);
+ if (PyInt_Check(val)) *minPage = PyInt_AsLong(val);
+ else hadErr = true;
+
+ val = PyTuple_GetItem(result, 1);
+ if (PyInt_Check(val)) *maxPage = PyInt_AsLong(val);
+ else hadErr = true;
+
+ val = PyTuple_GetItem(result, 2);
+ if (PyInt_Check(val)) *pageFrom = PyInt_AsLong(val);
+ else hadErr = true;
+
+ val = PyTuple_GetItem(result, 3);
+ if (PyInt_Check(val)) *pageTo = PyInt_AsLong(val);
+ else hadErr = true;