1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/cmndata.h 3 // Purpose: Common GDI data classes 4 // Author: Julian Smart and others 5 // Modified by: 6 // Created: 01/02/97 7 // Copyright: (c) 8 // Licence: wxWindows licence 9 ///////////////////////////////////////////////////////////////////////////// 10 11 #ifndef _WX_CMNDATA_H_BASE_ 12 #define _WX_CMNDATA_H_BASE_ 13 14 #include "wx/defs.h" 15 16 #if wxUSE_PRINTING_ARCHITECTURE 17 18 #include "wx/gdicmn.h" 19 20 #if wxUSE_STREAMS 21 #include "wx/stream.h" 22 #endif 23 24 class WXDLLIMPEXP_FWD_CORE wxPrintNativeDataBase; 25 26 /* 27 * wxPrintData 28 * Encapsulates printer information (not printer dialog information) 29 */ 30 31 enum wxPrintBin 32 { 33 wxPRINTBIN_DEFAULT, 34 35 wxPRINTBIN_ONLYONE, 36 wxPRINTBIN_LOWER, 37 wxPRINTBIN_MIDDLE, 38 wxPRINTBIN_MANUAL, 39 wxPRINTBIN_ENVELOPE, 40 wxPRINTBIN_ENVMANUAL, 41 wxPRINTBIN_AUTO, 42 wxPRINTBIN_TRACTOR, 43 wxPRINTBIN_SMALLFMT, 44 wxPRINTBIN_LARGEFMT, 45 wxPRINTBIN_LARGECAPACITY, 46 wxPRINTBIN_CASSETTE, 47 wxPRINTBIN_FORMSOURCE, 48 49 wxPRINTBIN_USER 50 }; 51 52 const int wxPRINTMEDIA_DEFAULT = 0; 53 54 class WXDLLIMPEXP_CORE wxPrintData: public wxObject 55 { 56 public: 57 wxPrintData(); 58 wxPrintData(const wxPrintData& printData); 59 virtual ~wxPrintData(); 60 GetNoCopies()61 int GetNoCopies() const { return m_printNoCopies; } GetCollate()62 bool GetCollate() const { return m_printCollate; } GetOrientation()63 wxPrintOrientation GetOrientation() const { return m_printOrientation; } IsOrientationReversed()64 bool IsOrientationReversed() const { return m_printOrientationReversed; } 65 66 // Is this data OK for showing the print dialog? Ok()67 bool Ok() const { return IsOk(); } 68 bool IsOk() const ; 69 GetPrinterName()70 const wxString& GetPrinterName() const { return m_printerName; } GetColour()71 bool GetColour() const { return m_colour; } GetDuplex()72 wxDuplexMode GetDuplex() const { return m_duplexMode; } GetPaperId()73 wxPaperSize GetPaperId() const { return m_paperId; } GetPaperSize()74 const wxSize& GetPaperSize() const { return m_paperSize; } GetQuality()75 wxPrintQuality GetQuality() const { return m_printQuality; } GetBin()76 wxPrintBin GetBin() const { return m_bin; } GetPrintMode()77 wxPrintMode GetPrintMode() const { return m_printMode; } GetMedia()78 int GetMedia() const { return m_media; } 79 SetNoCopies(int v)80 void SetNoCopies(int v) { m_printNoCopies = v; } SetCollate(bool flag)81 void SetCollate(bool flag) { m_printCollate = flag; } 82 83 // Please use the overloaded method below SetOrientation(int orient)84 wxDEPRECATED_INLINE(void SetOrientation(int orient), 85 m_printOrientation = (wxPrintOrientation)orient; ) 86 void SetOrientation(wxPrintOrientation orient) { m_printOrientation = orient; } SetOrientationReversed(bool reversed)87 void SetOrientationReversed(bool reversed) { m_printOrientationReversed = reversed; } 88 SetPrinterName(const wxString & name)89 void SetPrinterName(const wxString& name) { m_printerName = name; } SetColour(bool colour)90 void SetColour(bool colour) { m_colour = colour; } SetDuplex(wxDuplexMode duplex)91 void SetDuplex(wxDuplexMode duplex) { m_duplexMode = duplex; } SetPaperId(wxPaperSize sizeId)92 void SetPaperId(wxPaperSize sizeId) { m_paperId = sizeId; } SetPaperSize(const wxSize & sz)93 void SetPaperSize(const wxSize& sz) { m_paperSize = sz; } SetQuality(wxPrintQuality quality)94 void SetQuality(wxPrintQuality quality) { m_printQuality = quality; } SetBin(wxPrintBin bin)95 void SetBin(wxPrintBin bin) { m_bin = bin; } SetMedia(int media)96 void SetMedia(int media) { m_media = media; } SetPrintMode(wxPrintMode printMode)97 void SetPrintMode(wxPrintMode printMode) { m_printMode = printMode; } 98 GetFilename()99 wxString GetFilename() const { return m_filename; } SetFilename(const wxString & filename)100 void SetFilename( const wxString &filename ) { m_filename = filename; } 101 102 wxPrintData& operator=(const wxPrintData& data); 103 GetPrivData()104 char* GetPrivData() const { return m_privData; } GetPrivDataLen()105 int GetPrivDataLen() const { return m_privDataLen; } 106 void SetPrivData( char *privData, int len ); 107 108 109 // Convert between wxPrintData and native data 110 void ConvertToNative(); 111 void ConvertFromNative(); 112 // Holds the native print data GetNativeData()113 wxPrintNativeDataBase *GetNativeData() const { return m_nativeData; } 114 115 private: 116 wxPrintBin m_bin; 117 int m_media; 118 wxPrintMode m_printMode; 119 120 int m_printNoCopies; 121 wxPrintOrientation m_printOrientation; 122 bool m_printOrientationReversed; 123 bool m_printCollate; 124 125 wxString m_printerName; 126 bool m_colour; 127 wxDuplexMode m_duplexMode; 128 wxPrintQuality m_printQuality; 129 wxPaperSize m_paperId; 130 wxSize m_paperSize; 131 132 wxString m_filename; 133 134 char* m_privData; 135 int m_privDataLen; 136 137 wxPrintNativeDataBase *m_nativeData; 138 139 private: 140 wxDECLARE_DYNAMIC_CLASS(wxPrintData); 141 }; 142 143 /* 144 * wxPrintDialogData 145 * Encapsulates information displayed and edited in the printer dialog box. 146 * Contains a wxPrintData object which is filled in according to the values retrieved 147 * from the dialog. 148 */ 149 150 class WXDLLIMPEXP_CORE wxPrintDialogData: public wxObject 151 { 152 public: 153 wxPrintDialogData(); 154 wxPrintDialogData(const wxPrintDialogData& dialogData); 155 wxPrintDialogData(const wxPrintData& printData); 156 virtual ~wxPrintDialogData(); 157 GetFromPage()158 int GetFromPage() const { return m_printFromPage; } GetToPage()159 int GetToPage() const { return m_printToPage; } GetMinPage()160 int GetMinPage() const { return m_printMinPage; } GetMaxPage()161 int GetMaxPage() const { return m_printMaxPage; } GetNoCopies()162 int GetNoCopies() const { return m_printNoCopies; } GetAllPages()163 bool GetAllPages() const { return m_printAllPages; } GetSelection()164 bool GetSelection() const { return m_printSelection; } GetCollate()165 bool GetCollate() const { return m_printCollate; } GetPrintToFile()166 bool GetPrintToFile() const { return m_printToFile; } 167 SetFromPage(int v)168 void SetFromPage(int v) { m_printFromPage = v; } SetToPage(int v)169 void SetToPage(int v) { m_printToPage = v; } SetMinPage(int v)170 void SetMinPage(int v) { m_printMinPage = v; } SetMaxPage(int v)171 void SetMaxPage(int v) { m_printMaxPage = v; } SetNoCopies(int v)172 void SetNoCopies(int v) { m_printNoCopies = v; } SetAllPages(bool flag)173 void SetAllPages(bool flag) { m_printAllPages = flag; } SetSelection(bool flag)174 void SetSelection(bool flag) { m_printSelection = flag; } SetCollate(bool flag)175 void SetCollate(bool flag) { m_printCollate = flag; } SetPrintToFile(bool flag)176 void SetPrintToFile(bool flag) { m_printToFile = flag; } 177 EnablePrintToFile(bool flag)178 void EnablePrintToFile(bool flag) { m_printEnablePrintToFile = flag; } EnableSelection(bool flag)179 void EnableSelection(bool flag) { m_printEnableSelection = flag; } EnablePageNumbers(bool flag)180 void EnablePageNumbers(bool flag) { m_printEnablePageNumbers = flag; } EnableHelp(bool flag)181 void EnableHelp(bool flag) { m_printEnableHelp = flag; } 182 GetEnablePrintToFile()183 bool GetEnablePrintToFile() const { return m_printEnablePrintToFile; } GetEnableSelection()184 bool GetEnableSelection() const { return m_printEnableSelection; } GetEnablePageNumbers()185 bool GetEnablePageNumbers() const { return m_printEnablePageNumbers; } GetEnableHelp()186 bool GetEnableHelp() const { return m_printEnableHelp; } 187 188 // Is this data OK for showing the print dialog? Ok()189 bool Ok() const { return IsOk(); } IsOk()190 bool IsOk() const { return m_printData.IsOk() ; } 191 GetPrintData()192 wxPrintData& GetPrintData() { return m_printData; } SetPrintData(const wxPrintData & printData)193 void SetPrintData(const wxPrintData& printData) { m_printData = printData; } 194 195 void operator=(const wxPrintDialogData& data); 196 void operator=(const wxPrintData& data); // Sets internal m_printData member 197 198 private: 199 int m_printFromPage; 200 int m_printToPage; 201 int m_printMinPage; 202 int m_printMaxPage; 203 int m_printNoCopies; 204 bool m_printAllPages; 205 bool m_printCollate; 206 bool m_printToFile; 207 bool m_printSelection; 208 bool m_printEnableSelection; 209 bool m_printEnablePageNumbers; 210 bool m_printEnableHelp; 211 bool m_printEnablePrintToFile; 212 wxPrintData m_printData; 213 214 private: 215 wxDECLARE_DYNAMIC_CLASS(wxPrintDialogData); 216 }; 217 218 /* 219 * This is the data used (and returned) by the wxPageSetupDialog. 220 */ 221 222 // Compatibility with old name 223 #define wxPageSetupData wxPageSetupDialogData 224 225 class WXDLLIMPEXP_CORE wxPageSetupDialogData: public wxObject 226 { 227 public: 228 wxPageSetupDialogData(); 229 wxPageSetupDialogData(const wxPageSetupDialogData& dialogData); 230 wxPageSetupDialogData(const wxPrintData& printData); 231 virtual ~wxPageSetupDialogData(); 232 GetPaperSize()233 wxSize GetPaperSize() const { return m_paperSize; } GetPaperId()234 wxPaperSize GetPaperId() const { return m_printData.GetPaperId(); } GetMinMarginTopLeft()235 wxPoint GetMinMarginTopLeft() const { return m_minMarginTopLeft; } GetMinMarginBottomRight()236 wxPoint GetMinMarginBottomRight() const { return m_minMarginBottomRight; } GetMarginTopLeft()237 wxPoint GetMarginTopLeft() const { return m_marginTopLeft; } GetMarginBottomRight()238 wxPoint GetMarginBottomRight() const { return m_marginBottomRight; } 239 GetDefaultMinMargins()240 bool GetDefaultMinMargins() const { return m_defaultMinMargins; } GetEnableMargins()241 bool GetEnableMargins() const { return m_enableMargins; } GetEnableOrientation()242 bool GetEnableOrientation() const { return m_enableOrientation; } GetEnablePaper()243 bool GetEnablePaper() const { return m_enablePaper; } GetEnablePrinter()244 bool GetEnablePrinter() const { return m_enablePrinter; } GetDefaultInfo()245 bool GetDefaultInfo() const { return m_getDefaultInfo; } GetEnableHelp()246 bool GetEnableHelp() const { return m_enableHelp; } 247 248 // Is this data OK for showing the page setup dialog? Ok()249 bool Ok() const { return IsOk(); } IsOk()250 bool IsOk() const { return m_printData.IsOk() ; } 251 252 // If a corresponding paper type is found in the paper database, will set the m_printData 253 // paper size id member as well. 254 void SetPaperSize(const wxSize& sz); 255 SetPaperId(wxPaperSize id)256 void SetPaperId(wxPaperSize id) { m_printData.SetPaperId(id); } 257 258 // Sets the wxPrintData id, plus the paper width/height if found in the paper database. 259 void SetPaperSize(wxPaperSize id); 260 SetMinMarginTopLeft(const wxPoint & pt)261 void SetMinMarginTopLeft(const wxPoint& pt) { m_minMarginTopLeft = pt; } SetMinMarginBottomRight(const wxPoint & pt)262 void SetMinMarginBottomRight(const wxPoint& pt) { m_minMarginBottomRight = pt; } SetMarginTopLeft(const wxPoint & pt)263 void SetMarginTopLeft(const wxPoint& pt) { m_marginTopLeft = pt; } SetMarginBottomRight(const wxPoint & pt)264 void SetMarginBottomRight(const wxPoint& pt) { m_marginBottomRight = pt; } SetDefaultMinMargins(bool flag)265 void SetDefaultMinMargins(bool flag) { m_defaultMinMargins = flag; } SetDefaultInfo(bool flag)266 void SetDefaultInfo(bool flag) { m_getDefaultInfo = flag; } 267 EnableMargins(bool flag)268 void EnableMargins(bool flag) { m_enableMargins = flag; } EnableOrientation(bool flag)269 void EnableOrientation(bool flag) { m_enableOrientation = flag; } EnablePaper(bool flag)270 void EnablePaper(bool flag) { m_enablePaper = flag; } EnablePrinter(bool flag)271 void EnablePrinter(bool flag) { m_enablePrinter = flag; } EnableHelp(bool flag)272 void EnableHelp(bool flag) { m_enableHelp = flag; } 273 274 // Use paper size defined in this object to set the wxPrintData 275 // paper id 276 void CalculateIdFromPaperSize(); 277 278 // Use paper id in wxPrintData to set this object's paper size 279 void CalculatePaperSizeFromId(); 280 281 wxPageSetupDialogData& operator=(const wxPageSetupDialogData& data); 282 wxPageSetupDialogData& operator=(const wxPrintData& data); 283 GetPrintData()284 wxPrintData& GetPrintData() { return m_printData; } GetPrintData()285 const wxPrintData& GetPrintData() const { return m_printData; } 286 void SetPrintData(const wxPrintData& printData); 287 288 private: 289 wxSize m_paperSize; // The dimensions selected by the user (on return, same as in wxPrintData?) 290 wxPoint m_minMarginTopLeft; 291 wxPoint m_minMarginBottomRight; 292 wxPoint m_marginTopLeft; 293 wxPoint m_marginBottomRight; 294 bool m_defaultMinMargins; 295 bool m_enableMargins; 296 bool m_enableOrientation; 297 bool m_enablePaper; 298 bool m_enablePrinter; 299 bool m_getDefaultInfo; // Equiv. to PSD_RETURNDEFAULT 300 bool m_enableHelp; 301 wxPrintData m_printData; 302 303 private: 304 wxDECLARE_DYNAMIC_CLASS(wxPageSetupDialogData); 305 }; 306 307 #endif // wxUSE_PRINTING_ARCHITECTURE 308 309 #endif 310 // _WX_CMNDATA_H_BASE_ 311