corrected warnings when compiled with -Wall -W
[wxWidgets.git] / include / wx / cmndata.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: cmndata.h
3 // Purpose: Common GDI data classes
4 // Author: Julian Smart and others
5 // Modified by:
6 // Created: 01/02/97
7 // RCS-ID: $Id$
8 // Copyright: (c)
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_CMNDATA_H_BASE_
13 #define _WX_CMNDATA_H_BASE_
14
15 #ifdef __GNUG__
16 #pragma interface "cmndata.h"
17 #endif
18
19 #include "wx/window.h"
20 #include "wx/font.h"
21 #include "wx/colour.h"
22 #include "wx/gdicmn.h"
23
24 #if (defined(__WXMOTIF__) || defined(__WXX11__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMAC__)) && wxUSE_POSTSCRIPT
25 class WXDLLEXPORT wxPrintSetupData;
26 #endif
27
28 class WXDLLEXPORT wxColourData: public wxObject
29 {
30 DECLARE_DYNAMIC_CLASS(wxColourData)
31 public:
32 wxColourData();
33 wxColourData(const wxColourData& data);
34 ~wxColourData();
35
36 void SetChooseFull(bool flag) { chooseFull = flag; }
37 bool GetChooseFull() const { return chooseFull; }
38 void SetColour(const wxColour& colour) { dataColour = colour; }
39 const wxColour& GetColour() const { return dataColour; }
40 wxColour& GetColour() { return dataColour; }
41
42 // Array of 16 custom colours
43 void SetCustomColour(int i, const wxColour& colour);
44 wxColour GetCustomColour(int i);
45
46 void operator=(const wxColourData& data);
47
48 public:
49 wxColour dataColour;
50 wxColour custColours[16];
51 bool chooseFull;
52 };
53
54 class WXDLLEXPORT wxFontData: public wxObject
55 {
56 DECLARE_DYNAMIC_CLASS(wxFontData)
57 public:
58 wxFontData();
59 ~wxFontData();
60
61 wxFontData(const wxFontData& data)
62 : wxObject()
63 , fontColour(data.fontColour)
64 , showHelp(data.showHelp)
65 , allowSymbols(data.allowSymbols)
66 , enableEffects(data.enableEffects)
67 , initialFont(data.initialFont)
68 , chosenFont(data.chosenFont)
69 , minSize(data.minSize)
70 , maxSize(data.maxSize)
71 , m_encoding(data.m_encoding)
72 , m_encodingInfo(data.m_encodingInfo)
73 {
74 }
75
76 wxFontData& operator=(const wxFontData& data)
77 {
78 (*this) = data;
79 return *this;
80 }
81
82 void SetAllowSymbols(bool flag) { allowSymbols = flag; }
83 bool GetAllowSymbols() const { return allowSymbols; }
84
85 void SetColour(const wxColour& colour) { fontColour = colour; }
86 wxColour &GetColour() { return fontColour; }
87
88 void SetShowHelp(bool flag) { showHelp = flag; }
89 bool GetShowHelp() const { return showHelp; }
90
91 void EnableEffects(bool flag) { enableEffects = flag; }
92 bool GetEnableEffects() const { return enableEffects; }
93
94 void SetInitialFont(const wxFont& font) { initialFont = font; }
95 wxFont GetInitialFont() const { return initialFont; }
96
97 void SetChosenFont(const wxFont& font) { chosenFont = font; }
98 wxFont GetChosenFont() const { return chosenFont; }
99
100 void SetRange(int minRange, int maxRange) { minSize = minRange; maxSize = maxRange; }
101
102 // encoding info is split into 2 parts: the logical wxWin encoding
103 // (wxFontEncoding) and a structure containing the native parameters for
104 // it (wxNativeEncodingInfo)
105 wxFontEncoding GetEncoding() const { return m_encoding; }
106 void SetEncoding(wxFontEncoding encoding) { m_encoding = encoding; }
107
108 wxNativeEncodingInfo& EncodingInfo() { return m_encodingInfo; }
109
110 public:
111 wxColour fontColour;
112 bool showHelp;
113 bool allowSymbols;
114 bool enableEffects;
115 wxFont initialFont;
116 wxFont chosenFont;
117 int minSize;
118 int maxSize;
119
120 private:
121 wxFontEncoding m_encoding;
122 wxNativeEncodingInfo m_encodingInfo;
123 };
124
125 #if wxUSE_PRINTING_ARCHITECTURE
126 /*
127 * wxPrintData
128 * Encapsulates printer information (not printer dialog information)
129 */
130
131 class WXDLLEXPORT wxPrintData: public wxObject
132 {
133 DECLARE_DYNAMIC_CLASS(wxPrintData)
134
135 wxPrintData();
136 wxPrintData(const wxPrintData& printData);
137 ~wxPrintData();
138
139 int GetNoCopies() const { return m_printNoCopies; };
140 bool GetCollate() const { return m_printCollate; };
141 int GetOrientation() const { return m_printOrientation; };
142
143 const wxString& GetPrinterName() const { return m_printerName; }
144 bool GetColour() const { return m_colour; }
145 wxDuplexMode GetDuplex() const { return m_duplexMode; }
146 wxPaperSize GetPaperId() const { return m_paperId; }
147 const wxSize& GetPaperSize() const { return m_paperSize; } // Not used yet: confusable with paper size
148 // in wxPageSetupDialogData
149 wxPrintQuality GetQuality() const { return m_printQuality; }
150
151 void SetNoCopies(int v) { m_printNoCopies = v; };
152 void SetCollate(bool flag) { m_printCollate = flag; };
153 void SetOrientation(int orient) { m_printOrientation = orient; };
154
155 void SetPrinterName(const wxString& name) { m_printerName = name; }
156 void SetColour(bool colour) { m_colour = colour; }
157 void SetDuplex(wxDuplexMode duplex) { m_duplexMode = duplex; }
158 void SetPaperId(wxPaperSize sizeId) { m_paperId = sizeId; }
159 void SetPaperSize(const wxSize& sz) { m_paperSize = sz; }
160 void SetQuality(wxPrintQuality quality) { m_printQuality = quality; }
161
162 // PostScript-specific data
163 const wxString& GetPrinterCommand() const { return m_printerCommand; }
164 const wxString& GetPrinterOptions() const { return m_printerOptions; }
165 const wxString& GetPreviewCommand() const { return m_previewCommand; }
166 const wxString& GetFilename() const { return m_filename; }
167 const wxString& GetFontMetricPath() const { return m_afmPath; }
168 double GetPrinterScaleX() const { return m_printerScaleX; }
169 double GetPrinterScaleY() const { return m_printerScaleY; }
170 long GetPrinterTranslateX() const { return m_printerTranslateX; }
171 long GetPrinterTranslateY() const { return m_printerTranslateY; }
172 wxPrintMode GetPrintMode() const { return m_printMode; }
173
174 void SetPrinterCommand(const wxString& command) { m_printerCommand = command; }
175 void SetPrinterOptions(const wxString& options) { m_printerOptions = options; }
176 void SetPreviewCommand(const wxString& command) { m_previewCommand = command; }
177 void SetFilename(const wxString& filename) { m_filename = filename; }
178 void SetFontMetricPath(const wxString& path) { m_afmPath = path; }
179 void SetPrinterScaleX(double x) { m_printerScaleX = x; }
180 void SetPrinterScaleY(double y) { m_printerScaleY = y; }
181 void SetPrinterScaling(double x, double y) { m_printerScaleX = x; m_printerScaleY = y; }
182 void SetPrinterTranslateX(long x) { m_printerTranslateX = x; }
183 void SetPrinterTranslateY(long y) { m_printerTranslateY = y; }
184 void SetPrinterTranslation(long x, long y) { m_printerTranslateX = x; m_printerTranslateY = y; }
185 void SetPrintMode(wxPrintMode printMode) { m_printMode = printMode; }
186
187 void operator=(const wxPrintData& data);
188
189 // For compatibility
190 #if (defined(__WXMOTIF__) || defined(__WXX11__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMAC__)) && wxUSE_POSTSCRIPT
191 void operator=(const wxPrintSetupData& setupData);
192 #endif
193
194 #if defined(__WXMSW__)
195 // Convert to/from the DEVMODE structure
196 void ConvertToNative();
197 void ConvertFromNative();
198 void* GetNativeData() const { return m_devMode; }
199 void SetNativeData(void* data) { m_devMode = data; }
200 void* GetNativeDataDevNames() const { return m_devNames; }
201 void SetNativeDataDevNames(void* data) { m_devNames = data; }
202 #elif defined(__WXMAC__)
203 void ConvertToNative();
204 void ConvertFromNative();
205 #endif
206
207 public:
208 #if defined(__WXMSW__)
209 void* m_devMode;
210 void* m_devNames;
211 #elif defined(__WXMAC__)
212 void* m_macPageFormat ;
213 void* m_macPrintSettings ;
214 #endif
215
216 private:
217
218 int m_printNoCopies;
219 int m_printOrientation;
220 bool m_printCollate;
221
222 // New members, 24/3/99
223 wxString m_printerName;
224 bool m_colour;
225 wxDuplexMode m_duplexMode;
226 wxPrintQuality m_printQuality;
227 wxPaperSize m_paperId;
228 wxSize m_paperSize;
229
230 // PostScript-specific data
231 wxString m_printerCommand;
232 wxString m_previewCommand;
233 wxString m_printerOptions;
234 wxString m_filename;
235 wxString m_afmPath;
236 double m_printerScaleX;
237 double m_printerScaleY;
238 long m_printerTranslateX;
239 long m_printerTranslateY;
240 wxPrintMode m_printMode;
241 };
242
243 /*
244 * wxPrintDialogData
245 * Encapsulates information displayed and edited in the printer dialog box.
246 * Contains a wxPrintData object which is filled in according to the values retrieved
247 * from the dialog.
248 */
249
250 class WXDLLEXPORT wxPrintDialogData: public wxObject
251 {
252 DECLARE_DYNAMIC_CLASS(wxPrintDialogData)
253
254 wxPrintDialogData();
255 wxPrintDialogData(const wxPrintDialogData& dialogData);
256 wxPrintDialogData(const wxPrintData& printData);
257 ~wxPrintDialogData();
258
259 int GetFromPage() const { return m_printFromPage; };
260 int GetToPage() const { return m_printToPage; };
261 int GetMinPage() const { return m_printMinPage; };
262 int GetMaxPage() const { return m_printMaxPage; };
263 int GetNoCopies() const { return m_printNoCopies; };
264 bool GetAllPages() const { return m_printAllPages; };
265 bool GetSelection() const { return m_printSelection; };
266 bool GetCollate() const { return m_printCollate; };
267 bool GetPrintToFile() const { return m_printToFile; };
268 bool GetSetupDialog() const { return m_printSetupDialog; };
269
270 void SetFromPage(int v) { m_printFromPage = v; };
271 void SetToPage(int v) { m_printToPage = v; };
272 void SetMinPage(int v) { m_printMinPage = v; };
273 void SetMaxPage(int v) { m_printMaxPage = v; };
274 void SetNoCopies(int v) { m_printNoCopies = v; };
275 void SetAllPages(bool flag) { m_printAllPages = flag; };
276 void SetSelection(bool flag) { m_printSelection = flag; };
277 void SetCollate(bool flag) { m_printCollate = flag; };
278 void SetPrintToFile(bool flag) { m_printToFile = flag; };
279 void SetSetupDialog(bool flag) { m_printSetupDialog = flag; };
280
281 void EnablePrintToFile(bool flag) { m_printEnablePrintToFile = flag; };
282 void EnableSelection(bool flag) { m_printEnableSelection = flag; };
283 void EnablePageNumbers(bool flag) { m_printEnablePageNumbers = flag; };
284 void EnableHelp(bool flag) { m_printEnableHelp = flag; };
285
286 bool GetEnablePrintToFile() const { return m_printEnablePrintToFile; };
287 bool GetEnableSelection() const { return m_printEnableSelection; };
288 bool GetEnablePageNumbers() const { return m_printEnablePageNumbers; };
289 bool GetEnableHelp() const { return m_printEnableHelp; };
290
291 wxPrintData& GetPrintData() { return m_printData; }
292 void SetPrintData(const wxPrintData& printData) { m_printData = printData; }
293
294 void operator=(const wxPrintDialogData& data);
295 void operator=(const wxPrintData& data); // Sets internal m_printData member
296
297 #ifdef __WXMSW__
298 // Convert to/from the PRINTDLG structure
299 void ConvertToNative();
300 void ConvertFromNative();
301 void SetOwnerWindow(wxWindow* win);
302 void* GetNativeData() const { return m_printDlgData; }
303 #elif defined(__WXMAC__)
304 void ConvertToNative();
305 void ConvertFromNative();
306 #endif
307
308 #ifdef __WXMSW__
309 void* m_printDlgData;
310 #endif
311
312 private:
313
314 int m_printFromPage;
315 int m_printToPage;
316 int m_printMinPage;
317 int m_printMaxPage;
318 int m_printNoCopies;
319 bool m_printAllPages;
320 bool m_printCollate;
321 bool m_printToFile;
322 bool m_printSelection;
323 bool m_printEnableSelection;
324 bool m_printEnablePageNumbers;
325 bool m_printEnableHelp;
326 bool m_printEnablePrintToFile;
327 bool m_printSetupDialog;
328
329 wxPrintData m_printData;
330 };
331
332 /*
333 * This is the data used (and returned) by the wxPageSetupDialog.
334 */
335
336 // Compatibility with old name
337 #define wxPageSetupData wxPageSetupDialogData
338
339 class WXDLLEXPORT wxPageSetupDialogData: public wxObject
340 {
341 DECLARE_DYNAMIC_CLASS(wxPageSetupDialogData)
342
343 public:
344 wxPageSetupDialogData();
345 wxPageSetupDialogData(const wxPageSetupDialogData& dialogData);
346 wxPageSetupDialogData(const wxPrintData& printData);
347 ~wxPageSetupDialogData();
348
349 wxSize GetPaperSize() const { return m_paperSize; };
350 wxPaperSize GetPaperId() const { return m_printData.GetPaperId(); };
351 wxPoint GetMinMarginTopLeft() const { return m_minMarginTopLeft; };
352 wxPoint GetMinMarginBottomRight() const { return m_minMarginBottomRight; };
353 wxPoint GetMarginTopLeft() const { return m_marginTopLeft; };
354 wxPoint GetMarginBottomRight() const { return m_marginBottomRight; };
355
356 bool GetDefaultMinMargins() const { return m_defaultMinMargins; };
357 bool GetEnableMargins() const { return m_enableMargins; };
358 bool GetEnableOrientation() const { return m_enableOrientation; };
359 bool GetEnablePaper() const { return m_enablePaper; };
360 bool GetEnablePrinter() const { return m_enablePrinter; };
361 bool GetDefaultInfo() const { return m_getDefaultInfo; };
362 bool GetEnableHelp() const { return m_enableHelp; };
363
364 // If a corresponding paper type is found in the paper database, will set the m_printData
365 // paper size id member as well.
366 void SetPaperSize(const wxSize& sz);
367
368 void SetPaperId(wxPaperSize id) { m_printData.SetPaperId(id); };
369
370 // Sets the wxPrintData id, plus the paper width/height if found in the paper database.
371 void SetPaperSize(wxPaperSize id);
372
373 void SetMinMarginTopLeft(const wxPoint& pt) { m_minMarginTopLeft = pt; };
374 void SetMinMarginBottomRight(const wxPoint& pt) { m_minMarginBottomRight = pt; };
375 void SetMarginTopLeft(const wxPoint& pt) { m_marginTopLeft = pt; };
376 void SetMarginBottomRight(const wxPoint& pt) { m_marginBottomRight = pt; };
377 void SetDefaultMinMargins(bool flag) { m_defaultMinMargins = flag; };
378 void SetDefaultInfo(bool flag) { m_getDefaultInfo = flag; };
379
380 void EnableMargins(bool flag) { m_enableMargins = flag; };
381 void EnableOrientation(bool flag) { m_enableOrientation = flag; };
382 void EnablePaper(bool flag) { m_enablePaper = flag; };
383 void EnablePrinter(bool flag) { m_enablePrinter = flag; };
384 void EnableHelp(bool flag) { m_enableHelp = flag; };
385
386 #if defined(__WIN95__)
387 // Convert to/from the PAGESETUPDLG structure
388 void ConvertToNative();
389 void ConvertFromNative();
390 void SetOwnerWindow(wxWindow* win);
391 void* GetNativeData() const { return m_pageSetupData; }
392 #elif defined(__WXMAC__)
393 void ConvertToNative();
394 void ConvertFromNative();
395 #endif
396
397 // Use paper size defined in this object to set the wxPrintData
398 // paper id
399 void CalculateIdFromPaperSize();
400
401 // Use paper id in wxPrintData to set this object's paper size
402 void CalculatePaperSizeFromId();
403
404 wxPageSetupDialogData& operator=(const wxPageSetupData& data);
405 wxPageSetupDialogData& operator=(const wxPrintData& data);
406
407 wxPrintData& GetPrintData() { return m_printData; }
408 void SetPrintData(const wxPrintData& printData) { m_printData = printData; }
409
410 #if defined(__WIN95__)
411 void* m_pageSetupData;
412 #endif
413
414 private:
415
416 wxSize m_paperSize; // The dimensions selected by the user (on return, same as in wxPrintData?)
417 wxPoint m_minMarginTopLeft;
418 wxPoint m_minMarginBottomRight;
419 wxPoint m_marginTopLeft;
420 wxPoint m_marginBottomRight;
421
422 // Flags
423 bool m_defaultMinMargins;
424 bool m_enableMargins;
425 bool m_enableOrientation;
426 bool m_enablePaper;
427 bool m_enablePrinter;
428 bool m_getDefaultInfo; // Equiv. to PSD_RETURNDEFAULT
429 bool m_enableHelp;
430
431 wxPrintData m_printData;
432 };
433
434 #endif // wxUSE_PRINTING_ARCHITECTURE
435
436 #endif
437 // _WX_CMNDATA_H_BASE_