]> git.saurik.com Git - wxWidgets.git/blame_incremental - src/msw/printdlg.cpp
::GetWindowText() -> wxGetWindowText
[wxWidgets.git] / src / msw / printdlg.cpp
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: printdlg.cpp
3// Purpose: wxPrintDialog, wxPageSetupDialog
4// Author: Julian Smart
5// Modified by:
6// Created: 04/01/98
7// RCS-ID: $Id$
8// Copyright: (c) Julian Smart and Markus Holzem
9// Licence: wxWindows license
10/////////////////////////////////////////////////////////////////////////////
11
12// ===========================================================================
13// declarations
14// ===========================================================================
15
16// ---------------------------------------------------------------------------
17// headers
18// ---------------------------------------------------------------------------
19
20#ifdef __GNUG__
21 #pragma implementation "printdlg.h"
22#endif
23
24// For compilers that support precompilation, includes "wx.h".
25#include "wx/wxprec.h"
26
27#ifdef __BORLANDC__
28 #pragma hdrstop
29#endif
30
31#include "wx/printdlg.h"
32#include "wx/dcprint.h"
33
34// Have to emulate page setup dialog for Win16
35#if !defined(__WIN95__)
36 #include "wx/generic/prntdlgg.h"
37#endif
38
39#include <stdlib.h>
40#include <windows.h>
41#include <commdlg.h>
42
43#ifndef __WIN32__
44 #include <print.h>
45#endif
46
47// Clash with Windows header files
48#ifdef StartDoc
49#undef StartDoc
50#endif
51
52// ---------------------------------------------------------------------------
53// wxWin macros
54// ---------------------------------------------------------------------------
55
56#if !USE_SHARED_LIBRARY
57 IMPLEMENT_DYNAMIC_CLASS(wxPrintDialog, wxDialog)
58 IMPLEMENT_CLASS(wxPageSetupDialog, wxDialog)
59#endif
60
61// ===========================================================================
62// implementation
63// ===========================================================================
64
65// ---------------------------------------------------------------------------
66// wxPrintDialog
67// ---------------------------------------------------------------------------
68
69wxPrintDialog::wxPrintDialog()
70{
71 m_dialogParent = NULL;
72 m_printerDC = NULL;
73 m_destroyDC = TRUE;
74}
75
76wxPrintDialog::wxPrintDialog(wxWindow *p, wxPrintDialogData* data)
77{
78 Create(p, data);
79}
80
81wxPrintDialog::wxPrintDialog(wxWindow *p, wxPrintData* data)
82{
83 wxPrintDialogData data2;
84 if ( data )
85 data2 = *data;
86
87 Create(p, &data2);
88}
89
90bool wxPrintDialog::Create(wxWindow *p, wxPrintDialogData* data)
91{
92 m_dialogParent = p;
93 m_printerDC = NULL;
94 m_destroyDC = TRUE;
95
96 if ( data )
97 m_printDialogData = *data;
98
99 m_printDialogData.SetOwnerWindow(p);
100
101 return TRUE;
102}
103
104wxPrintDialog::~wxPrintDialog()
105{
106 if (m_destroyDC && m_printerDC)
107 delete m_printerDC;
108}
109
110int wxPrintDialog::ShowModal()
111{
112 m_printDialogData.ConvertToNative();
113
114 bool ret = (PrintDlg( (PRINTDLG *)m_printDialogData.GetNativeData() ) != 0);
115 if ( ret != FALSE && ((PRINTDLG *)m_printDialogData.GetNativeData())->hDC)
116 {
117 wxPrinterDC *pdc = new wxPrinterDC((WXHDC) ((PRINTDLG *)m_printDialogData.GetNativeData())->hDC);
118 m_printerDC = pdc;
119 m_printDialogData.ConvertFromNative();
120 return wxID_OK;
121 }
122 else
123 {
124 return wxID_CANCEL;
125 }
126}
127
128wxDC *wxPrintDialog::GetPrintDC()
129{
130 if (m_printerDC)
131 {
132 m_destroyDC = FALSE;
133 return m_printerDC;
134 }
135 else
136 return (wxDC*) NULL;
137}
138
139// ---------------------------------------------------------------------------
140// wxPageSetupDialog
141// ---------------------------------------------------------------------------
142
143wxPageSetupDialog::wxPageSetupDialog()
144{
145 m_dialogParent = NULL;
146}
147
148wxPageSetupDialog::wxPageSetupDialog(wxWindow *p, wxPageSetupData *data)
149{
150 Create(p, data);
151}
152
153bool wxPageSetupDialog::Create(wxWindow *p, wxPageSetupData *data)
154{
155 m_dialogParent = p;
156
157 if (data)
158 m_pageSetupData = (*data);
159
160#if defined(__WIN95__)
161 m_pageSetupData.SetOwnerWindow(p);
162#endif
163 return TRUE;
164}
165
166wxPageSetupDialog::~wxPageSetupDialog()
167{
168}
169
170int wxPageSetupDialog::ShowModal()
171{
172#ifdef __WIN95__
173 m_pageSetupData.ConvertToNative();
174 if (PageSetupDlg( (PAGESETUPDLG *)m_pageSetupData.GetNativeData() ))
175 {
176 m_pageSetupData.ConvertFromNative();
177 return wxID_OK;
178 }
179 else
180 return wxID_CANCEL;
181#else
182 wxGenericPageSetupDialog *genericPageSetupDialog = new wxGenericPageSetupDialog(GetParent(), & m_pageSetupData);
183 int ret = genericPageSetupDialog->ShowModal();
184 m_pageSetupData = genericPageSetupDialog->GetPageSetupData();
185 genericPageSetupDialog->Close(TRUE);
186 return ret;
187#endif
188}
189