X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2f91e3dfd2b613494cc95fd4c9341823f56c7bc0..25e29eb243fcd7a5e7e620eca0f3658f6096e859:/wxPython/src/_printfw.i diff --git a/wxPython/src/_printfw.i b/wxPython/src/_printfw.i index b4911ce8fd..43c734854a 100644 --- a/wxPython/src/_printfw.i +++ b/wxPython/src/_printfw.i @@ -223,10 +223,13 @@ class wxPageSetupDialog : public wxObject { public: wxPageSetupDialog(wxWindow* parent, wxPageSetupDialogData* data = NULL); - + ~wxPageSetupDialog(); + wxPageSetupDialogData& GetPageSetupData(); wxPageSetupDialogData& GetPageSetupDialogData(); int ShowModal(); + + %pythoncode { def Destroy(self): pass } }; //--------------------------------------------------------------------------- @@ -299,6 +302,8 @@ public: wxPrintDialog(wxWindow* parent, wxPrintDialogData* data = NULL); // TODO?: wxPrintDialog(wxWindow *parent, wxPrintData* data); + + ~wxPrintDialog(); virtual int ShowModal(); @@ -308,6 +313,7 @@ public: %newobject GetPrintDC; virtual wxDC *GetPrintDC(); + %pythoncode { def Destroy(self): pass } }; @@ -341,6 +347,7 @@ public: bool GetAbort(); static wxPrinterError GetLastError(); + }; @@ -393,9 +400,6 @@ void wxPyPrintout::GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *p wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo); } -void wxPyPrintout::base_GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) { - wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo); -} IMP_PYCALLBACK_BOOL_INTINT(wxPyPrintout, wxPrintout, OnBeginDocument); @@ -417,10 +421,14 @@ MustHaveApp(wxPyPrintout); class wxPyPrintout : public wxObject { public: %pythonAppend wxPyPrintout "self._setCallbackInfo(self, Printout)" + %typemap(out) wxPyPrintout*; // turn off this typemap wxPyPrintout(const wxString& title = wxPyPrintoutTitleStr); - //~wxPyPrintout(); wxPrintPreview object takes ownership... + ~wxPyPrintout(); + // Turn it back on again + %typemap(out) wxPyPrintout* { $result = wxPyMake_wxObject($1, $owner); } + void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -452,15 +460,22 @@ public: void SetIsPreview(bool p); - bool base_OnBeginDocument(int startPage, int endPage); - void base_OnEndDocument(); - void base_OnBeginPrinting(); - void base_OnEndPrinting(); - void base_OnPreparePrinting(); - bool base_HasPage(int page); + bool OnBeginDocument(int startPage, int endPage); + void OnEndDocument(); + void OnBeginPrinting(); + void OnEndPrinting(); + void OnPreparePrinting(); + bool HasPage(int page); DocDeclA( - void, base_GetPageInfo(int *OUTPUT, int *OUTPUT, int *OUTPUT, int *OUTPUT), - "base_GetPageInfo() -> (minPage, maxPage, pageFrom, pageTo)"); + void, GetPageInfo(int *OUTPUT, int *OUTPUT, int *OUTPUT, int *OUTPUT), + "GetPageInfo() -> (minPage, maxPage, pageFrom, pageTo)"); + + %MAKE_BASE_FUNC(Printout, OnBeginDocument); + %MAKE_BASE_FUNC(Printout, OnEndDocument); + %MAKE_BASE_FUNC(Printout, OnBeginPrinting); + %MAKE_BASE_FUNC(Printout, OnEndPrinting); + %MAKE_BASE_FUNC(Printout, OnPreparePrinting); + %MAKE_BASE_FUNC(Printout, GetPageInfo); }; //--------------------------------------------------------------------------- @@ -487,14 +502,17 @@ MustHaveApp(wxPreviewFrame); class wxPreviewFrame : public wxFrame { public: + %disownarg(wxPrintPreview*); + %pythonAppend wxPreviewFrame "self._setOORInfo(self)" - wxPreviewFrame(wxPrintPreview* preview, wxFrame* parent, const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxPyFrameNameStr); + %cleardisown(wxPrintPreview*); + void Initialize(); void CreateControlBar(); void CreateCanvas(); @@ -558,6 +576,8 @@ MustHaveApp(wxPrintPreview); class wxPrintPreview : public wxObject { public: + %disownarg(wxPyPrintout*); + %nokwargs wxPrintPreview; wxPrintPreview(wxPyPrintout* printout, wxPyPrintout* printoutForPrinting, @@ -566,6 +586,8 @@ public: wxPyPrintout* printoutForPrinting, wxPrintData* data); + ~wxPrintPreview(); + virtual bool SetCurrentPage(int pageNum); int GetCurrentPage(); @@ -573,6 +595,8 @@ public: wxPyPrintout *GetPrintout(); wxPyPrintout *GetPrintoutForPrinting(); + %cleardisown(wxPyPrintout*); + void SetFrame(wxFrame *frame); void SetCanvas(wxPreviewCanvas *canvas); @@ -617,15 +641,14 @@ public: %{ #define DEC_PYCALLBACK_BOOL_PREWINDC(CBNAME) \ - bool CBNAME(wxPreviewCanvas* a, wxDC& b); \ - bool base_##CBNAME(wxPreviewCanvas* a, wxDC& b) + bool CBNAME(wxPreviewCanvas* a, wxDC& b) #define IMP_PYCALLBACK_BOOL_PREWINDC(CLASS, PCLASS, CBNAME) \ bool CLASS::CBNAME(wxPreviewCanvas* a, wxDC& b) { \ bool rval=false; \ bool found; \ - wxPyBlock_t blocked = wxPyBeginBlockThreads(); \ + wxPyBlock_t blocked = wxPyBeginBlockThreads(); \ if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \ PyObject* win = wxPyMake_wxObject(a,false); \ PyObject* dc = wxPyMake_wxObject(&b,false); \ @@ -637,10 +660,7 @@ public: if (! found) \ rval = PCLASS::CBNAME(a, b); \ return rval; \ - } \ - bool CLASS::base_##CBNAME(wxPreviewCanvas* a, wxDC& b) { \ - return PCLASS::CBNAME(a, b); \ - } + } @@ -656,7 +676,7 @@ public: {} wxPyPrintPreview(wxPyPrintout* printout, wxPyPrintout* printoutForPrinting, - wxPrintData* data=NULL) + wxPrintData* data) : wxPrintPreview(printout, printoutForPrinting, data) {} @@ -695,6 +715,8 @@ MustHaveApp(wxPyPrintPreview); class wxPyPrintPreview : public wxPrintPreview { public: + %disownarg(wxPyPrintout*); + %pythonAppend wxPyPrintPreview "self._setCallbackInfo(self, PyPrintPreview)" %nokwargs wxPyPrintPreview; wxPyPrintPreview(wxPyPrintout* printout, @@ -704,15 +726,25 @@ public: wxPyPrintout* printoutForPrinting, wxPrintData* data); + %cleardisown(wxPyPrintout*); + void _setCallbackInfo(PyObject* self, PyObject* _class); - bool base_SetCurrentPage(int pageNum); - bool base_PaintPage(wxPreviewCanvas *canvas, wxDC& dc); - bool base_DrawBlankPage(wxPreviewCanvas *canvas, wxDC& dc); - bool base_RenderPage(int pageNum); - void base_SetZoom(int percent); - bool base_Print(bool interactive); - void base_DetermineScaling(); + bool SetCurrentPage(int pageNum); + bool PaintPage(wxPreviewCanvas *canvas, wxDC& dc); + bool DrawBlankPage(wxPreviewCanvas *canvas, wxDC& dc); + bool RenderPage(int pageNum); + void SetZoom(int percent); + bool Print(bool interactive); + void DetermineScaling(); + + %MAKE_BASE_FUNC(PyPrintPreview, SetCurrentPage); + %MAKE_BASE_FUNC(PyPrintPreview, PaintPage); + %MAKE_BASE_FUNC(PyPrintPreview, DrawBlankPage); + %MAKE_BASE_FUNC(PyPrintPreview, RenderPage); + %MAKE_BASE_FUNC(PyPrintPreview, SetZoom); + %MAKE_BASE_FUNC(PyPrintPreview, Print); + %MAKE_BASE_FUNC(PyPrintPreview, DetermineScaling); }; @@ -721,7 +753,7 @@ public: %{ class wxPyPreviewFrame : public wxPreviewFrame { - DECLARE_CLASS(wxPyPreviewFrame); + DECLARE_CLASS(wxPyPreviewFrame) public: wxPyPreviewFrame(wxPrintPreview* preview, wxFrame* parent, const wxString& title, @@ -769,9 +801,13 @@ public: void SetPreviewCanvas(wxPreviewCanvas* canvas); void SetControlBar(wxPreviewControlBar* bar); - void base_Initialize(); - void base_CreateCanvas(); - void base_CreateControlBar(); + void Initialize(); + void CreateCanvas(); + void CreateControlBar(); + + %MAKE_BASE_FUNC(PyPreviewFrame, Initialize); + %MAKE_BASE_FUNC(PyPreviewFrame, CreateCanvas); + %MAKE_BASE_FUNC(PyPreviewFrame, CreateControlBar); }; @@ -780,7 +816,7 @@ public: %{ class wxPyPreviewControlBar : public wxPreviewControlBar { - DECLARE_CLASS(wxPyPreviewControlBar); + DECLARE_CLASS(wxPyPreviewControlBar) public: wxPyPreviewControlBar(wxPrintPreview *preview, long buttons, @@ -825,8 +861,11 @@ public: void SetPrintPreview(wxPrintPreview* preview); - void base_CreateButtons(); - void base_SetZoomControl(int zoom); + void CreateButtons(); + void SetZoomControl(int zoom); + + %MAKE_BASE_FUNC(PreviewControlBar, CreateButtons); + %MAKE_BASE_FUNC(PreviewControlBar, SetZoomControl); }; //---------------------------------------------------------------------------