1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: prntdlgg.h 3 // Purpose: wxGenericPrintDialog, wxGenericPrintSetupDialog, 4 // wxGenericPageSetupDialog 5 // Author: Julian Smart 6 // Modified by: 7 // Created: 01/02/97 8 // RCS-ID: $Id: prntdlgg.h 49804 2007-11-10 01:09:42Z VZ $ 9 // Copyright: (c) Julian Smart 10 // Licence: wxWindows licence 11 ///////////////////////////////////////////////////////////////////////////// 12 13 #ifndef __PRINTDLGH_G_ 14 #define __PRINTDLGH_G_ 15 16 #include "wx/defs.h" 17 18 #if wxUSE_PRINTING_ARCHITECTURE 19 20 #include "wx/dialog.h" 21 #include "wx/cmndata.h" 22 #include "wx/prntbase.h" 23 #include "wx/printdlg.h" 24 #include "wx/listctrl.h" 25 26 #if wxUSE_POSTSCRIPT 27 #include "wx/dcps.h" 28 #endif 29 30 class WXDLLIMPEXP_FWD_CORE wxTextCtrl; 31 class WXDLLIMPEXP_FWD_CORE wxButton; 32 class WXDLLIMPEXP_FWD_CORE wxCheckBox; 33 class WXDLLIMPEXP_FWD_CORE wxComboBox; 34 class WXDLLIMPEXP_FWD_CORE wxStaticText; 35 class WXDLLIMPEXP_FWD_CORE wxRadioBox; 36 class WXDLLIMPEXP_FWD_CORE wxPageSetupData; 37 38 // ---------------------------------------------------------------------------- 39 // constants 40 // ---------------------------------------------------------------------------- 41 42 // This is not clear why all these enums start with 10 or 30 but do not change it 43 // without good reason to avoid some subtle backwards compatibility breakage 44 45 enum 46 { 47 wxPRINTID_STATIC = 10, 48 wxPRINTID_RANGE, 49 wxPRINTID_FROM, 50 wxPRINTID_TO, 51 wxPRINTID_COPIES, 52 wxPRINTID_PRINTTOFILE, 53 wxPRINTID_SETUP 54 }; 55 56 enum 57 { 58 wxPRINTID_LEFTMARGIN = 30, 59 wxPRINTID_RIGHTMARGIN, 60 wxPRINTID_TOPMARGIN, 61 wxPRINTID_BOTTOMMARGIN 62 }; 63 64 enum 65 { 66 wxPRINTID_PRINTCOLOUR = 10, 67 wxPRINTID_ORIENTATION, 68 wxPRINTID_COMMAND, 69 wxPRINTID_OPTIONS, 70 wxPRINTID_PAPERSIZE, 71 wxPRINTID_PRINTER 72 }; 73 74 #if wxUSE_POSTSCRIPT 75 76 //---------------------------------------------------------------------------- 77 // wxPostScriptNativeData 78 //---------------------------------------------------------------------------- 79 80 class WXDLLEXPORT wxPostScriptPrintNativeData: public wxPrintNativeDataBase 81 { 82 public: 83 wxPostScriptPrintNativeData(); 84 virtual ~wxPostScriptPrintNativeData(); 85 86 virtual bool TransferTo( wxPrintData &data ); 87 virtual bool TransferFrom( const wxPrintData &data ); 88 Ok()89 virtual bool Ok() const { return IsOk(); } IsOk()90 virtual bool IsOk() const { return true; } 91 GetPrinterCommand()92 const wxString& GetPrinterCommand() const { return m_printerCommand; } GetPrinterOptions()93 const wxString& GetPrinterOptions() const { return m_printerOptions; } GetPreviewCommand()94 const wxString& GetPreviewCommand() const { return m_previewCommand; } GetFontMetricPath()95 const wxString& GetFontMetricPath() const { return m_afmPath; } GetPrinterScaleX()96 double GetPrinterScaleX() const { return m_printerScaleX; } GetPrinterScaleY()97 double GetPrinterScaleY() const { return m_printerScaleY; } GetPrinterTranslateX()98 long GetPrinterTranslateX() const { return m_printerTranslateX; } GetPrinterTranslateY()99 long GetPrinterTranslateY() const { return m_printerTranslateY; } 100 SetPrinterCommand(const wxString & command)101 void SetPrinterCommand(const wxString& command) { m_printerCommand = command; } SetPrinterOptions(const wxString & options)102 void SetPrinterOptions(const wxString& options) { m_printerOptions = options; } SetPreviewCommand(const wxString & command)103 void SetPreviewCommand(const wxString& command) { m_previewCommand = command; } SetFontMetricPath(const wxString & path)104 void SetFontMetricPath(const wxString& path) { m_afmPath = path; } SetPrinterScaleX(double x)105 void SetPrinterScaleX(double x) { m_printerScaleX = x; } SetPrinterScaleY(double y)106 void SetPrinterScaleY(double y) { m_printerScaleY = y; } SetPrinterScaling(double x,double y)107 void SetPrinterScaling(double x, double y) { m_printerScaleX = x; m_printerScaleY = y; } SetPrinterTranslateX(long x)108 void SetPrinterTranslateX(long x) { m_printerTranslateX = x; } SetPrinterTranslateY(long y)109 void SetPrinterTranslateY(long y) { m_printerTranslateY = y; } SetPrinterTranslation(long x,long y)110 void SetPrinterTranslation(long x, long y) { m_printerTranslateX = x; m_printerTranslateY = y; } 111 112 #if wxUSE_STREAMS GetOutputStream()113 wxOutputStream *GetOutputStream() { return m_outputStream; } SetOutputStream(wxOutputStream * output)114 void SetOutputStream( wxOutputStream *output ) { m_outputStream = output; } 115 #endif 116 117 private: 118 wxString m_printerCommand; 119 wxString m_previewCommand; 120 wxString m_printerOptions; 121 wxString m_afmPath; 122 double m_printerScaleX; 123 double m_printerScaleY; 124 long m_printerTranslateX; 125 long m_printerTranslateY; 126 #if wxUSE_STREAMS 127 wxOutputStream *m_outputStream; 128 #endif 129 130 private: 131 DECLARE_DYNAMIC_CLASS(wxPostScriptPrintNativeData) 132 }; 133 134 // ---------------------------------------------------------------------------- 135 // Simulated Print and Print Setup dialogs for non-Windows platforms (and 136 // Windows using PostScript print/preview) 137 // ---------------------------------------------------------------------------- 138 139 class WXDLLEXPORT wxGenericPrintDialog : public wxPrintDialogBase 140 { 141 public: 142 wxGenericPrintDialog(wxWindow *parent, 143 wxPrintDialogData* data = (wxPrintDialogData*)NULL); 144 wxGenericPrintDialog(wxWindow *parent, wxPrintData* data); 145 146 virtual ~wxGenericPrintDialog(); 147 148 void OnSetup(wxCommandEvent& event); 149 void OnRange(wxCommandEvent& event); 150 void OnOK(wxCommandEvent& event); 151 152 virtual bool TransferDataFromWindow(); 153 virtual bool TransferDataToWindow(); 154 155 virtual int ShowModal(); 156 GetPrintData()157 wxPrintData& GetPrintData() 158 { return m_printDialogData.GetPrintData(); } 159 GetPrintDialogData()160 wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; } 161 wxDC *GetPrintDC(); 162 163 public: 164 // wxStaticText* m_printerMessage; 165 wxButton* m_setupButton; 166 // wxButton* m_helpButton; 167 wxRadioBox* m_rangeRadioBox; 168 wxTextCtrl* m_fromText; 169 wxTextCtrl* m_toText; 170 wxTextCtrl* m_noCopiesText; 171 wxCheckBox* m_printToFileCheckBox; 172 // wxCheckBox* m_collateCopiesCheckBox; 173 174 wxPrintDialogData m_printDialogData; 175 176 protected: 177 void Init(wxWindow *parent); 178 179 private: 180 DECLARE_EVENT_TABLE() 181 DECLARE_DYNAMIC_CLASS(wxGenericPrintDialog) 182 }; 183 184 class WXDLLEXPORT wxGenericPrintSetupDialog : public wxDialog 185 { 186 public: 187 // There are no configuration options for the dialog, so we 188 // just pass the wxPrintData object (no wxPrintSetupDialogData class needed) 189 wxGenericPrintSetupDialog(wxWindow *parent, wxPrintData* data); 190 virtual ~wxGenericPrintSetupDialog(); 191 192 void Init(wxPrintData* data); 193 194 void OnPrinter(wxListEvent& event); 195 196 virtual bool TransferDataFromWindow(); 197 virtual bool TransferDataToWindow(); 198 199 virtual wxComboBox *CreatePaperTypeChoice(); 200 201 public: 202 wxListCtrl* m_printerListCtrl; 203 wxRadioBox* m_orientationRadioBox; 204 wxTextCtrl* m_printerCommandText; 205 wxTextCtrl* m_printerOptionsText; 206 wxCheckBox* m_colourCheckBox; 207 wxComboBox* m_paperTypeChoice; 208 209 wxPrintData m_printData; GetPrintData()210 wxPrintData& GetPrintData() { return m_printData; } 211 212 // After pressing OK, write data here. 213 wxPrintData* m_targetData; 214 215 private: 216 DECLARE_EVENT_TABLE() 217 DECLARE_CLASS(wxGenericPrintSetupDialog) 218 }; 219 #endif 220 // wxUSE_POSTSCRIPT 221 222 class WXDLLEXPORT wxGenericPageSetupDialog : public wxPageSetupDialogBase 223 { 224 public: 225 wxGenericPageSetupDialog(wxWindow *parent = NULL, 226 wxPageSetupDialogData* data = NULL); 227 virtual ~wxGenericPageSetupDialog(); 228 229 virtual bool TransferDataFromWindow(); 230 virtual bool TransferDataToWindow(); 231 232 virtual wxPageSetupDialogData& GetPageSetupDialogData(); 233 234 void OnPrinter(wxCommandEvent& event); 235 wxComboBox *CreatePaperTypeChoice(int* x, int* y); 236 237 public: 238 wxButton* m_printerButton; 239 wxRadioBox* m_orientationRadioBox; 240 wxTextCtrl* m_marginLeftText; 241 wxTextCtrl* m_marginTopText; 242 wxTextCtrl* m_marginRightText; 243 wxTextCtrl* m_marginBottomText; 244 wxComboBox* m_paperTypeChoice; 245 246 wxPageSetupDialogData m_pageData; 247 248 private: 249 DECLARE_EVENT_TABLE() 250 DECLARE_DYNAMIC_CLASS_NO_COPY(wxGenericPageSetupDialog) 251 }; 252 253 #endif 254 255 #endif 256 // __PRINTDLGH_G_ 257