#include "wx/cmndata.h"
#include "wx/prntbase.h"
#include "wx/printdlg.h"
+#include "wx/listctrl.h"
#if wxUSE_POSTSCRIPT
#include "wx/dcps.h"
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?
+// This is not clear why all these enums start with 10 or 30 but do not change it
+// without good reason to avoid some subtle backwards compatibility breakage
enum
{
wxPRINTID_ORIENTATION,
wxPRINTID_COMMAND,
wxPRINTID_OPTIONS,
- wxPRINTID_PAPERSIZE
+ wxPRINTID_PAPERSIZE,
+ wxPRINTID_PRINTER
};
#if wxUSE_POSTSCRIPT
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; }
#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)
virtual int ShowModal();
-#if wxUSE_POSTSCRIPT
wxPrintData& GetPrintData()
{ return m_printDialogData.GetPrintData(); }
-#endif // wxUSE_POSTSCRIPT
wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; }
wxDC *GetPrintDC();
// 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);
+ void OnPrinter(wxListEvent& event);
+
virtual bool TransferDataFromWindow();
virtual bool TransferDataToWindow();
virtual wxComboBox *CreatePaperTypeChoice();
public:
+ wxListCtrl* m_printerListCtrl;
wxRadioBox* m_orientationRadioBox;
wxTextCtrl* m_printerCommandText;
wxTextCtrl* m_printerOptionsText;
wxCheckBox* m_colourCheckBox;
- wxComboBox* m_paperTypeChoice;
+ wxComboBox* m_paperTypeChoice;
-#if wxUSE_POSTSCRIPT
wxPrintData m_printData;
wxPrintData& GetPrintData() { return m_printData; }
-#endif // wxUSE_POSTSCRIPT
+
+ // After pressing OK, write data here.
+ wxPrintData* m_targetData;
private:
+ DECLARE_EVENT_TABLE()
DECLARE_CLASS(wxGenericPrintSetupDialog)
};
#endif
// wxUSE_POSTSCRIPT
-class WXDLLEXPORT wxGenericPageSetupDialog : public wxDialog
+class WXDLLEXPORT wxGenericPageSetupDialog : public wxPageSetupDialogBase
{
public:
wxGenericPageSetupDialog(wxWindow *parent = NULL,
- wxPageSetupData* data = NULL);
+ wxPageSetupDialogData* data = NULL);
virtual ~wxGenericPageSetupDialog();
virtual bool TransferDataFromWindow();
virtual bool TransferDataToWindow();
- void OnPrinter(wxCommandEvent& event);
+ virtual wxPageSetupDialogData& GetPageSetupDialogData();
+ void OnPrinter(wxCommandEvent& event);
wxComboBox *CreatePaperTypeChoice(int* x, int* y);
- wxPageSetupData& GetPageSetupData() { return m_pageData; }
public:
wxButton* m_printerButton;
wxTextCtrl* m_marginBottomText;
wxComboBox* m_paperTypeChoice;
- static bool m_pageSetupDialogCancelled;
-
- wxPageSetupData m_pageData;
+ wxPageSetupDialogData m_pageData;
private:
DECLARE_EVENT_TABLE()
#endif
#endif
-// __PRINTDLGH_G__
+// __PRINTDLGH_G_