* 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
This commit is contained in:
Robin Dunn
2004-11-13 02:30:14 +00:00
parent 7b8a9da3c8
commit 6b9f434ef3
6 changed files with 18 additions and 114 deletions

View File

@@ -133,7 +133,7 @@ class TestPrintPanel(wx.Panel):
# this makes a copy of the wx.PrintData instead of just saving # this makes a copy of the wx.PrintData instead of just saving
# a reference to the one inside the printDialogData that will # 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() ) self.printData = wx.PrintData( printerDialog.GetPrintDialogData().GetPrintData() )
printerDialog.Destroy() printerDialog.Destroy()

View File

@@ -5,10 +5,9 @@ Recent Changes for wxPython
2.5.3.2 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.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 Added wx.Sizer.GetItem method which returns the wx.SizerItem for the given
wx.Window, wx.Sizer or position index. wx.Window, wx.Sizer or position index.

View File

@@ -35,6 +35,7 @@ public:
void base_GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo); void base_GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo);
PYPRIVATE; PYPRIVATE;
DECLARE_ABSTRACT_CLASS(wxPyPrintout);
}; };
#endif #endif

View File

@@ -189,7 +189,5 @@
%rename(PyPrintPreview) wxPyPrintPreview; %rename(PyPrintPreview) wxPyPrintPreview;
%rename(PyPreviewFrame) wxPyPreviewFrame; %rename(PyPreviewFrame) wxPyPreviewFrame;
%rename(PyPreviewControlBar) wxPyPreviewControlBar; %rename(PyPreviewControlBar) wxPyPreviewControlBar;
%rename(PrintFactory) wxPrintFactory;
%rename(PrintNativeDataBase) wxPrintNativeDataBase;
#endif #endif

View File

@@ -245,12 +245,16 @@ public:
}; };
MustHaveApp(wxPrintDialog); 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); wxPrintDialog(wxWindow* parent, wxPrintDialogData* data = NULL);
// TODO?: wxPrintDialog(wxWindow *parent, wxPrintData* data); // TODO?: wxPrintDialog(wxWindow *parent, wxPrintData* data);
@@ -285,11 +289,11 @@ public:
wxPrinter(wxPrintDialogData* data = NULL); wxPrinter(wxPrintDialogData* data = NULL);
~wxPrinter(); ~wxPrinter();
virtual wxWindow *CreateAbortWindow(wxWindow *parent, wxPrintout *printout); virtual wxWindow *CreateAbortWindow(wxWindow *parent, wxPyPrintout *printout);
virtual void ReportError(wxWindow *parent, wxPrintout *printout, const wxString& message); virtual void ReportError(wxWindow *parent, wxPyPrintout *printout, const wxString& message);
virtual bool Setup(wxWindow *parent); 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 wxDC* PrintDialog(wxWindow *parent);
virtual wxPrintDialogData& GetPrintDialogData() const; 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... // Since this one would be tough and ugly to do with the Macros...
void wxPyPrintout::GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) { void wxPyPrintout::GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) {
@@ -780,101 +787,6 @@ public:
void base_SetZoomControl(int zoom); 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 %{ %init %{

View File

@@ -341,12 +341,6 @@ wxPyPreviewFrame = wx._windows.PyPreviewFrame
wxPyPreviewFramePtr = wx._windows.PyPreviewFramePtr wxPyPreviewFramePtr = wx._windows.PyPreviewFramePtr
wxPyPreviewControlBar = wx._windows.PyPreviewControlBar wxPyPreviewControlBar = wx._windows.PyPreviewControlBar
wxPyPreviewControlBarPtr = wx._windows.PyPreviewControlBarPtr 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() d = globals()