X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7bcb11d30764df47144189e164f53d8171ed4a63..7344108e8a129a3f9b4df5ab0f98a1713db03b89:/include/wx/generic/prntdlgg.h diff --git a/include/wx/generic/prntdlgg.h b/include/wx/generic/prntdlgg.h index 67889251f7..5271b3891e 100644 --- a/include/wx/generic/prntdlgg.h +++ b/include/wx/generic/prntdlgg.h @@ -1,148 +1,239 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: prntdlgg.h +// Name: wx/generic/prntdlgg.h // Purpose: wxGenericPrintDialog, wxGenericPrintSetupDialog, // wxGenericPageSetupDialog // Author: Julian Smart // Modified by: // Created: 01/02/97 // RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence +// Copyright: (c) Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef __PRINTDLGH_G_ #define __PRINTDLGH_G_ -#ifdef __GNUG__ -#pragma interface "prntdlgg.h" -#endif - #include "wx/defs.h" + +#if wxUSE_PRINTING_ARCHITECTURE + #include "wx/dialog.h" -#include "wx/dc.h" #include "wx/cmndata.h" -#include "wx/dialog.h" +#include "wx/prntbase.h" +#include "wx/printdlg.h" +#include "wx/listctrl.h" +#include "wx/dc.h" #if wxUSE_POSTSCRIPT -#include "wx/dcps.h" + #include "wx/dcps.h" #endif -class WXDLLEXPORT wxTextCtrl; -class WXDLLEXPORT wxButton; -class WXDLLEXPORT wxCheckBox; -class WXDLLEXPORT wxChoice; -class WXDLLEXPORT wxStaticText; -class WXDLLEXPORT wxRadioBox; -class WXDLLEXPORT wxPrintSetupData; - -/* -* Simulated Print and Print Setup dialogs -* for non-Windows platforms (and Windows using PostScript print/preview) -*/ - -#define wxPRINTID_STATIC 10 -#define wxPRINTID_RANGE 11 -#define wxPRINTID_FROM 12 -#define wxPRINTID_TO 13 -#define wxPRINTID_COPIES 14 -#define wxPRINTID_PRINTTOFILE 15 -#define wxPRINTID_SETUP 16 - -class WXDLLEXPORT wxGenericPrintDialog: public wxDialog +class WXDLLIMPEXP_FWD_CORE wxTextCtrl; +class WXDLLIMPEXP_FWD_CORE wxButton; +class WXDLLIMPEXP_FWD_CORE wxCheckBox; +class WXDLLIMPEXP_FWD_CORE wxComboBox; +class WXDLLIMPEXP_FWD_CORE wxStaticText; +class WXDLLIMPEXP_FWD_CORE wxRadioBox; +class WXDLLIMPEXP_FWD_CORE wxPageSetupDialogData; + +// ---------------------------------------------------------------------------- +// constants +// ---------------------------------------------------------------------------- + +// This is not clear why all these enums start with 10 or 30 but do not change it +// without good reason to avoid some subtle backwards compatibility breakage + +enum +{ + wxPRINTID_STATIC = 10, + wxPRINTID_RANGE, + wxPRINTID_FROM, + wxPRINTID_TO, + wxPRINTID_COPIES, + wxPRINTID_PRINTTOFILE, + wxPRINTID_SETUP +}; + +enum +{ + wxPRINTID_LEFTMARGIN = 30, + wxPRINTID_RIGHTMARGIN, + wxPRINTID_TOPMARGIN, + wxPRINTID_BOTTOMMARGIN +}; + +enum +{ + wxPRINTID_PRINTCOLOUR = 10, + wxPRINTID_ORIENTATION, + wxPRINTID_COMMAND, + wxPRINTID_OPTIONS, + wxPRINTID_PAPERSIZE, + wxPRINTID_PRINTER +}; + +#if wxUSE_POSTSCRIPT + +//---------------------------------------------------------------------------- +// wxPostScriptNativeData +//---------------------------------------------------------------------------- + +class WXDLLIMPEXP_CORE wxPostScriptPrintNativeData: public wxPrintNativeDataBase +{ +public: + wxPostScriptPrintNativeData(); + virtual ~wxPostScriptPrintNativeData(); + + virtual bool TransferTo( wxPrintData &data ); + virtual bool TransferFrom( const wxPrintData &data ); + + virtual bool Ok() const { return IsOk(); } + virtual bool IsOk() const { return true; } + + const wxString& GetPrinterCommand() const { return m_printerCommand; } + const wxString& GetPrinterOptions() const { return m_printerOptions; } + const wxString& GetPreviewCommand() const { return m_previewCommand; } + const wxString& GetFontMetricPath() const { return m_afmPath; } + double GetPrinterScaleX() const { return m_printerScaleX; } + double GetPrinterScaleY() const { return m_printerScaleY; } + long GetPrinterTranslateX() const { return m_printerTranslateX; } + long GetPrinterTranslateY() const { return m_printerTranslateY; } + + void SetPrinterCommand(const wxString& command) { m_printerCommand = command; } + void SetPrinterOptions(const wxString& options) { m_printerOptions = options; } + void SetPreviewCommand(const wxString& command) { m_previewCommand = command; } + void SetFontMetricPath(const wxString& path) { m_afmPath = path; } + void SetPrinterScaleX(double x) { m_printerScaleX = x; } + void SetPrinterScaleY(double y) { m_printerScaleY = y; } + void SetPrinterScaling(double x, double y) { m_printerScaleX = x; m_printerScaleY = y; } + void SetPrinterTranslateX(long x) { m_printerTranslateX = x; } + void SetPrinterTranslateY(long y) { m_printerTranslateY = y; } + void SetPrinterTranslation(long x, long y) { m_printerTranslateX = x; m_printerTranslateY = y; } + +#if wxUSE_STREAMS + wxOutputStream *GetOutputStream() { return m_outputStream; } + void SetOutputStream( wxOutputStream *output ) { m_outputStream = output; } +#endif + +private: + wxString m_printerCommand; + wxString m_previewCommand; + wxString m_printerOptions; + wxString m_afmPath; + double m_printerScaleX; + double m_printerScaleY; + long m_printerTranslateX; + long m_printerTranslateY; +#if wxUSE_STREAMS + wxOutputStream *m_outputStream; +#endif + +private: + DECLARE_DYNAMIC_CLASS(wxPostScriptPrintNativeData) +}; + +// ---------------------------------------------------------------------------- +// Simulated Print and Print Setup dialogs for non-Windows platforms (and +// Windows using PostScript print/preview) +// ---------------------------------------------------------------------------- + +class WXDLLIMPEXP_CORE wxGenericPrintDialog : public wxPrintDialogBase { - DECLARE_DYNAMIC_CLASS(wxGenericPrintDialog) - public: - wxGenericPrintDialog(wxWindow *parent, wxPrintDialogData* data = (wxPrintDialogData*) NULL); - ~wxGenericPrintDialog(); + wxGenericPrintDialog(wxWindow *parent, + wxPrintDialogData* data = NULL); + wxGenericPrintDialog(wxWindow *parent, wxPrintData* data); + + virtual ~wxGenericPrintDialog(); void OnSetup(wxCommandEvent& event); void OnRange(wxCommandEvent& event); void OnOK(wxCommandEvent& event); - + virtual bool TransferDataFromWindow(); virtual bool TransferDataToWindow(); virtual int ShowModal(); - inline wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; } + wxPrintData& GetPrintData() + { return m_printDialogData.GetPrintData(); } + + wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; } wxDC *GetPrintDC(); public: - wxStaticText* m_printerMessage; +// wxStaticText* m_printerMessage; wxButton* m_setupButton; - wxButton* m_helpButton; +// wxButton* m_helpButton; wxRadioBox* m_rangeRadioBox; wxTextCtrl* m_fromText; wxTextCtrl* m_toText; wxTextCtrl* m_noCopiesText; wxCheckBox* m_printToFileCheckBox; - wxCheckBox* m_collateCopiesCheckBox; - +// wxCheckBox* m_collateCopiesCheckBox; + wxPrintDialogData m_printDialogData; - - + +protected: + void Init(wxWindow *parent); + +private: DECLARE_EVENT_TABLE() + DECLARE_DYNAMIC_CLASS(wxGenericPrintDialog) }; -#define wxPRINTID_PRINTCOLOUR 10 -#define wxPRINTID_ORIENTATION 11 -#define wxPRINTID_COMMAND 12 -#define wxPRINTID_OPTIONS 13 -#define wxPRINTID_PAPERSIZE 14 - -class WXDLLEXPORT wxGenericPrintSetupDialog: public wxDialog +class WXDLLIMPEXP_CORE wxGenericPrintSetupDialog : public wxDialog { - DECLARE_CLASS(wxGenericPrintSetupDialog) - public: // There are no configuration options for the dialog, so we // just pass the wxPrintData object (no wxPrintSetupDialogData class needed) wxGenericPrintSetupDialog(wxWindow *parent, wxPrintData* data); - wxGenericPrintSetupDialog(wxWindow *parent, wxPrintSetupData* data); - ~wxGenericPrintSetupDialog(); + virtual ~wxGenericPrintSetupDialog(); void Init(wxPrintData* data); + void OnPrinter(wxListEvent& event); + virtual bool TransferDataFromWindow(); virtual bool TransferDataToWindow(); - wxChoice *CreatePaperTypeChoice(int* x, int* y); - + virtual wxComboBox *CreatePaperTypeChoice(); + public: + wxListCtrl* m_printerListCtrl; wxRadioBox* m_orientationRadioBox; wxTextCtrl* m_printerCommandText; wxTextCtrl* m_printerOptionsText; wxCheckBox* m_colourCheckBox; - wxChoice* m_paperTypeChoice; - -#if wxUSE_POSTSCRIPT + wxComboBox* m_paperTypeChoice; + wxPrintData m_printData; - inline wxPrintData& GetPrintData() { return m_printData; } -#endif - -}; + wxPrintData& GetPrintData() { return m_printData; } -#define wxPRINTID_LEFTMARGIN 30 -#define wxPRINTID_RIGHTMARGIN 31 -#define wxPRINTID_TOPMARGIN 32 -#define wxPRINTID_BOTTOMMARGIN 33 + // After pressing OK, write data here. + wxPrintData* m_targetData; -class WXDLLEXPORT wxGenericPageSetupDialog: public wxDialog +private: + DECLARE_EVENT_TABLE() + DECLARE_CLASS(wxGenericPrintSetupDialog) +}; +#endif + // wxUSE_POSTSCRIPT + +class WXDLLIMPEXP_CORE wxGenericPageSetupDialog : public wxPageSetupDialogBase { - DECLARE_CLASS(wxGenericPageSetupDialog) - public: - wxGenericPageSetupDialog(wxWindow *parent, wxPageSetupData* data = (wxPageSetupData*) NULL); - ~wxGenericPageSetupDialog(); + wxGenericPageSetupDialog(wxWindow *parent = NULL, + wxPageSetupDialogData* data = NULL); + virtual ~wxGenericPageSetupDialog(); virtual bool TransferDataFromWindow(); virtual bool TransferDataToWindow(); + virtual wxPageSetupDialogData& GetPageSetupDialogData(); + void OnPrinter(wxCommandEvent& event); - - wxChoice *CreatePaperTypeChoice(int* x, int* y); - inline wxPageSetupData& GetPageSetupData() { return m_pageData; } + wxComboBox *CreatePaperTypeChoice(int* x, int* y); public: wxButton* m_printerButton; @@ -151,14 +242,16 @@ public: wxTextCtrl* m_marginTopText; wxTextCtrl* m_marginRightText; wxTextCtrl* m_marginBottomText; - wxChoice* m_paperTypeChoice; - - static bool m_pageSetupDialogCancelled; - - wxPageSetupData m_pageData; - + wxComboBox* m_paperTypeChoice; + + wxPageSetupDialogData m_pageData; + +private: DECLARE_EVENT_TABLE() + DECLARE_DYNAMIC_CLASS_NO_COPY(wxGenericPageSetupDialog) }; #endif -// __PRINTDLGH_G__ + +#endif +// __PRINTDLGH_G_