X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2049ba38adafa0ec146880de29f26e32dd69a125..240071a4153ad5a202f3de0eb8b8aba0213cc4dd:/include/wx/cmndata.h diff --git a/include/wx/cmndata.h b/include/wx/cmndata.h index bb02f9ec6c..31269412d8 100644 --- a/include/wx/cmndata.h +++ b/include/wx/cmndata.h @@ -1,223 +1,439 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: cmndata.h +// Name: wx/cmndata.h // Purpose: Common GDI data classes // Author: Julian Smart and others // Modified by: // 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__ -#pragma interface "cmndata.h" -#endif +#include "wx/window.h" +#include "wx/font.h" +#include "wx/encinfo.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; +#if wxUSE_STREAMS +#include "wx/stream.h" +#endif - wxColourData(void); - ~wxColourData(void); - 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; } +class WXDLLIMPEXP_FWD_CORE wxPrintNativeDataBase; - // Array of 16 custom colours - void SetCustomColour(int i, wxColour& colour); - wxColour GetCustomColour(int i); - void operator=(const wxColourData& data); +class WXDLLIMPEXP_CORE wxColourData : public wxObject +{ +public: + // number of custom colours we store + enum + { + NUM_CUSTOM = 16 + }; + + wxColourData(); + wxColourData(const wxColourData& data); + wxColourData& operator=(const wxColourData& data); + virtual ~wxColourData(); + + void SetChooseFull(bool flag) { m_chooseFull = flag; } + bool GetChooseFull() const { return m_chooseFull; } + void SetColour(const wxColour& colour) { m_dataColour = colour; } + const wxColour& GetColour() const { return m_dataColour; } + wxColour& GetColour() { return m_dataColour; } + + // SetCustomColour() modifies colours in an internal array of NUM_CUSTOM + // custom colours; + void SetCustomColour(int i, const wxColour& colour); + wxColour GetCustomColour(int i) const; + + // Serialize the object to a string and restore it from it + wxString ToString() const; + bool FromString(const wxString& str); + + + // public for backwards compatibility only: don't use directly +public: + wxColour m_dataColour; + wxColour m_custColours[NUM_CUSTOM]; + bool m_chooseFull; + +private: + DECLARE_DYNAMIC_CLASS(wxColourData) }; -class WXDLLEXPORT wxFontData: public wxObject +class WXDLLIMPEXP_CORE wxFontData : 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: + wxFontData(); + virtual ~wxFontData(); + + wxFontData(const wxFontData& data) + : wxObject(), + m_fontColour(data.m_fontColour), + m_showHelp(data.m_showHelp), + m_allowSymbols(data.m_allowSymbols), + m_enableEffects(data.m_enableEffects), + m_initialFont(data.m_initialFont), + m_chosenFont(data.m_chosenFont), + m_minSize(data.m_minSize), + m_maxSize(data.m_maxSize), + m_encoding(data.m_encoding), + m_encodingInfo(data.m_encodingInfo) + { + } + + wxFontData& operator=(const wxFontData& data) + { + if (&data != this) + { + wxObject::operator=(data); + m_fontColour = data.m_fontColour; + m_showHelp = data.m_showHelp; + m_allowSymbols = data.m_allowSymbols; + m_enableEffects = data.m_enableEffects; + m_initialFont = data.m_initialFont; + m_chosenFont = data.m_chosenFont; + m_minSize = data.m_minSize; + m_maxSize = data.m_maxSize; + m_encoding = data.m_encoding; + m_encodingInfo = data.m_encodingInfo; + } + return *this; + } + + void SetAllowSymbols(bool flag) { m_allowSymbols = flag; } + bool GetAllowSymbols() const { return m_allowSymbols; } + + void SetColour(const wxColour& colour) { m_fontColour = colour; } + const wxColour& GetColour() const { return m_fontColour; } + + void SetShowHelp(bool flag) { m_showHelp = flag; } + bool GetShowHelp() const { return m_showHelp; } + + void EnableEffects(bool flag) { m_enableEffects = flag; } + bool GetEnableEffects() const { return m_enableEffects; } + + void SetInitialFont(const wxFont& font) { m_initialFont = font; } + wxFont GetInitialFont() const { return m_initialFont; } + + void SetChosenFont(const wxFont& font) { m_chosenFont = font; } + wxFont GetChosenFont() const { return m_chosenFont; } + + void SetRange(int minRange, int maxRange) { m_minSize = minRange; m_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 for backwards compatibility only: don't use directly +public: + wxColour m_fontColour; + bool m_showHelp; + bool m_allowSymbols; + bool m_enableEffects; + wxFont m_initialFont; + wxFont m_chosenFont; + int m_minSize; + int m_maxSize; + +private: + wxFontEncoding m_encoding; + wxNativeEncodingInfo m_encodingInfo; + +private: + DECLARE_DYNAMIC_CLASS(wxFontData) }; +#if wxUSE_PRINTING_ARCHITECTURE /* * wxPrintData - * Encapsulates information displayed and edited in the printer dialog box. + * Encapsulates printer information (not printer dialog information) */ - -class WXDLLEXPORT wxPrintData: public wxObject + +enum wxPrintBin { - DECLARE_DYNAMIC_CLASS(wxPrintData) + wxPRINTBIN_DEFAULT, + + wxPRINTBIN_ONLYONE, + wxPRINTBIN_LOWER, + wxPRINTBIN_MIDDLE, + wxPRINTBIN_MANUAL, + wxPRINTBIN_ENVELOPE, + wxPRINTBIN_ENVMANUAL, + wxPRINTBIN_AUTO, + wxPRINTBIN_TRACTOR, + wxPRINTBIN_SMALLFMT, + wxPRINTBIN_LARGEFMT, + wxPRINTBIN_LARGECAPACITY, + wxPRINTBIN_CASSETTE, + wxPRINTBIN_FORMSOURCE, + + wxPRINTBIN_USER +}; - public: -#ifdef __WXMSW__ - void *printData; -#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; } -#endif +const int wxPRINTMEDIA_DEFAULT = 0; + +class WXDLLIMPEXP_CORE wxPrintData: public wxObject +{ +public: + wxPrintData(); + wxPrintData(const wxPrintData& printData); + virtual ~wxPrintData(); + + int GetNoCopies() const { return m_printNoCopies; } + bool GetCollate() const { return m_printCollate; } + int GetOrientation() const { return m_printOrientation; } + bool IsOrientationReversed() const { return m_printOrientationReversed; } + + // Is this data OK for showing the print dialog? + bool Ok() const { return IsOk(); } + bool IsOk() 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; } + wxPrintBin GetBin() const { return m_bin; } + wxPrintMode GetPrintMode() const { return m_printMode; } + int GetMedia() const { return m_media; } + + void SetNoCopies(int v) { m_printNoCopies = v; } + void SetCollate(bool flag) { m_printCollate = flag; } + void SetOrientation(int orient) { m_printOrientation = orient; } + void SetOrientationReversed(bool reversed) { m_printOrientationReversed = reversed; } + + 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; } + void SetBin(wxPrintBin bin) { m_bin = bin; } + void SetMedia(int media) { m_media = media; } + void SetPrintMode(wxPrintMode printMode) { m_printMode = printMode; } + + wxString GetFilename() const { return m_filename; } + void SetFilename( const wxString &filename ) { m_filename = filename; } + + wxPrintData& operator=(const wxPrintData& data); + + char* GetPrivData() const { return m_privData; } + int GetPrivDataLen() const { return m_privDataLen; } + void SetPrivData( char *privData, int len ); + + + // Convert between wxPrintData and native data + void ConvertToNative(); + void ConvertFromNative(); + // Holds the native print data + wxPrintNativeDataBase *GetNativeData() const { return m_nativeData; } + +private: + wxPrintBin m_bin; + int m_media; + wxPrintMode m_printMode; + + int m_printNoCopies; + int m_printOrientation; + bool m_printOrientationReversed; + bool m_printCollate; + + wxString m_printerName; + bool m_colour; + wxDuplexMode m_duplexMode; + wxPrintQuality m_printQuality; + wxPaperSize m_paperId; + wxSize m_paperSize; + + wxString m_filename; + + char* m_privData; + int m_privDataLen; + + wxPrintNativeDataBase *m_nativeData; + +private: + DECLARE_DYNAMIC_CLASS(wxPrintData) }; /* - * This is the data used (and returned) by the wxPageSetupDialog. + * 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 wxPageSetupData: public wxObject +class WXDLLIMPEXP_CORE wxPrintDialogData: public wxObject { - DECLARE_DYNAMIC_CLASS(wxPageSetupData) +public: + wxPrintDialogData(); + wxPrintDialogData(const wxPrintDialogData& dialogData); + wxPrintDialogData(const wxPrintData& printData); + virtual ~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; } + + 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 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 IsOk(); } + bool IsOk() 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 + +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; + wxPrintData m_printData; + +private: + DECLARE_DYNAMIC_CLASS(wxPrintDialogData) +}; - public: -#if defined(__WIN95__) - void* m_pageSetupData; -#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; }; - -#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; } -#endif +/* +* This is the data used (and returned) by the wxPageSetupDialog. +*/ - void operator=(const wxPageSetupData& data); +// Compatibility with old name +#define wxPageSetupData wxPageSetupDialogData + +class WXDLLIMPEXP_CORE wxPageSetupDialogData: public wxObject +{ +public: + wxPageSetupDialogData(); + wxPageSetupDialogData(const wxPageSetupDialogData& dialogData); + wxPageSetupDialogData(const wxPrintData& printData); + virtual ~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 IsOk(); } + bool IsOk() 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; } + + // 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; } + const wxPrintData& GetPrintData() const { return m_printData; } + void SetPrintData(const wxPrintData& printData); + +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_