58cf0491e3
so we can test in advance whether the print/page setup dialogs will fail. Removed assertions that would fire if the default printer was not found, for example. Added call to Ok() from HTML print code with suitable error message. Commented out my erroneous fix to wxStaticText. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15438 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
447 lines
16 KiB
C++
447 lines
16 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: 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
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#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/colour.h"
|
|
#include "wx/gdicmn.h"
|
|
|
|
#if (defined(__WXMOTIF__) || defined(__WXX11__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMAC__)) && wxUSE_POSTSCRIPT
|
|
class WXDLLEXPORT wxPrintSetupData;
|
|
#endif
|
|
|
|
class WXDLLEXPORT wxColourData: public wxObject
|
|
{
|
|
DECLARE_DYNAMIC_CLASS(wxColourData)
|
|
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;
|
|
};
|
|
|
|
class WXDLLEXPORT wxFontData: public wxObject
|
|
{
|
|
DECLARE_DYNAMIC_CLASS(wxFontData)
|
|
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)
|
|
{
|
|
(*this) = data;
|
|
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;
|
|
};
|
|
|
|
#if wxUSE_PRINTING_ARCHITECTURE
|
|
/*
|
|
* wxPrintData
|
|
* Encapsulates printer information (not printer dialog information)
|
|
*/
|
|
|
|
class WXDLLEXPORT wxPrintData: public wxObject
|
|
{
|
|
DECLARE_DYNAMIC_CLASS(wxPrintData)
|
|
|
|
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);
|
|
|
|
// For compatibility
|
|
#if (defined(__WXMOTIF__) || defined(__WXX11__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMAC__)) && wxUSE_POSTSCRIPT
|
|
void operator=(const wxPrintSetupData& setupData);
|
|
#endif
|
|
|
|
#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__)
|
|
void* m_macPageFormat ;
|
|
void* m_macPrintSettings ;
|
|
#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;
|
|
};
|
|
|
|
/*
|
|
* 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 wxPrintDialogData: public wxObject
|
|
{
|
|
DECLARE_DYNAMIC_CLASS(wxPrintDialogData)
|
|
|
|
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
|
|
|
|
#ifdef __WXMSW__
|
|
// 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
|
|
|
|
#ifdef __WXMSW__
|
|
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;
|
|
};
|
|
|
|
/*
|
|
* This is the data used (and returned) by the wxPageSetupDialog.
|
|
*/
|
|
|
|
// Compatibility with old name
|
|
#define wxPageSetupData wxPageSetupDialogData
|
|
|
|
class WXDLLEXPORT wxPageSetupDialogData: public wxObject
|
|
{
|
|
DECLARE_DYNAMIC_CLASS(wxPageSetupDialogData)
|
|
|
|
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; };
|
|
|
|
#if defined(__WIN95__)
|
|
// 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
|
|
|
|
// 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__)
|
|
void* m_pageSetupData;
|
|
#endif
|
|
|
|
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;
|
|
bool m_enablePaper;
|
|
bool m_enablePrinter;
|
|
bool m_getDefaultInfo; // Equiv. to PSD_RETURNDEFAULT
|
|
bool m_enableHelp;
|
|
|
|
wxPrintData m_printData;
|
|
};
|
|
|
|
#endif // wxUSE_PRINTING_ARCHITECTURE
|
|
|
|
#endif
|
|
// _WX_CMNDATA_H_BASE_
|