X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7bcb11d30764df47144189e164f53d8171ed4a63..c564ca3c975aba89f8b911ace0f240c0aaf4cf73:/include/wx/cmndata.h diff --git a/include/wx/cmndata.h b/include/wx/cmndata.h index 9a1c0c5da9..bde3665117 100644 --- a/include/wx/cmndata.h +++ b/include/wx/cmndata.h @@ -1,182 +1,129 @@ ///////////////////////////////////////////////////////////////////////////// -// 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 _WX_CMNDATA_H_BASE_ #define _WX_CMNDATA_H_BASE_ -#ifdef __GNUG__ -#pragma interface "cmndata.h" -#endif +#include "wx/defs.h" + +#if wxUSE_PRINTING_ARCHITECTURE -#include "wx/font.h" -#include "wx/colour.h" +#include "wx/gdicmn.h" -#if (defined(__WXMOTIF__) || defined(__WXGTK__)) && wxUSE_POSTSCRIPT -class WXDLLEXPORT wxPrintSetupData; +#if wxUSE_STREAMS +#include "wx/stream.h" #endif -class WXDLLEXPORT wxColourData: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxColourData) -public: - wxColourData(); - wxColourData(const wxColourData& data); - ~wxColourData(); - - inline void SetChooseFull(bool flag) { chooseFull = flag; } - inline bool GetChooseFull() const { return chooseFull; } - inline void SetColour(wxColour& colour) { dataColour = colour; } - inline wxColour &GetColour() { return dataColour; } - - // Array of 16 custom colours - void SetCustomColour(int i, wxColour& colour); - wxColour GetCustomColour(int i); - - void operator=(const wxColourData& data); +class WXDLLIMPEXP_FWD_CORE wxPrintNativeDataBase; -public: - wxColour dataColour; - wxColour custColours[16]; - bool chooseFull; +/* + * wxPrintData + * Encapsulates printer information (not printer dialog information) + */ + +enum wxPrintBin +{ + 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 }; -class WXDLLEXPORT wxFontData: public wxObject +const int wxPRINTMEDIA_DEFAULT = 0; + +class WXDLLIMPEXP_CORE wxPrintData: public wxObject { - DECLARE_DYNAMIC_CLASS(wxFontData) public: - wxFontData(); - wxFontData(const wxFontData& fontData); - ~wxFontData(); + wxPrintData(); + wxPrintData(const wxPrintData& printData); + virtual ~wxPrintData(); + + int GetNoCopies() const { return m_printNoCopies; } + bool GetCollate() const { return m_printCollate; } + wxPrintOrientation 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; } - inline void SetAllowSymbols(bool flag) { allowSymbols = flag; } - inline bool GetAllowSymbols() const { return allowSymbols; } + void SetNoCopies(int v) { m_printNoCopies = v; } + void SetCollate(bool flag) { m_printCollate = flag; } - inline void SetColour(const wxColour& colour) { fontColour = colour; } - inline wxColour &GetColour() { return fontColour; } + // Please use the overloaded method below + wxDEPRECATED_INLINE(void SetOrientation(int orient), + m_printOrientation = (wxPrintOrientation)orient; ) + void SetOrientation(wxPrintOrientation orient) { m_printOrientation = orient; } + void SetOrientationReversed(bool reversed) { m_printOrientationReversed = reversed; } - inline void SetShowHelp(bool flag) { showHelp = flag; } - inline bool GetShowHelp() const { return showHelp; } + 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; } - inline void EnableEffects(bool flag) { enableEffects = flag; } - inline bool GetEnableEffects() const { return enableEffects; } + wxString GetFilename() const { return m_filename; } + void SetFilename( const wxString &filename ) { m_filename = filename; } - inline void SetInitialFont(const wxFont& font) { initialFont = font; } - inline wxFont GetInitialFont() const { return initialFont; } + wxPrintData& operator=(const wxPrintData& data); - inline void SetChosenFont(const wxFont& font) { chosenFont = font; } - inline wxFont GetChosenFont() const { return chosenFont; } + char* GetPrivData() const { return m_privData; } + int GetPrivDataLen() const { return m_privDataLen; } + void SetPrivData( char *privData, int len ); - inline void SetRange(int minRange, int maxRange) { minSize = minRange; maxSize = maxRange; } - - void operator=(const wxFontData& data); -public: - wxColour fontColour; - bool showHelp; - bool allowSymbols; - bool enableEffects; - wxFont initialFont; - wxFont chosenFont; - int minSize; - int maxSize; -}; - -/* - * wxPrintData - * Encapsulates printer information (not printer dialog information) - */ - -class WXDLLEXPORT wxPrintData: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxPrintData) - - wxPrintData(); - wxPrintData(const wxPrintData& printData); - ~wxPrintData(); - - inline int GetNoCopies() const { return m_printNoCopies; }; - inline bool GetCollate() const { return m_printCollate; }; - inline int GetOrientation() const { return m_printOrientation; }; - - inline const wxString& GetPrinterName() const { return m_printerName; } - inline bool GetColour() const { return m_colour; } - inline wxDuplexMode GetDuplex() const { return m_duplexMode; } - inline wxPaperSize GetPaperId() const { return m_paperId; } - inline const wxSize& GetPaperSize() const { return m_paperSize; } // Not used yet: confusable with paper size - // in wxPageSetupDialogData - inline wxPrintQuality GetQuality() const { return m_printQuality; } - - inline void SetNoCopies(int v) { m_printNoCopies = v; }; - inline void SetCollate(bool flag) { m_printCollate = flag; }; - inline void SetOrientation(int orient) { m_printOrientation = orient; }; - - inline void SetPrinterName(const wxString& name) { m_printerName = name; } - inline void SetColour(bool colour) { m_colour = colour; } - inline void SetDuplex(wxDuplexMode duplex) { m_duplexMode = duplex; } - inline void SetPaperId(wxPaperSize sizeId) { m_paperId = sizeId; } - inline void SetPaperSize(const wxSize& sz) { m_paperSize = sz; } - inline void SetQuality(wxPrintQuality quality) { m_printQuality = quality; } - - // PostScript-specific data - inline const wxString& GetPrinterCommand() const { return m_printerCommand; } - inline const wxString& GetPrinterOptions() const { return m_printerOptions; } - inline const wxString& GetPreviewCommand() const { return m_previewCommand; } - inline const wxString& GetFilename() const { return m_filename; } - inline const wxString& GetFontMetricPath() const { return m_afmPath; } - inline double GetPrinterScaleX() const { return m_printerScaleX; } - inline double GetPrinterScaleY() const { return m_printerScaleY; } - inline long GetPrinterTranslateX() const { return m_printerTranslateX; } - inline long GetPrinterTranslateY() const { return m_printerTranslateY; } - inline wxPrintMode GetPrintMode() const { return m_printMode; } - - inline void SetPrinterCommand(const wxString& command) { m_printerCommand = command; } - inline void SetPrinterOptions(const wxString& options) { m_printerOptions = options; } - inline void SetPreviewCommand(const wxString& command) { m_previewCommand = command; } - inline void SetFilename(const wxString& filename) { m_filename = filename; } - inline void SetFontMetricPath(const wxString& path) { m_afmPath = path; } - inline void SetPrinterScaleX(double x) { m_printerScaleX = x; } - inline void SetPrinterScaleY(double y) { m_printerScaleY = y; } - inline void SetPrinterScaling(double x, double y) { m_printerScaleX = x; m_printerScaleY = y; } - inline void SetPrinterTranslateX(long x) { m_printerTranslateX = x; } - inline void SetPrinterTranslateY(long y) { m_printerTranslateY = y; } - inline void SetPrinterTranslation(long x, long y) { m_printerTranslateX = x; m_printerTranslateY = y; } - inline void SetPrintMode(wxPrintMode printMode) { m_printMode = printMode; } - - void operator=(const wxPrintData& data); - - // For compatibility -#if (defined(__WXMOTIF__) || defined(__WXGTK__)) && wxUSE_POSTSCRIPT - void operator=(const wxPrintSetupData& setupData); -#endif - -#ifdef __WXMSW__ - // Convert to/from the DEVMODE structure + // Convert between wxPrintData and native data void ConvertToNative(); void ConvertFromNative(); - inline void* GetNativeData() const { return m_devMode; } - inline void SetNativeData(void* data) { m_devMode = data; } -#endif - -public: -#ifdef __WXMSW__ - void* m_devMode; -#endif + // 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; + wxPrintOrientation m_printOrientation; + bool m_printOrientationReversed; bool m_printCollate; - // New members, 24/3/99 wxString m_printerName; bool m_colour; wxDuplexMode m_duplexMode; @@ -184,17 +131,15 @@ private: 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; + + char* m_privData; + int m_privDataLen; + + wxPrintNativeDataBase *m_nativeData; + +private: + DECLARE_DYNAMIC_CLASS(wxPrintData) }; /* @@ -204,65 +149,55 @@ private: * from the dialog. */ -class WXDLLEXPORT wxPrintDialogData: public wxObject +class WXDLLIMPEXP_CORE wxPrintDialogData: public wxObject { - DECLARE_DYNAMIC_CLASS(wxPrintDialogData) - +public: wxPrintDialogData(); wxPrintDialogData(const wxPrintDialogData& dialogData); wxPrintDialogData(const wxPrintData& printData); - ~wxPrintDialogData(); - - inline int GetFromPage() const { return m_printFromPage; }; - inline int GetToPage() const { return m_printToPage; }; - inline int GetMinPage() const { return m_printMinPage; }; - inline int GetMaxPage() const { return m_printMaxPage; }; - inline int GetNoCopies() const { return m_printNoCopies; }; - inline bool GetAllPages() const { return m_printAllPages; }; - inline bool GetCollate() const { return m_printCollate; }; - inline bool GetPrintToFile() const { return m_printToFile; }; - inline bool GetSetupDialog() const { return m_printSetupDialog; }; - - inline void SetFromPage(int v) { m_printFromPage = v; }; - inline void SetToPage(int v) { m_printToPage = v; }; - inline void SetMinPage(int v) { m_printMinPage = v; }; - inline void SetMaxPage(int v) { m_printMaxPage = v; }; - inline void SetNoCopies(int v) { m_printNoCopies = v; }; - inline void SetAllPages(bool flag) { m_printAllPages = flag; }; - inline void SetCollate(bool flag) { m_printCollate = flag; }; - inline void SetPrintToFile(bool flag) { m_printToFile = flag; }; - inline void SetSetupDialog(bool flag) { m_printSetupDialog = flag; }; - - inline void EnablePrintToFile(bool flag) { m_printEnablePrintToFile = flag; }; - inline void EnableSelection(bool flag) { m_printEnableSelection = flag; }; - inline void EnablePageNumbers(bool flag) { m_printEnablePageNumbers = flag; }; - inline void EnableHelp(bool flag) { m_printEnableHelp = flag; }; - - inline bool GetEnablePrintToFile() const { return m_printEnablePrintToFile; }; - inline bool GetEnableSelection() const { return m_printEnableSelection; }; - inline bool GetEnablePageNumbers() const { return m_printEnablePageNumbers; }; - inline bool GetEnableHelp() const { return m_printEnableHelp; }; - - inline wxPrintData& GetPrintData() { return m_printData; } - inline void SetPrintData(const wxPrintData& printData) { m_printData = 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.IsOk() ; } + + 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 - -#ifdef __WXMSW__ - // Convert to/from the PRINTDLG structure - void ConvertToNative(); - void ConvertFromNative(); - void SetOwnerWindow(wxWindow* win); - inline void* GetNativeData() const { return m_printDlgData; } -#endif - -#ifdef __WXMSW__ - void* m_printDlgData; -#endif private: - int m_printFromPage; int m_printToPage; int m_printMinPage; @@ -271,13 +206,15 @@ private: 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) }; /* @@ -287,85 +224,75 @@ private: // Compatibility with old name #define wxPageSetupData wxPageSetupDialogData -class WXDLLEXPORT wxPageSetupDialogData: public wxObject +class WXDLLIMPEXP_CORE wxPageSetupDialogData: public wxObject { - DECLARE_DYNAMIC_CLASS(wxPageSetupDialogData) - public: wxPageSetupDialogData(); wxPageSetupDialogData(const wxPageSetupDialogData& dialogData); wxPageSetupDialogData(const wxPrintData& printData); - ~wxPageSetupDialogData(); - - inline wxSize GetPaperSize() const { return m_paperSize; }; - inline wxPaperSize GetPaperId() const { return m_printData.GetPaperId(); }; - inline wxPoint GetMinMarginTopLeft() const { return m_minMarginTopLeft; }; - inline wxPoint GetMinMarginBottomRight() const { return m_minMarginBottomRight; }; - inline wxPoint GetMarginTopLeft() const { return m_marginTopLeft; }; - inline wxPoint GetMarginBottomRight() const { return m_marginBottomRight; }; - - inline bool GetDefaultMinMargins() const { return m_defaultMinMargins; }; - inline bool GetEnableMargins() const { return m_enableMargins; }; - inline bool GetEnableOrientation() const { return m_enableOrientation; }; - inline bool GetEnablePaper() const { return m_enablePaper; }; - inline bool GetEnablePrinter() const { return m_enablePrinter; }; - inline bool GetDefaultInfo() const { return m_getDefaultInfo; }; - inline bool GetEnableHelp() const { return m_enableHelp; }; + 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.IsOk() ; } // 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); - 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 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 ConvertFromNative(); - void SetOwnerWindow(wxWindow* win); - inline void* GetNativeData() const { return m_pageSetupData; } -#endif + 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(); - - void operator=(const wxPageSetupData& data); - void operator=(const wxPrintData& data); - inline wxPrintData& GetPrintData() { return m_printData; } - inline void SetPrintData(const wxPrintData& printData) { m_printData = printData; } + wxPageSetupDialogData& operator=(const wxPageSetupDialogData& data); + wxPageSetupDialogData& operator=(const wxPrintData& data); -#if defined(__WIN95__) - void* m_pageSetupData; -#endif + 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; - - // Flags bool m_defaultMinMargins; bool m_enableMargins; bool m_enableOrientation; @@ -373,9 +300,13 @@ private: 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 // _WX_CMNDATA_H_BASE_