1
/////////////////////////////////////////////////////////////////////////////
3
// Purpose: Common GDI data classes
4
// Author: Julian Smart and others
7
// RCS-ID: $Id: cmndata.h,v 1.53 2005/04/01 16:26:10 SC Exp $
9
// Licence: wxWindows licence
10
/////////////////////////////////////////////////////////////////////////////
12
#ifndef _WX_CMNDATA_H_BASE_
13
#define _WX_CMNDATA_H_BASE_
15
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
16
#pragma interface "cmndata.h"
19
#include "wx/window.h"
21
#include "wx/encinfo.h"
22
#include "wx/colour.h"
23
#include "wx/gdicmn.h"
26
#include "wx/stream.h"
30
class WXDLLEXPORT wxPrintNativeDataBase;
33
class WXDLLEXPORT wxColourData: public wxObject
37
wxColourData(const wxColourData& data);
40
void SetChooseFull(bool flag) { m_chooseFull = flag; }
41
bool GetChooseFull() const { return m_chooseFull; }
42
void SetColour(const wxColour& colour) { m_dataColour = colour; }
43
const wxColour& GetColour() const { return m_dataColour; }
44
wxColour& GetColour() { return m_dataColour; }
46
// Array of 16 custom colours
47
void SetCustomColour(int i, const wxColour& colour);
48
wxColour GetCustomColour(int i);
50
void operator=(const wxColourData& data);
53
wxColour m_dataColour;
54
wxColour m_custColours[16];
58
DECLARE_DYNAMIC_CLASS(wxColourData)
61
class WXDLLEXPORT wxFontData: public wxObject
67
wxFontData(const wxFontData& data)
69
, m_fontColour(data.m_fontColour)
70
, m_showHelp(data.m_showHelp)
71
, m_allowSymbols(data.m_allowSymbols)
72
, m_enableEffects(data.m_enableEffects)
73
, m_initialFont(data.m_initialFont)
74
, m_chosenFont(data.m_chosenFont)
75
, m_minSize(data.m_minSize)
76
, m_maxSize(data.m_maxSize)
77
, m_encoding(data.m_encoding)
78
, m_encodingInfo(data.m_encodingInfo)
82
wxFontData& operator=(const wxFontData& data)
84
wxObject::operator=(data);
85
m_fontColour = data.m_fontColour;
86
m_showHelp = data.m_showHelp;
87
m_allowSymbols = data.m_allowSymbols;
88
m_enableEffects = data.m_enableEffects;
89
m_initialFont = data.m_initialFont;
90
m_chosenFont = data.m_chosenFont;
91
m_minSize = data.m_minSize;
92
m_maxSize = data.m_maxSize;
93
m_encoding = data.m_encoding;
94
m_encodingInfo = data.m_encodingInfo;
98
void SetAllowSymbols(bool flag) { m_allowSymbols = flag; }
99
bool GetAllowSymbols() const { return m_allowSymbols; }
101
void SetColour(const wxColour& colour) { m_fontColour = colour; }
102
wxColour &GetColour() { return m_fontColour; }
104
void SetShowHelp(bool flag) { m_showHelp = flag; }
105
bool GetShowHelp() const { return m_showHelp; }
107
void EnableEffects(bool flag) { m_enableEffects = flag; }
108
bool GetEnableEffects() const { return m_enableEffects; }
110
void SetInitialFont(const wxFont& font) { m_initialFont = font; }
111
wxFont GetInitialFont() const { return m_initialFont; }
113
void SetChosenFont(const wxFont& font) { m_chosenFont = font; }
114
wxFont GetChosenFont() const { return m_chosenFont; }
116
void SetRange(int minRange, int maxRange) { m_minSize = minRange; m_maxSize = maxRange; }
118
// encoding info is split into 2 parts: the logical wxWin encoding
119
// (wxFontEncoding) and a structure containing the native parameters for
120
// it (wxNativeEncodingInfo)
121
wxFontEncoding GetEncoding() const { return m_encoding; }
122
void SetEncoding(wxFontEncoding encoding) { m_encoding = encoding; }
124
wxNativeEncodingInfo& EncodingInfo() { return m_encodingInfo; }
127
wxColour m_fontColour;
130
bool m_enableEffects;
131
wxFont m_initialFont;
137
wxFontEncoding m_encoding;
138
wxNativeEncodingInfo m_encodingInfo;
141
DECLARE_DYNAMIC_CLASS(wxFontData)
144
#if wxUSE_PRINTING_ARCHITECTURE
147
* Encapsulates printer information (not printer dialog information)
159
wxPRINTBIN_ENVMANUAL,
164
wxPRINTBIN_LARGECAPACITY,
166
wxPRINTBIN_FORMSOURCE,
172
class WXDLLEXPORT wxPrintData: public wxObject
176
wxPrintData(const wxPrintData& printData);
179
int GetNoCopies() const { return m_printNoCopies; }
180
bool GetCollate() const { return m_printCollate; }
181
int GetOrientation() const { return m_printOrientation; }
183
// Is this data OK for showing the print dialog?
186
const wxString& GetPrinterName() const { return m_printerName; }
187
bool GetColour() const { return m_colour; }
188
wxDuplexMode GetDuplex() const { return m_duplexMode; }
189
wxPaperSize GetPaperId() const { return m_paperId; }
190
const wxSize& GetPaperSize() const { return m_paperSize; } // Not used yet: confusable with paper size
191
// in wxPageSetupDialogData
192
wxPrintQuality GetQuality() const { return m_printQuality; }
193
wxPrintBin GetBin() const { return m_bin; }
194
wxPrintMode GetPrintMode() const { return m_printMode; }
196
void SetNoCopies(int v) { m_printNoCopies = v; }
197
void SetCollate(bool flag) { m_printCollate = flag; }
198
void SetOrientation(int orient) { m_printOrientation = orient; }
200
void SetPrinterName(const wxString& name) { m_printerName = name; }
201
void SetColour(bool colour) { m_colour = colour; }
202
void SetDuplex(wxDuplexMode duplex) { m_duplexMode = duplex; }
203
void SetPaperId(wxPaperSize sizeId) { m_paperId = sizeId; }
204
void SetPaperSize(const wxSize& sz) { m_paperSize = sz; }
205
void SetQuality(wxPrintQuality quality) { m_printQuality = quality; }
206
void SetBin(wxPrintBin bin) { m_bin = bin; }
207
void SetPrintMode(wxPrintMode printMode) { m_printMode = printMode; }
209
wxString GetFilename() const { return m_filename; }
210
void SetFilename( const wxString &filename ) { m_filename = filename; }
212
void operator=(const wxPrintData& data);
214
char* GetPrivData() const { return m_privData; }
215
int GetPrivDataLen() const { return m_privDataLen; }
216
void SetPrivData( char *privData, int len );
219
#if WXWIN_COMPATIBILITY_2_4
220
// PostScript-specific data
221
wxString GetPrinterCommand() const;
222
wxString GetPrinterOptions() const;
223
wxString GetPreviewCommand() const;
224
wxString GetFontMetricPath() const;
225
double GetPrinterScaleX() const;
226
double GetPrinterScaleY() const;
227
long GetPrinterTranslateX() const;
228
long GetPrinterTranslateY() const;
230
void SetPrinterCommand(const wxString& command);
231
void SetPrinterOptions(const wxString& options);
232
void SetPreviewCommand(const wxString& command);
233
void SetFontMetricPath(const wxString& path);
234
void SetPrinterScaleX(double x);
235
void SetPrinterScaleY(double y);
236
void SetPrinterScaling(double x, double y);
237
void SetPrinterTranslateX(long x);
238
void SetPrinterTranslateY(long y);
239
void SetPrinterTranslation(long x, long y);
242
// Convert between wxPrintData and native data
243
void ConvertToNative();
244
void ConvertFromNative();
245
// Holds the native print data
246
wxPrintNativeDataBase *GetNativeData() const { return m_nativeData; }
250
wxPrintMode m_printMode;
253
int m_printOrientation;
256
wxString m_printerName;
258
wxDuplexMode m_duplexMode;
259
wxPrintQuality m_printQuality;
260
wxPaperSize m_paperId;
268
wxPrintNativeDataBase *m_nativeData;
271
DECLARE_DYNAMIC_CLASS(wxPrintData)
276
* Encapsulates information displayed and edited in the printer dialog box.
277
* Contains a wxPrintData object which is filled in according to the values retrieved
281
class WXDLLEXPORT wxPrintDialogData: public wxObject
285
wxPrintDialogData(const wxPrintDialogData& dialogData);
286
wxPrintDialogData(const wxPrintData& printData);
287
~wxPrintDialogData();
289
int GetFromPage() const { return m_printFromPage; };
290
int GetToPage() const { return m_printToPage; };
291
int GetMinPage() const { return m_printMinPage; };
292
int GetMaxPage() const { return m_printMaxPage; };
293
int GetNoCopies() const { return m_printNoCopies; };
294
bool GetAllPages() const { return m_printAllPages; };
295
bool GetSelection() const { return m_printSelection; };
296
bool GetCollate() const { return m_printCollate; };
297
bool GetPrintToFile() const { return m_printToFile; };
298
#if WXWIN_COMPATIBILITY_2_4
299
bool GetSetupDialog() const { return m_printSetupDialog; };
301
void SetFromPage(int v) { m_printFromPage = v; };
302
void SetToPage(int v) { m_printToPage = v; };
303
void SetMinPage(int v) { m_printMinPage = v; };
304
void SetMaxPage(int v) { m_printMaxPage = v; };
305
void SetNoCopies(int v) { m_printNoCopies = v; };
306
void SetAllPages(bool flag) { m_printAllPages = flag; };
307
void SetSelection(bool flag) { m_printSelection = flag; };
308
void SetCollate(bool flag) { m_printCollate = flag; };
309
void SetPrintToFile(bool flag) { m_printToFile = flag; };
310
#if WXWIN_COMPATIBILITY_2_4
311
void SetSetupDialog(bool flag) { m_printSetupDialog = flag; };
313
void EnablePrintToFile(bool flag) { m_printEnablePrintToFile = flag; };
314
void EnableSelection(bool flag) { m_printEnableSelection = flag; };
315
void EnablePageNumbers(bool flag) { m_printEnablePageNumbers = flag; };
316
void EnableHelp(bool flag) { m_printEnableHelp = flag; };
318
bool GetEnablePrintToFile() const { return m_printEnablePrintToFile; };
319
bool GetEnableSelection() const { return m_printEnableSelection; };
320
bool GetEnablePageNumbers() const { return m_printEnablePageNumbers; };
321
bool GetEnableHelp() const { return m_printEnableHelp; };
323
// Is this data OK for showing the print dialog?
324
bool Ok() const { return m_printData.Ok() ; }
326
wxPrintData& GetPrintData() { return m_printData; }
327
void SetPrintData(const wxPrintData& printData) { m_printData = printData; }
329
void operator=(const wxPrintDialogData& data);
330
void operator=(const wxPrintData& data); // Sets internal m_printData member
338
bool m_printAllPages;
341
bool m_printSelection;
342
bool m_printEnableSelection;
343
bool m_printEnablePageNumbers;
344
bool m_printEnableHelp;
345
bool m_printEnablePrintToFile;
346
#if WXWIN_COMPATIBILITY_2_4
347
bool m_printSetupDialog;
349
wxPrintData m_printData;
352
DECLARE_DYNAMIC_CLASS(wxPrintDialogData)
356
* This is the data used (and returned) by the wxPageSetupDialog.
359
// Compatibility with old name
360
#define wxPageSetupData wxPageSetupDialogData
362
class WXDLLEXPORT wxPageSetupDialogData: public wxObject
365
wxPageSetupDialogData();
366
wxPageSetupDialogData(const wxPageSetupDialogData& dialogData);
367
wxPageSetupDialogData(const wxPrintData& printData);
368
~wxPageSetupDialogData();
370
wxSize GetPaperSize() const { return m_paperSize; };
371
wxPaperSize GetPaperId() const { return m_printData.GetPaperId(); };
372
wxPoint GetMinMarginTopLeft() const { return m_minMarginTopLeft; };
373
wxPoint GetMinMarginBottomRight() const { return m_minMarginBottomRight; };
374
wxPoint GetMarginTopLeft() const { return m_marginTopLeft; };
375
wxPoint GetMarginBottomRight() const { return m_marginBottomRight; };
377
bool GetDefaultMinMargins() const { return m_defaultMinMargins; };
378
bool GetEnableMargins() const { return m_enableMargins; };
379
bool GetEnableOrientation() const { return m_enableOrientation; };
380
bool GetEnablePaper() const { return m_enablePaper; };
381
bool GetEnablePrinter() const { return m_enablePrinter; };
382
bool GetDefaultInfo() const { return m_getDefaultInfo; };
383
bool GetEnableHelp() const { return m_enableHelp; };
385
// Is this data OK for showing the page setup dialog?
386
bool Ok() const { return m_printData.Ok() ; }
388
// If a corresponding paper type is found in the paper database, will set the m_printData
389
// paper size id member as well.
390
void SetPaperSize(const wxSize& sz);
392
void SetPaperId(wxPaperSize id) { m_printData.SetPaperId(id); };
394
// Sets the wxPrintData id, plus the paper width/height if found in the paper database.
395
void SetPaperSize(wxPaperSize id);
397
void SetMinMarginTopLeft(const wxPoint& pt) { m_minMarginTopLeft = pt; };
398
void SetMinMarginBottomRight(const wxPoint& pt) { m_minMarginBottomRight = pt; };
399
void SetMarginTopLeft(const wxPoint& pt) { m_marginTopLeft = pt; };
400
void SetMarginBottomRight(const wxPoint& pt) { m_marginBottomRight = pt; };
401
void SetDefaultMinMargins(bool flag) { m_defaultMinMargins = flag; };
402
void SetDefaultInfo(bool flag) { m_getDefaultInfo = flag; };
404
void EnableMargins(bool flag) { m_enableMargins = flag; };
405
void EnableOrientation(bool flag) { m_enableOrientation = flag; };
406
void EnablePaper(bool flag) { m_enablePaper = flag; };
407
void EnablePrinter(bool flag) { m_enablePrinter = flag; };
408
void EnableHelp(bool flag) { m_enableHelp = flag; };
410
// Use paper size defined in this object to set the wxPrintData
412
void CalculateIdFromPaperSize();
414
// Use paper id in wxPrintData to set this object's paper size
415
void CalculatePaperSizeFromId();
417
wxPageSetupDialogData& operator=(const wxPageSetupData& data);
418
wxPageSetupDialogData& operator=(const wxPrintData& data);
420
wxPrintData& GetPrintData() { return m_printData; }
421
void SetPrintData(const wxPrintData& printData);
424
wxSize m_paperSize; // The dimensions selected by the user (on return, same as in wxPrintData?)
425
wxPoint m_minMarginTopLeft;
426
wxPoint m_minMarginBottomRight;
427
wxPoint m_marginTopLeft;
428
wxPoint m_marginBottomRight;
429
bool m_defaultMinMargins;
430
bool m_enableMargins;
431
bool m_enableOrientation;
433
bool m_enablePrinter;
434
bool m_getDefaultInfo; // Equiv. to PSD_RETURNDEFAULT
436
wxPrintData m_printData;
439
DECLARE_DYNAMIC_CLASS(wxPageSetupDialogData)
442
#endif // wxUSE_PRINTING_ARCHITECTURE
445
// _WX_CMNDATA_H_BASE_