6038ec8eaf
Created a mini interface so that the generic wxPrintDialog can show a "printer" and a "status" line if the print factory wants this to be the case. Moved some code (print mode) back from the PostScript only print data to the general print data since it is sort of general. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
258 lines
7.6 KiB
C++
258 lines
7.6 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: prntdlgg.h
|
|
// Purpose: wxGenericPrintDialog, wxGenericPrintSetupDialog,
|
|
// wxGenericPageSetupDialog
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created: 01/02/97
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c)
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __PRINTDLGH_G_
|
|
#define __PRINTDLGH_G_
|
|
|
|
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
|
#pragma interface "prntdlgg.h"
|
|
#endif
|
|
|
|
#include "wx/defs.h"
|
|
|
|
#if wxUSE_PRINTING_ARCHITECTURE
|
|
|
|
#include "wx/dialog.h"
|
|
#include "wx/cmndata.h"
|
|
#include "wx/prntbase.h"
|
|
#include "wx/printdlg.h"
|
|
|
|
#if wxUSE_POSTSCRIPT
|
|
#include "wx/dcps.h"
|
|
#endif
|
|
|
|
class WXDLLEXPORT wxTextCtrl;
|
|
class WXDLLEXPORT wxButton;
|
|
class WXDLLEXPORT wxCheckBox;
|
|
class WXDLLEXPORT wxComboBox;
|
|
class WXDLLEXPORT wxStaticText;
|
|
class WXDLLEXPORT wxRadioBox;
|
|
class WXDLLEXPORT wxPrintSetupData;
|
|
class WXDLLEXPORT wxPageSetupData;
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// constants
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// FIXME why all these enums start with 10 or 30?
|
|
|
|
enum
|
|
{
|
|
wxPRINTID_STATIC = 10,
|
|
wxPRINTID_RANGE,
|
|
wxPRINTID_FROM,
|
|
wxPRINTID_TO,
|
|
wxPRINTID_COPIES,
|
|
wxPRINTID_PRINTTOFILE,
|
|
wxPRINTID_SETUP
|
|
};
|
|
|
|
enum
|
|
{
|
|
wxPRINTID_LEFTMARGIN = 30,
|
|
wxPRINTID_RIGHTMARGIN,
|
|
wxPRINTID_TOPMARGIN,
|
|
wxPRINTID_BOTTOMMARGIN
|
|
};
|
|
|
|
enum
|
|
{
|
|
wxPRINTID_PRINTCOLOUR = 10,
|
|
wxPRINTID_ORIENTATION,
|
|
wxPRINTID_COMMAND,
|
|
wxPRINTID_OPTIONS,
|
|
wxPRINTID_PAPERSIZE
|
|
};
|
|
|
|
#if wxUSE_POSTSCRIPT
|
|
|
|
//----------------------------------------------------------------------------
|
|
// wxPostScriptNativeData
|
|
//----------------------------------------------------------------------------
|
|
|
|
class WXDLLEXPORT wxPostScriptPrintNativeData: public wxPrintNativeDataBase
|
|
{
|
|
public:
|
|
wxPostScriptPrintNativeData();
|
|
virtual ~wxPostScriptPrintNativeData();
|
|
|
|
virtual bool TransferTo( wxPrintData &data );
|
|
virtual bool TransferFrom( const wxPrintData &data );
|
|
|
|
virtual bool Ok() const { return true; }
|
|
|
|
const wxString& GetPrinterCommand() const { return m_printerCommand; }
|
|
const wxString& GetPrinterOptions() const { return m_printerOptions; }
|
|
const wxString& GetPreviewCommand() const { return m_previewCommand; }
|
|
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; }
|
|
|
|
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 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; }
|
|
|
|
#if wxUSE_STREAMS
|
|
wxOutputStream *GetOutputStream() { return m_outputStream; }
|
|
void SetOutputStream( wxOutputStream *output ) { m_outputStream = output; }
|
|
#endif
|
|
|
|
private:
|
|
wxString m_printerCommand;
|
|
wxString m_previewCommand;
|
|
wxString m_printerOptions;
|
|
wxString m_afmPath;
|
|
double m_printerScaleX;
|
|
double m_printerScaleY;
|
|
long m_printerTranslateX;
|
|
long m_printerTranslateY;
|
|
#if wxUSE_STREAMS
|
|
wxOutputStream *m_outputStream;
|
|
#endif
|
|
|
|
private:
|
|
DECLARE_DYNAMIC_CLASS(wxPostScriptPrintNativeData)
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Simulated Print and Print Setup dialogs for non-Windows platforms (and
|
|
// Windows using PostScript print/preview)
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLEXPORT wxGenericPrintDialog : public wxPrintDialogBase
|
|
{
|
|
public:
|
|
wxGenericPrintDialog(wxWindow *parent,
|
|
wxPrintDialogData* data = (wxPrintDialogData*)NULL);
|
|
wxGenericPrintDialog(wxWindow *parent, wxPrintData* data);
|
|
|
|
virtual ~wxGenericPrintDialog();
|
|
|
|
void OnSetup(wxCommandEvent& event);
|
|
void OnRange(wxCommandEvent& event);
|
|
void OnOK(wxCommandEvent& event);
|
|
|
|
virtual bool TransferDataFromWindow();
|
|
virtual bool TransferDataToWindow();
|
|
|
|
virtual int ShowModal();
|
|
|
|
#if wxUSE_POSTSCRIPT
|
|
wxPrintData& GetPrintData()
|
|
{ return m_printDialogData.GetPrintData(); }
|
|
#endif // wxUSE_POSTSCRIPT
|
|
|
|
wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; }
|
|
wxDC *GetPrintDC();
|
|
|
|
public:
|
|
// wxStaticText* m_printerMessage;
|
|
wxButton* m_setupButton;
|
|
// wxButton* m_helpButton;
|
|
wxRadioBox* m_rangeRadioBox;
|
|
wxTextCtrl* m_fromText;
|
|
wxTextCtrl* m_toText;
|
|
wxTextCtrl* m_noCopiesText;
|
|
wxCheckBox* m_printToFileCheckBox;
|
|
// wxCheckBox* m_collateCopiesCheckBox;
|
|
|
|
wxPrintDialogData m_printDialogData;
|
|
|
|
protected:
|
|
void Init(wxWindow *parent);
|
|
|
|
private:
|
|
DECLARE_EVENT_TABLE()
|
|
DECLARE_DYNAMIC_CLASS(wxGenericPrintDialog)
|
|
};
|
|
|
|
class WXDLLEXPORT wxGenericPrintSetupDialog : public wxDialog
|
|
{
|
|
public:
|
|
// There are no configuration options for the dialog, so we
|
|
// just pass the wxPrintData object (no wxPrintSetupDialogData class needed)
|
|
wxGenericPrintSetupDialog(wxWindow *parent, wxPrintData* data);
|
|
wxGenericPrintSetupDialog(wxWindow *parent, wxPrintSetupData* data);
|
|
virtual ~wxGenericPrintSetupDialog();
|
|
|
|
void Init(wxPrintData* data);
|
|
|
|
virtual bool TransferDataFromWindow();
|
|
virtual bool TransferDataToWindow();
|
|
|
|
virtual wxComboBox *CreatePaperTypeChoice();
|
|
|
|
public:
|
|
wxRadioBox* m_orientationRadioBox;
|
|
wxTextCtrl* m_printerCommandText;
|
|
wxTextCtrl* m_printerOptionsText;
|
|
wxCheckBox* m_colourCheckBox;
|
|
wxComboBox* m_paperTypeChoice;
|
|
|
|
#if wxUSE_POSTSCRIPT
|
|
wxPrintData m_printData;
|
|
wxPrintData& GetPrintData() { return m_printData; }
|
|
#endif // wxUSE_POSTSCRIPT
|
|
|
|
private:
|
|
DECLARE_CLASS(wxGenericPrintSetupDialog)
|
|
};
|
|
#endif
|
|
// wxUSE_POSTSCRIPT
|
|
|
|
class WXDLLEXPORT wxGenericPageSetupDialog : public wxDialog
|
|
{
|
|
public:
|
|
wxGenericPageSetupDialog(wxWindow *parent = NULL,
|
|
wxPageSetupData* data = NULL);
|
|
virtual ~wxGenericPageSetupDialog();
|
|
|
|
virtual bool TransferDataFromWindow();
|
|
virtual bool TransferDataToWindow();
|
|
|
|
void OnPrinter(wxCommandEvent& event);
|
|
|
|
wxComboBox *CreatePaperTypeChoice(int* x, int* y);
|
|
wxPageSetupData& GetPageSetupData() { return m_pageData; }
|
|
|
|
public:
|
|
wxButton* m_printerButton;
|
|
wxRadioBox* m_orientationRadioBox;
|
|
wxTextCtrl* m_marginLeftText;
|
|
wxTextCtrl* m_marginTopText;
|
|
wxTextCtrl* m_marginRightText;
|
|
wxTextCtrl* m_marginBottomText;
|
|
wxComboBox* m_paperTypeChoice;
|
|
|
|
static bool m_pageSetupDialogCancelled;
|
|
|
|
wxPageSetupData m_pageData;
|
|
|
|
private:
|
|
DECLARE_EVENT_TABLE()
|
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxGenericPageSetupDialog)
|
|
};
|
|
|
|
#endif
|
|
|
|
#endif
|
|
// __PRINTDLGH_G__
|