X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e81e3883b9dcfbc57ac66dc2ab8b9da443b8561a..74b720793f9d312566450461fac394e5e456ae5d:/include/wx/prntbase.h diff --git a/include/wx/prntbase.h b/include/wx/prntbase.h index 05a2284cf3..23b60fca7d 100644 --- a/include/wx/prntbase.h +++ b/include/wx/prntbase.h @@ -12,10 +12,6 @@ #ifndef _WX_PRNTBASEH__ #define _WX_PRNTBASEH__ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma interface "prntbase.h" -#endif - #include "wx/defs.h" #if wxUSE_PRINTING_ARCHITECTURE @@ -32,12 +28,16 @@ class WXDLLEXPORT wxButton; class WXDLLEXPORT wxChoice; class WXDLLEXPORT wxPrintout; class WXDLLEXPORT wxPrinterBase; +class WXDLLEXPORT wxPrintDialogBase; class WXDLLEXPORT wxPrintDialog; +class WXDLLEXPORT wxPageSetupDialogBase; +class WXDLLEXPORT wxPageSetupDialog; class WXDLLEXPORT wxPrintPreviewBase; class WXDLLEXPORT wxPreviewCanvas; class WXDLLEXPORT wxPreviewControlBar; class WXDLLEXPORT wxPreviewFrame; class WXDLLEXPORT wxPrintFactory; +class WXDLLEXPORT wxPrintNativeDataBase; //---------------------------------------------------------------------------- // error consts @@ -59,38 +59,97 @@ class WXDLLEXPORT wxPrintFactory public: wxPrintFactory() {} virtual ~wxPrintFactory() {} - - virtual bool HasPageSetupDialog() = 0; - virtual bool HasPrintSetupDialog() = 0; - + virtual wxPrinterBase *CreatePrinter( wxPrintDialogData* data ) = 0; - virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, - wxPrintout *printout = NULL, + + virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, + wxPrintout *printout = NULL, wxPrintDialogData *data = NULL ) = 0; - virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, - wxPrintout *printout, + virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, + wxPrintout *printout, wxPrintData *data ) = 0; - + + virtual wxPrintDialogBase *CreatePrintDialog( wxWindow *parent, + wxPrintDialogData *data = NULL ) = 0; + virtual wxPrintDialogBase *CreatePrintDialog( wxWindow *parent, + wxPrintData *data ) = 0; + + virtual wxPageSetupDialogBase *CreatePageSetupDialog( wxWindow *parent, + wxPageSetupDialogData * data = NULL ) = 0; + + // What to do and what to show in the wxPrintDialog + // a) Use the generic print setup dialog or a native one? + virtual bool HasPrintSetupDialog() = 0; + virtual wxDialog *CreatePrintSetupDialog( wxWindow *parent, wxPrintData *data ) = 0; + // b) Provide the "print to file" option ourselves or via print setup? + virtual bool HasOwnPrintToFile() = 0; + // c) Show current printer + virtual bool HasPrinterLine() = 0; + virtual wxString CreatePrinterLine() = 0; + // d) Show Status line for current printer? + virtual bool HasStatusLine() = 0; + virtual wxString CreateStatusLine() = 0; + + + virtual wxPrintNativeDataBase *CreatePrintNativeData() = 0; + static void SetPrintFactory( wxPrintFactory *factory ); static wxPrintFactory *GetFactory(); +private: static wxPrintFactory *m_factory; }; class WXDLLEXPORT wxNativePrintFactory: public wxPrintFactory { public: - virtual bool HasPageSetupDialog() - { return true; } - virtual bool HasPrintSetupDialog() - { return true; } - virtual wxPrinterBase *CreatePrinter( wxPrintDialogData *data ); - virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, - wxPrintout *printout = NULL, + + virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, + wxPrintout *printout = NULL, wxPrintDialogData *data = NULL ); - virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, + 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 wxPageSetupDialogBase *CreatePageSetupDialog( wxWindow *parent, + wxPageSetupDialogData * data = NULL ); + + 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(); +}; + +//---------------------------------------------------------------------------- +// wxPrintNativeDataBase +//---------------------------------------------------------------------------- + +class WXDLLEXPORT 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; + +private: + DECLARE_CLASS(wxPrintNativeDataBase) + DECLARE_NO_COPY_CLASS(wxPrintNativeDataBase) }; //---------------------------------------------------------------------------- @@ -110,8 +169,7 @@ public: virtual wxWindow *CreateAbortWindow(wxWindow *parent, wxPrintout *printout); virtual void ReportError(wxWindow *parent, wxPrintout *printout, const wxString& message); - wxPrintDialogData& GetPrintDialogData() const - { return (wxPrintDialogData&) m_printDialogData; } + virtual wxPrintDialogData& GetPrintDialogData() const; bool GetAbort() const { return sm_abortIt; } static wxPrinterError GetLastError() { return sm_lastError; } @@ -155,9 +213,11 @@ public: virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = true); virtual wxDC* PrintDialog(wxWindow *parent); + virtual wxPrintDialogData& GetPrintDialogData() const; + protected: wxPrinterBase *m_pimpl; - + private: DECLARE_CLASS(wxPrinter) DECLARE_NO_COPY_CLASS(wxPrinter) @@ -250,11 +310,14 @@ public: void OnPaint(wxPaintEvent& event); void OnChar(wxKeyEvent &event); - // Responds to colour changes void OnSysColourChanged(wxSysColourChangedEvent& event); private: +#if wxUSE_MOUSEWHEEL + void OnMouseWheel(wxMouseEvent& event); +#endif // wxUSE_MOUSEWHEEL + wxPrintPreviewBase* m_printPreview; DECLARE_CLASS(wxPreviewCanvas) @@ -313,8 +376,8 @@ private: #define wxPREVIEW_LAST 32 #define wxPREVIEW_GOTO 64 -#define wxPREVIEW_DEFAULT wxPREVIEW_PREVIOUS|wxPREVIEW_NEXT|wxPREVIEW_ZOOM\ - |wxPREVIEW_FIRST|wxPREVIEW_GOTO|wxPREVIEW_LAST +#define wxPREVIEW_DEFAULT (wxPREVIEW_PREVIOUS|wxPREVIEW_NEXT|wxPREVIEW_ZOOM\ + |wxPREVIEW_FIRST|wxPREVIEW_GOTO|wxPREVIEW_LAST) // Ids for controls #define wxID_PREVIEW_CLOSE 1 @@ -428,7 +491,7 @@ public: virtual int GetZoom() const; virtual wxPrintDialogData& GetPrintDialogData(); - + virtual int GetMaxPage() const; virtual int GetMinPage() const; @@ -508,15 +571,15 @@ public: virtual bool Print(bool interactive); virtual void DetermineScaling(); - + virtual wxPrintDialogData& GetPrintDialogData(); - + virtual int GetMaxPage() const; virtual int GetMinPage() const; virtual bool Ok() const; virtual void SetOk(bool ok); - + private: wxPrintPreviewBase *m_pimpl;