1/////////////////////////////////////////////////////////////////////////////
2// Name:        printdlg.h
3// Purpose:     wxPrintDialog, wxPageSetupDialog classes
4// Author:      Julian Smart
5// Modified by:
6// Created:     01/02/97
7// RCS-ID:      $Id: printdlg.h 49804 2007-11-10 01:09:42Z VZ $
8// Copyright:   (c) Julian Smart
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_PRINTDLG_H_
13#define _WX_PRINTDLG_H_
14
15#if wxUSE_PRINTING_ARCHITECTURE
16
17#include "wx/dialog.h"
18#include "wx/cmndata.h"
19#include "wx/prntbase.h"
20#include "wx/printdlg.h"
21
22class WXDLLIMPEXP_FWD_CORE wxDC;
23
24//----------------------------------------------------------------------------
25// wxWindowsPrintNativeData
26//----------------------------------------------------------------------------
27
28class WXDLLEXPORT wxWindowsPrintNativeData: public wxPrintNativeDataBase
29{
30public:
31    wxWindowsPrintNativeData();
32    virtual ~wxWindowsPrintNativeData();
33
34    virtual bool TransferTo( wxPrintData &data );
35    virtual bool TransferFrom( const wxPrintData &data );
36
37    virtual bool Ok() const { return IsOk(); }
38    virtual bool IsOk() const;
39
40    void* GetDevMode() const { return m_devMode; }
41    void SetDevMode(void* data) { m_devMode = data; }
42    void* GetDevNames() const { return m_devNames; }
43    void SetDevNames(void* data) { m_devNames = data; }
44
45private:
46    void* m_devMode;
47    void* m_devNames;
48
49    short m_customWindowsPaperId;
50
51private:
52    DECLARE_DYNAMIC_CLASS(wxWindowsPrintNativeData)
53};
54
55// ---------------------------------------------------------------------------
56// wxWindowsPrintDialog: the MSW dialog for printing
57// ---------------------------------------------------------------------------
58
59class WXDLLEXPORT wxWindowsPrintDialog : public wxPrintDialogBase
60{
61public:
62    wxWindowsPrintDialog(wxWindow *parent, wxPrintDialogData* data = NULL);
63    wxWindowsPrintDialog(wxWindow *parent, wxPrintData* data);
64    virtual ~wxWindowsPrintDialog();
65
66    bool Create(wxWindow *parent, wxPrintDialogData* data = NULL);
67    virtual int ShowModal();
68
69    wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; }
70    wxPrintData& GetPrintData() { return m_printDialogData.GetPrintData(); }
71
72    virtual wxDC *GetPrintDC();
73
74private:
75    wxPrintDialogData m_printDialogData;
76    wxPrinterDC*      m_printerDC;
77    bool              m_destroyDC;
78    wxWindow*         m_dialogParent;
79
80private:
81    bool ConvertToNative( wxPrintDialogData &data );
82    bool ConvertFromNative( wxPrintDialogData &data );
83
84    // holds MSW handle
85    void*             m_printDlg;
86
87private:
88    DECLARE_NO_COPY_CLASS(wxWindowsPrintDialog)
89    DECLARE_CLASS(wxWindowsPrintDialog)
90};
91
92// ---------------------------------------------------------------------------
93// wxWindowsPageSetupDialog: the MSW page setup dialog
94// ---------------------------------------------------------------------------
95
96class WXDLLEXPORT wxWindowsPageSetupDialog: public wxPageSetupDialogBase
97{
98public:
99    wxWindowsPageSetupDialog();
100    wxWindowsPageSetupDialog(wxWindow *parent, wxPageSetupDialogData *data = NULL);
101    virtual ~wxWindowsPageSetupDialog();
102
103    bool Create(wxWindow *parent, wxPageSetupDialogData *data = NULL);
104    virtual int ShowModal();
105    bool ConvertToNative( wxPageSetupDialogData &data );
106    bool ConvertFromNative( wxPageSetupDialogData &data );
107
108    virtual wxPageSetupData& GetPageSetupDialogData() { return m_pageSetupData; }
109
110private:
111    wxPageSetupDialogData   m_pageSetupData;
112    wxWindow*               m_dialogParent;
113
114    // holds MSW handle
115    void*                   m_pageDlg;
116
117private:
118    DECLARE_DYNAMIC_CLASS_NO_COPY(wxWindowsPageSetupDialog)
119};
120
121#endif // wxUSE_PRINTING_ARCHITECTURE
122
123#endif
124    // _WX_PRINTDLG_H_
125