From 6b9f434ef364731ccf6e4ebf78b8cf71d3c85b79 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Sat, 13 Nov 2004 02:30:14 +0000 Subject: [PATCH] * wxPrintDialog no longer derives from wxDialog. * Add wxRTTI info for wxPyPrintout * wxPrintFactory probably doesn't need to be exposed git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/demo/PrintFramework.py | 2 +- wxPython/docs/CHANGES.txt | 5 +- wxPython/include/wx/wxPython/printfw.h | 1 + wxPython/src/__windows_rename.i | 2 - wxPython/src/_printfw.i | 116 +++---------------------- wxPython/wxPython/_windows.py | 6 -- 6 files changed, 18 insertions(+), 114 deletions(-) diff --git a/wxPython/demo/PrintFramework.py b/wxPython/demo/PrintFramework.py index 5db34aaa3e..c63ac9630a 100644 --- a/wxPython/demo/PrintFramework.py +++ b/wxPython/demo/PrintFramework.py @@ -133,7 +133,7 @@ class TestPrintPanel(wx.Panel): # this makes a copy of the wx.PrintData instead of just saving # a reference to the one inside the printDialogData that will - # be destroyed + # be destroyed when the dialog is destroyed self.printData = wx.PrintData( printerDialog.GetPrintDialogData().GetPrintData() ) printerDialog.Destroy() diff --git a/wxPython/docs/CHANGES.txt b/wxPython/docs/CHANGES.txt index ef87d2e1d1..d0f375c6c7 100644 --- a/wxPython/docs/CHANGES.txt +++ b/wxPython/docs/CHANGES.txt @@ -5,10 +5,9 @@ Recent Changes for wxPython 2.5.3.2 ------- -New factory based printing framework. (TODO: Say more about this!) - wx.Sizer Add, Insert, and Prepend funcitons now return a reference to the -wx.SizerItem that was added to the sizer. +wx.SizerItem that was added to the sizer, and the wx.SizerItem has a +GetRect accessor to give the position of the item on the parent window. Added wx.Sizer.GetItem method which returns the wx.SizerItem for the given wx.Window, wx.Sizer or position index. diff --git a/wxPython/include/wx/wxPython/printfw.h b/wxPython/include/wx/wxPython/printfw.h index 048941f2ea..f3234f1534 100644 --- a/wxPython/include/wx/wxPython/printfw.h +++ b/wxPython/include/wx/wxPython/printfw.h @@ -35,6 +35,7 @@ public: void base_GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo); PYPRIVATE; + DECLARE_ABSTRACT_CLASS(wxPyPrintout); }; #endif diff --git a/wxPython/src/__windows_rename.i b/wxPython/src/__windows_rename.i index 952d313909..6ff078cace 100644 --- a/wxPython/src/__windows_rename.i +++ b/wxPython/src/__windows_rename.i @@ -189,7 +189,5 @@ %rename(PyPrintPreview) wxPyPrintPreview; %rename(PyPreviewFrame) wxPyPreviewFrame; %rename(PyPreviewControlBar) wxPyPreviewControlBar; -%rename(PrintFactory) wxPrintFactory; -%rename(PrintNativeDataBase) wxPrintNativeDataBase; #endif diff --git a/wxPython/src/_printfw.i b/wxPython/src/_printfw.i index 897e48a954..1e3c1fc7b9 100644 --- a/wxPython/src/_printfw.i +++ b/wxPython/src/_printfw.i @@ -245,12 +245,16 @@ public: }; + MustHaveApp(wxPrintDialog); -class wxPrintDialog : public wxDialog { -public: - %pythonAppend wxPrintDialog "self._setOORInfo(self)" +// NOTE: Contrary to it's name, this class doesn't derive from wxDialog. It +// is a facade in front of a platform-specific (native dialog) provided by the +// wxPrintFactory. + +class wxPrintDialog : public wxObject { +public: wxPrintDialog(wxWindow* parent, wxPrintDialogData* data = NULL); // TODO?: wxPrintDialog(wxWindow *parent, wxPrintData* data); @@ -285,11 +289,11 @@ public: wxPrinter(wxPrintDialogData* data = NULL); ~wxPrinter(); - virtual wxWindow *CreateAbortWindow(wxWindow *parent, wxPrintout *printout); - virtual void ReportError(wxWindow *parent, wxPrintout *printout, const wxString& message); + virtual wxWindow *CreateAbortWindow(wxWindow *parent, wxPyPrintout *printout); + virtual void ReportError(wxWindow *parent, wxPyPrintout *printout, const wxString& message); virtual bool Setup(wxWindow *parent); - virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = true); + virtual bool Print(wxWindow *parent, wxPyPrintout *printout, bool prompt = true); virtual wxDC* PrintDialog(wxWindow *parent); virtual wxPrintDialogData& GetPrintDialogData() const; @@ -300,9 +304,12 @@ public: //--------------------------------------------------------------------------- -// Custom wxPrintout class that knows how to call python +// Custom wxPrintout class that knows how to call python, See implementation in +// include/sx/wxPython/printfw.h + %{ +IMPLEMENT_ABSTRACT_CLASS(wxPyPrintout, wxPrintout); // Since this one would be tough and ugly to do with the Macros... void wxPyPrintout::GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) { @@ -780,101 +787,6 @@ public: void base_SetZoomControl(int zoom); }; -//--------------------------------------------------------------------------- -// wxPrintFactory -//--------------------------------------------------------------------------- - -class wxPrintFactory -{ -public: - // wxPrintFactory() {} *** It's an ABC - // virtual ~wxPrintFactory(); - - virtual wxPrinterBase *CreatePrinter( wxPrintDialogData* data ); - - %nokwargs CreatePrintPreview; - virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, - wxPrintout *printout = NULL, - wxPrintDialogData *data = NULL ); - virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, - wxPrintout *printout, - wxPrintData *data ); - - %nokwargs CreatePrintDialog; - virtual wxPrintDialogBase *CreatePrintDialog( wxWindow *parent, - wxPrintDialogData *data = NULL ); - virtual wxPrintDialogBase *CreatePrintDialog( wxWindow *parent, - wxPrintData *data ); - - // What to do and what to show in the wxPrintDialog - // a) Use the generic print setup dialog or a native one? - virtual bool HasPrintSetupDialog(); - virtual wxDialog *CreatePrintSetupDialog( wxWindow *parent, wxPrintData *data ); - - // b) Provide the "print to file" option ourselves or via print setup? - virtual bool HasOwnPrintToFile(); - - // c) Show current printer - virtual bool HasPrinterLine(); - virtual wxString CreatePrinterLine(); - - // d) Show Status line for current printer? - virtual bool HasStatusLine(); - virtual wxString CreateStatusLine(); - - - virtual wxPrintNativeDataBase *CreatePrintNativeData(); - - static void SetPrintFactory( wxPrintFactory *factory ); - static wxPrintFactory *GetFactory(); - //static wxPrintFactory *m_factory; -}; - -// class wxNativePrintFactory: public wxPrintFactory -// { -// public: -// virtual wxPrinterBase *CreatePrinter( wxPrintDialogData *data ); - -// virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, -// wxPrintout *printout = NULL, -// wxPrintDialogData *data = NULL ); -// virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, -// wxPrintout *printout, -// wxPrintData *data ); - -// virtual wxPrintDialogBase *CreatePrintDialog( wxWindow *parent, -// wxPrintDialogData *data = NULL ); -// virtual wxPrintDialogBase *CreatePrintDialog( wxWindow *parent, -// wxPrintData *data ); - -// virtual bool HasPrintSetupDialog(); -// virtual wxDialog *CreatePrintSetupDialog( wxWindow *parent, wxPrintData *data ); -// virtual bool HasOwnPrintToFile(); -// virtual bool HasPrinterLine(); -// virtual wxString CreatePrinterLine(); -// virtual bool HasStatusLine(); -// virtual wxString CreateStatusLine(); - -// virtual wxPrintNativeDataBase *CreatePrintNativeData(); -// }; - - -class wxPrintNativeDataBase: public wxObject -{ -public: - wxPrintNativeDataBase(); - virtual ~wxPrintNativeDataBase() {} - - virtual bool TransferTo( wxPrintData &data ) = 0; - virtual bool TransferFrom( const wxPrintData &data ) = 0; - - virtual bool Ok() const = 0; - - int m_ref; -}; - - - //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- %init %{ diff --git a/wxPython/wxPython/_windows.py b/wxPython/wxPython/_windows.py index d1a9ea9900..2d6349a59f 100644 --- a/wxPython/wxPython/_windows.py +++ b/wxPython/wxPython/_windows.py @@ -341,12 +341,6 @@ wxPyPreviewFrame = wx._windows.PyPreviewFrame wxPyPreviewFramePtr = wx._windows.PyPreviewFramePtr wxPyPreviewControlBar = wx._windows.PyPreviewControlBar wxPyPreviewControlBarPtr = wx._windows.PyPreviewControlBarPtr -wxPrintFactory = wx._windows.PrintFactory -wxPrintFactoryPtr = wx._windows.PrintFactoryPtr -wxPrintFactory_SetPrintFactory = wx._windows.PrintFactory_SetPrintFactory -wxPrintFactory_GetFactory = wx._windows.PrintFactory_GetFactory -wxPrintNativeDataBase = wx._windows.PrintNativeDataBase -wxPrintNativeDataBasePtr = wx._windows.PrintNativeDataBasePtr d = globals() -- 2.45.2