X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2049ba38adafa0ec146880de29f26e32dd69a125..2ce7af354a12de8cf0d80d27f6958c6ccd95f766:/include/wx/cmndata.h diff --git a/include/wx/cmndata.h b/include/wx/cmndata.h index bb02f9ec6c..fd68bc4c2a 100644 --- a/include/wx/cmndata.h +++ b/include/wx/cmndata.h @@ -6,218 +6,450 @@ // Created: 01/02/97 // RCS-ID: $Id$ // Copyright: (c) -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __CMNDATAH_BASE__ -#define __CMNDATAH_BASE__ +#ifndef _WX_CMNDATA_H_BASE_ +#define _WX_CMNDATA_H_BASE_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "cmndata.h" #endif +#include "wx/window.h" +#include "wx/font.h" +#include "wx/colour.h" +#include "wx/gdicmn.h" + class WXDLLEXPORT wxColourData: public wxObject { - DECLARE_DYNAMIC_CLASS(wxColourData) - public: - wxColour dataColour; - wxColour custColours[16]; - bool chooseFull; +public: + wxColourData(); + wxColourData(const wxColourData& data); + ~wxColourData(); + + void SetChooseFull(bool flag) { chooseFull = flag; } + bool GetChooseFull() const { return chooseFull; } + void SetColour(const wxColour& colour) { dataColour = colour; } + const wxColour& GetColour() const { return dataColour; } + wxColour& GetColour() { return dataColour; } + + // Array of 16 custom colours + void SetCustomColour(int i, const wxColour& colour); + wxColour GetCustomColour(int i); + + void operator=(const wxColourData& data); + +public: + wxColour dataColour; + wxColour custColours[16]; + bool chooseFull; + +private: + DECLARE_DYNAMIC_CLASS(wxColourData) +}; - wxColourData(void); - ~wxColourData(void); +class WXDLLEXPORT wxFontData: public wxObject +{ +public: + wxFontData(); + ~wxFontData(); + + wxFontData(const wxFontData& data) + : wxObject() + , fontColour(data.fontColour) + , showHelp(data.showHelp) + , allowSymbols(data.allowSymbols) + , enableEffects(data.enableEffects) + , initialFont(data.initialFont) + , chosenFont(data.chosenFont) + , minSize(data.minSize) + , maxSize(data.maxSize) + , m_encoding(data.m_encoding) + , m_encodingInfo(data.m_encodingInfo) + { + } + + wxFontData& operator=(const wxFontData& data) + { + wxObject::operator=(data); + fontColour = data.fontColour; + showHelp = data.showHelp; + allowSymbols = data.allowSymbols; + enableEffects = data.enableEffects; + initialFont = data.initialFont; + chosenFont = data.chosenFont; + minSize = data.minSize; + maxSize = data.maxSize; + m_encoding = data.m_encoding; + m_encodingInfo = data.m_encodingInfo; + return *this; + } + + void SetAllowSymbols(bool flag) { allowSymbols = flag; } + bool GetAllowSymbols() const { return allowSymbols; } + + void SetColour(const wxColour& colour) { fontColour = colour; } + wxColour &GetColour() { return fontColour; } + + void SetShowHelp(bool flag) { showHelp = flag; } + bool GetShowHelp() const { return showHelp; } + + void EnableEffects(bool flag) { enableEffects = flag; } + bool GetEnableEffects() const { return enableEffects; } + + void SetInitialFont(const wxFont& font) { initialFont = font; } + wxFont GetInitialFont() const { return initialFont; } + + void SetChosenFont(const wxFont& font) { chosenFont = font; } + wxFont GetChosenFont() const { return chosenFont; } + + void SetRange(int minRange, int maxRange) { minSize = minRange; maxSize = maxRange; } + + // encoding info is split into 2 parts: the logical wxWin encoding + // (wxFontEncoding) and a structure containing the native parameters for + // it (wxNativeEncodingInfo) + wxFontEncoding GetEncoding() const { return m_encoding; } + void SetEncoding(wxFontEncoding encoding) { m_encoding = encoding; } + + wxNativeEncodingInfo& EncodingInfo() { return m_encodingInfo; } + +public: + wxColour fontColour; + bool showHelp; + bool allowSymbols; + bool enableEffects; + wxFont initialFont; + wxFont chosenFont; + int minSize; + int maxSize; + +private: + wxFontEncoding m_encoding; + wxNativeEncodingInfo m_encodingInfo; + +private: + DECLARE_DYNAMIC_CLASS(wxFontData) +}; + +#if wxUSE_PRINTING_ARCHITECTURE +/* + * wxPrintData + * Encapsulates printer information (not printer dialog information) + */ - inline void SetChooseFull(bool flag) { chooseFull = flag; } - inline bool GetChooseFull(void) { return chooseFull; } - inline void SetColour(wxColour& colour) { dataColour = colour; } - inline wxColour &GetColour(void) { return dataColour; } +#ifdef __WXMAC__ - // Array of 16 custom colours - void SetCustomColour(int i, wxColour& colour); - wxColour GetCustomColour(int i); +class wxNativePrintData ; - void operator=(const wxColourData& data); -}; +#endif -class WXDLLEXPORT wxFontData: public wxObject +class WXDLLEXPORT wxPrintData: public wxObject { - DECLARE_DYNAMIC_CLASS(wxFontData) - public: - wxColour fontColour; - bool showHelp; - bool allowSymbols; - bool enableEffects; - wxFont initialFont; - wxFont chosenFont; - int minSize; - int maxSize; - - wxFontData(void); - ~wxFontData(void); - - inline void SetAllowSymbols(bool flag) { allowSymbols = flag; } - inline bool GetAllowSymbols(void) { return allowSymbols; } - inline void SetColour(const wxColour& colour) { fontColour = colour; } - inline wxColour &GetColour(void) { return fontColour; } - inline void SetShowHelp(bool flag) { showHelp = flag; } - inline bool GetShowHelp(void) { return showHelp; } - inline void EnableEffects(bool flag) { enableEffects = flag; } - inline bool GetEnableEffects(void) { return enableEffects; } - inline void SetInitialFont(const wxFont& font) { initialFont = font; } - inline wxFont GetInitialFont(void) { return initialFont; } - inline void SetChosenFont(const wxFont& font) { chosenFont = font; } - inline wxFont GetChosenFont(void) { return chosenFont; } - inline void SetRange(int minRange, int maxRange) { minSize = minRange; maxSize = maxRange; } - - void operator=(const wxFontData& data); +public: + wxPrintData(); + wxPrintData(const wxPrintData& printData); + ~wxPrintData(); + + int GetNoCopies() const { return m_printNoCopies; }; + bool GetCollate() const { return m_printCollate; }; + int GetOrientation() const { return m_printOrientation; }; + + // Is this data OK for showing the print dialog? + bool Ok() const ; + + const wxString& GetPrinterName() const { return m_printerName; } + bool GetColour() const { return m_colour; } + wxDuplexMode GetDuplex() const { return m_duplexMode; } + wxPaperSize GetPaperId() const { return m_paperId; } + const wxSize& GetPaperSize() const { return m_paperSize; } // Not used yet: confusable with paper size + // in wxPageSetupDialogData + wxPrintQuality GetQuality() const { return m_printQuality; } + + void SetNoCopies(int v) { m_printNoCopies = v; }; + void SetCollate(bool flag) { m_printCollate = flag; }; + void SetOrientation(int orient) { m_printOrientation = orient; }; + + void SetPrinterName(const wxString& name) { m_printerName = name; } + void SetColour(bool colour) { m_colour = colour; } + void SetDuplex(wxDuplexMode duplex) { m_duplexMode = duplex; } + void SetPaperId(wxPaperSize sizeId) { m_paperId = sizeId; } + void SetPaperSize(const wxSize& sz) { m_paperSize = sz; } + void SetQuality(wxPrintQuality quality) { m_printQuality = quality; } + + // PostScript-specific data + const wxString& GetPrinterCommand() const { return m_printerCommand; } + const wxString& GetPrinterOptions() const { return m_printerOptions; } + const wxString& GetPreviewCommand() const { return m_previewCommand; } + const wxString& GetFilename() const { return m_filename; } + 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; } + wxPrintMode GetPrintMode() const { return m_printMode; } + + 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 SetFilename(const wxString& filename) { m_filename = filename; } + 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; } + void SetPrintMode(wxPrintMode printMode) { m_printMode = printMode; } + + void operator=(const wxPrintData& data); + +#if defined(__WXMSW__) + // Convert to/from the DEVMODE structure + void ConvertToNative(); + void ConvertFromNative(); + void* GetNativeData() const { return m_devMode; } + void SetNativeData(void* data) { m_devMode = data; } + void* GetNativeDataDevNames() const { return m_devNames; } + void SetNativeDataDevNames(void* data) { m_devNames = data; } +#elif defined(__WXMAC__) + void ConvertToNative(); + void ConvertFromNative(); +#endif + +public: +#if defined(__WXMSW__) + void* m_devMode; + void* m_devNames; +#elif defined(__WXMAC__) + wxNativePrintData* m_nativePrintData ; +#endif + +private: + + int m_printNoCopies; + int m_printOrientation; + bool m_printCollate; + + // New members, 24/3/99 + wxString m_printerName; + bool m_colour; + wxDuplexMode m_duplexMode; + wxPrintQuality m_printQuality; + wxPaperSize m_paperId; + wxSize m_paperSize; + + // PostScript-specific data + wxString m_printerCommand; + wxString m_previewCommand; + wxString m_printerOptions; + wxString m_filename; + wxString m_afmPath; + double m_printerScaleX; + double m_printerScaleY; + long m_printerTranslateX; + long m_printerTranslateY; + wxPrintMode m_printMode; + +private: + DECLARE_DYNAMIC_CLASS(wxPrintData) }; /* - * wxPrintData + * wxPrintDialogData * Encapsulates information displayed and edited in the printer dialog box. + * Contains a wxPrintData object which is filled in according to the values retrieved + * from the dialog. */ - -class WXDLLEXPORT wxPrintData: public wxObject + +class WXDLLEXPORT wxPrintDialogData: public wxObject { - DECLARE_DYNAMIC_CLASS(wxPrintData) +public: + wxPrintDialogData(); + wxPrintDialogData(const wxPrintDialogData& dialogData); + wxPrintDialogData(const wxPrintData& printData); + ~wxPrintDialogData(); + + int GetFromPage() const { return m_printFromPage; }; + int GetToPage() const { return m_printToPage; }; + int GetMinPage() const { return m_printMinPage; }; + int GetMaxPage() const { return m_printMaxPage; }; + int GetNoCopies() const { return m_printNoCopies; }; + bool GetAllPages() const { return m_printAllPages; }; + bool GetSelection() const { return m_printSelection; }; + bool GetCollate() const { return m_printCollate; }; + bool GetPrintToFile() const { return m_printToFile; }; + bool GetSetupDialog() const { return m_printSetupDialog; }; + + void SetFromPage(int v) { m_printFromPage = v; }; + void SetToPage(int v) { m_printToPage = v; }; + void SetMinPage(int v) { m_printMinPage = v; }; + void SetMaxPage(int v) { m_printMaxPage = v; }; + void SetNoCopies(int v) { m_printNoCopies = v; }; + void SetAllPages(bool flag) { m_printAllPages = flag; }; + void SetSelection(bool flag) { m_printSelection = flag; }; + void SetCollate(bool flag) { m_printCollate = flag; }; + void SetPrintToFile(bool flag) { m_printToFile = flag; }; + void SetSetupDialog(bool flag) { m_printSetupDialog = flag; }; + + void EnablePrintToFile(bool flag) { m_printEnablePrintToFile = flag; }; + void EnableSelection(bool flag) { m_printEnableSelection = flag; }; + void EnablePageNumbers(bool flag) { m_printEnablePageNumbers = flag; }; + void EnableHelp(bool flag) { m_printEnableHelp = flag; }; + + bool GetEnablePrintToFile() const { return m_printEnablePrintToFile; }; + bool GetEnableSelection() const { return m_printEnableSelection; }; + bool GetEnablePageNumbers() const { return m_printEnablePageNumbers; }; + bool GetEnableHelp() const { return m_printEnableHelp; }; + + // Is this data OK for showing the print dialog? + bool Ok() const { return m_printData.Ok() ; } + + wxPrintData& GetPrintData() { return m_printData; } + void SetPrintData(const wxPrintData& printData) { m_printData = printData; } + + void operator=(const wxPrintDialogData& data); + void operator=(const wxPrintData& data); // Sets internal m_printData member - public: #ifdef __WXMSW__ - void *printData; + // Convert to/from the PRINTDLG structure + void ConvertToNative(); + void ConvertFromNative(); + void SetOwnerWindow(wxWindow* win); + void* GetNativeData() const { return m_printDlgData; } +#elif defined(__WXMAC__) + void ConvertToNative(); + void ConvertFromNative(); #endif - int printFromPage; - int printToPage; - int printMinPage; - int printMaxPage; - int printNoCopies; - int printOrientation; - bool printAllPages; - bool printCollate; - bool printToFile; - bool printEnableSelection; - bool printEnablePageNumbers; - bool printEnableHelp; - bool printEnablePrintToFile; - bool printSetupDialog; - - wxPrintData(void); - ~wxPrintData(void); - - inline int GetFromPage(void) { return printFromPage; }; - inline int GetToPage(void) { return printToPage; }; - inline int GetMinPage(void) { return printMinPage; }; - inline int GetMaxPage(void) { return printMaxPage; }; - inline int GetNoCopies(void) { return printNoCopies; }; - inline bool GetAllPages(void) { return printAllPages; }; - inline bool GetCollate(void) { return printCollate; }; - inline bool GetPrintToFile(void) { return printToFile; }; - inline bool GetSetupDialog(void) { return printSetupDialog; }; - inline int GetOrientation(void) { return printOrientation; }; - - inline void SetFromPage(int v) { printFromPage = v; }; - inline void SetToPage(int v) { printToPage = v; }; - inline void SetMinPage(int v) { printMinPage = v; }; - inline void SetMaxPage(int v) { printMaxPage = v; }; - inline void SetNoCopies(int v) { printNoCopies = v; }; - inline void SetAllPages(bool flag) { printAllPages = flag; }; - inline void SetCollate(bool flag) { printCollate = flag; }; - inline void SetPrintToFile(bool flag) { printToFile = flag; }; - inline void SetSetupDialog(bool flag) { printSetupDialog = flag; }; - inline void SetOrientation(int orient) { printOrientation = orient; }; - - inline void EnablePrintToFile(bool flag) { printEnablePrintToFile = flag; }; - inline void EnableSelection(bool flag) { printEnableSelection = flag; }; - inline void EnablePageNumbers(bool flag) { printEnablePageNumbers = flag; }; - inline void EnableHelp(bool flag) { printEnableHelp = flag; }; - - inline bool GetEnablePrintToFile(void) { return printEnablePrintToFile; }; - inline bool GetEnableSelection(void) { return printEnableSelection; }; - inline bool GetEnablePageNumbers(void) { return printEnablePageNumbers; }; - inline bool GetEnableHelp(void) { return printEnableHelp; }; - - void operator=(const wxPrintData& data); #ifdef __WXMSW__ - // Convert to/from the PRINTDLG structure - void ConvertToNative(void); - void ConvertFromNative(void); - void SetOwnerWindow(wxWindow* win); - inline void* GetNativeData(void) { return printData; } + void* m_printDlgData; #endif + +private: + int m_printFromPage; + int m_printToPage; + int m_printMinPage; + int m_printMaxPage; + int m_printNoCopies; + bool m_printAllPages; + bool m_printCollate; + bool m_printToFile; + bool m_printSelection; + bool m_printEnableSelection; + bool m_printEnablePageNumbers; + bool m_printEnableHelp; + bool m_printEnablePrintToFile; + bool m_printSetupDialog; + wxPrintData m_printData; + +private: + DECLARE_DYNAMIC_CLASS(wxPrintDialogData) }; /* - * This is the data used (and returned) by the wxPageSetupDialog. - */ +* This is the data used (and returned) by the wxPageSetupDialog. +*/ + +// Compatibility with old name +#define wxPageSetupData wxPageSetupDialogData -class WXDLLEXPORT wxPageSetupData: public wxObject +class WXDLLEXPORT wxPageSetupDialogData: public wxObject { - DECLARE_DYNAMIC_CLASS(wxPageSetupData) +public: + wxPageSetupDialogData(); + wxPageSetupDialogData(const wxPageSetupDialogData& dialogData); + wxPageSetupDialogData(const wxPrintData& printData); + ~wxPageSetupDialogData(); + + wxSize GetPaperSize() const { return m_paperSize; }; + wxPaperSize GetPaperId() const { return m_printData.GetPaperId(); }; + wxPoint GetMinMarginTopLeft() const { return m_minMarginTopLeft; }; + wxPoint GetMinMarginBottomRight() const { return m_minMarginBottomRight; }; + wxPoint GetMarginTopLeft() const { return m_marginTopLeft; }; + wxPoint GetMarginBottomRight() const { return m_marginBottomRight; }; + + bool GetDefaultMinMargins() const { return m_defaultMinMargins; }; + bool GetEnableMargins() const { return m_enableMargins; }; + bool GetEnableOrientation() const { return m_enableOrientation; }; + bool GetEnablePaper() const { return m_enablePaper; }; + bool GetEnablePrinter() const { return m_enablePrinter; }; + bool GetDefaultInfo() const { return m_getDefaultInfo; }; + bool GetEnableHelp() const { return m_enableHelp; }; + + // Is this data OK for showing the page setup dialog? + bool Ok() const { return m_printData.Ok() ; } + + // If a corresponding paper type is found in the paper database, will set the m_printData + // paper size id member as well. + void SetPaperSize(const wxSize& sz); + + void SetPaperId(wxPaperSize id) { m_printData.SetPaperId(id); }; + + // Sets the wxPrintData id, plus the paper width/height if found in the paper database. + void SetPaperSize(wxPaperSize id); + + void SetMinMarginTopLeft(const wxPoint& pt) { m_minMarginTopLeft = pt; }; + void SetMinMarginBottomRight(const wxPoint& pt) { m_minMarginBottomRight = pt; }; + void SetMarginTopLeft(const wxPoint& pt) { m_marginTopLeft = pt; }; + void SetMarginBottomRight(const wxPoint& pt) { m_marginBottomRight = pt; }; + void SetDefaultMinMargins(bool flag) { m_defaultMinMargins = flag; }; + void SetDefaultInfo(bool flag) { m_getDefaultInfo = flag; }; + + void EnableMargins(bool flag) { m_enableMargins = flag; }; + void EnableOrientation(bool flag) { m_enableOrientation = flag; }; + void EnablePaper(bool flag) { m_enablePaper = flag; }; + void EnablePrinter(bool flag) { m_enablePrinter = flag; }; + void EnableHelp(bool flag) { m_enableHelp = flag; }; - public: #if defined(__WIN95__) - void* m_pageSetupData; + // Convert to/from the PAGESETUPDLG structure + void ConvertToNative(); + void ConvertFromNative(); + void SetOwnerWindow(wxWindow* win); + void* GetNativeData() const { return m_pageSetupData; } +#elif defined(__WXMAC__) + void ConvertToNative(); + void ConvertFromNative(); #endif - wxPoint m_paperSize; - wxPoint m_minMarginTopLeft; - wxPoint m_minMarginBottomRight; - wxPoint m_marginTopLeft; - wxPoint m_marginBottomRight; - int m_orientation; - - // Flags - bool m_defaultMinMargins; - bool m_enableMargins; - bool m_enableOrientation; - bool m_enablePaper; - bool m_enablePrinter; - bool m_getDefaultInfo; // Equiv. to PSD_RETURNDEFAULT - bool m_enableHelp; - - wxPageSetupData(void); - ~wxPageSetupData(void); - - inline wxPoint GetPaperSize(void) { return m_paperSize; }; - inline wxPoint GetMinMarginTopLeft(void) { return m_minMarginTopLeft; }; - inline wxPoint GetMinMarginBottomRight(void) { return m_minMarginBottomRight; }; - inline wxPoint GetMarginTopLeft(void) { return m_marginTopLeft; }; - inline wxPoint GetMarginBottomRight(void) { return m_marginBottomRight; }; - inline int GetOrientation(void) { return m_orientation; }; - - inline bool GetDefaultMinMargins(void) { return m_defaultMinMargins; }; - inline bool GetEnableMargins(void) { return m_enableMargins; }; - inline bool GetEnableOrientation(void) { return m_enableOrientation; }; - inline bool GetEnablePaper(void) { return m_enablePaper; }; - inline bool GetEnablePrinter(void) { return m_enablePrinter; }; - inline bool GetDefaultInfo(void) { return m_getDefaultInfo; }; - inline bool GetEnableHelp(void) { return m_enableHelp; }; - - inline void SetPaperSize(const wxPoint& pt) { m_paperSize = pt; }; - inline void SetMinMarginTopLeft(const wxPoint& pt) { m_minMarginTopLeft = pt; }; - inline void SetMinMarginBottomRight(const wxPoint& pt) { m_minMarginBottomRight = pt; }; - inline void SetMarginTopLeft(const wxPoint& pt) { m_marginTopLeft = pt; }; - inline void SetMarginBottomRight(const wxPoint& pt) { m_marginBottomRight = pt; }; - inline void SetOrientation(int orient) { m_orientation = orient; }; - inline void SetDefaultMinMargins(bool flag) { m_defaultMinMargins = flag; }; - inline void SetDefaultInfo(bool flag) { m_getDefaultInfo = flag; }; - - inline void EnableMargins(bool flag) { m_enableMargins = flag; }; - inline void EnableOrientation(bool flag) { m_enableOrientation = flag; }; - inline void EnablePaper(bool flag) { m_enablePaper = flag; }; - inline void EnablePrinter(bool flag) { m_enablePrinter = flag; }; - inline void EnableHelp(bool flag) { m_enableHelp = flag; }; + + // Use paper size defined in this object to set the wxPrintData + // paper id + void CalculateIdFromPaperSize(); + + // Use paper id in wxPrintData to set this object's paper size + void CalculatePaperSizeFromId(); + + wxPageSetupDialogData& operator=(const wxPageSetupData& data); + wxPageSetupDialogData& operator=(const wxPrintData& data); + + wxPrintData& GetPrintData() { return m_printData; } + void SetPrintData(const wxPrintData& printData) { m_printData = printData; } #if defined(__WIN95__) - // Convert to/from the PAGESETUPDLG structure - void ConvertToNative(void); - void ConvertFromNative(void); - void SetOwnerWindow(wxWindow* win); - inline void* GetNativeData(void) { return m_pageSetupData; } + void* m_pageSetupData; #endif - void operator=(const wxPageSetupData& data); +private: + wxSize m_paperSize; // The dimensions selected by the user (on return, same as in wxPrintData?) + wxPoint m_minMarginTopLeft; + wxPoint m_minMarginBottomRight; + wxPoint m_marginTopLeft; + wxPoint m_marginBottomRight; + bool m_defaultMinMargins; + bool m_enableMargins; + bool m_enableOrientation; + bool m_enablePaper; + bool m_enablePrinter; + bool m_getDefaultInfo; // Equiv. to PSD_RETURNDEFAULT + bool m_enableHelp; + wxPrintData m_printData; + +private: + DECLARE_DYNAMIC_CLASS(wxPageSetupDialogData) }; +#endif // wxUSE_PRINTING_ARCHITECTURE #endif - // __CMNDATAH_BASE__ +// _WX_CMNDATA_H_BASE_