Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*
3 : : * This file is part of the LibreOffice project.
4 : : *
5 : : * This Source Code Form is subject to the terms of the Mozilla Public
6 : : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : : *
9 : : * This file incorporates work covered by the following license notice:
10 : : *
11 : : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : : * contributor license agreements. See the NOTICE file distributed
13 : : * with this work for additional information regarding copyright
14 : : * ownership. The ASF licenses this file to you under the Apache
15 : : * License, Version 2.0 (the "License"); you may not use this file
16 : : * except in compliance with the License. You may obtain a copy of
17 : : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : : */
19 : :
20 : : #ifndef _PAD_ADDDLG_HXX_
21 : : #define _PAD_ADDDLG_HXX_
22 : :
23 : : #include "helper.hxx"
24 : : #include "titlectrl.hxx"
25 : :
26 : : #include "vcl/dialog.hxx"
27 : : #include "vcl/tabpage.hxx"
28 : : #include "vcl/button.hxx"
29 : : #include "vcl/fixed.hxx"
30 : : #include "vcl/combobox.hxx"
31 : : #include "vcl/printerinfomanager.hxx"
32 : :
33 : : namespace padmin
34 : : {
35 : :
36 : : class AddPrinterDialog;
37 : :
38 : : namespace DeviceKind { enum type { Printer, Fax, Pdf }; }
39 : :
40 : 0 : class APTabPage : public TabPage
41 : : {
42 : : String m_aTitle;
43 : : protected:
44 : : AddPrinterDialog* m_pParent;
45 : : public:
46 : : APTabPage( AddPrinterDialog* pParent, const ResId& rResId );
47 : :
48 : : // returns false if information is incomplete or invalid
49 : : virtual bool check() = 0;
50 : : virtual void fill( ::psp::PrinterInfo& rInfo ) = 0;
51 : 0 : const String& getTitle() const { return m_aTitle; }
52 : : };
53 : :
54 : : class APChooseDevicePage : public APTabPage
55 : : {
56 : : RadioButton m_aPrinterBtn;
57 : : RadioButton m_aFaxBtn;
58 : : RadioButton m_aPDFBtn;
59 : : RadioButton m_aOldBtn;
60 : : FixedText m_aOverTxt;
61 : : public:
62 : : APChooseDevicePage( AddPrinterDialog* pParent );
63 : : ~APChooseDevicePage();
64 : :
65 : 0 : bool isPrinter() { return m_aPrinterBtn.IsChecked(); }
66 : 0 : bool isFax() { return m_aFaxBtn.IsChecked(); }
67 : 0 : bool isPDF() { return m_aPDFBtn.IsChecked(); }
68 : 0 : bool isOld() { return m_aOldBtn.IsChecked(); }
69 : :
70 : :
71 : : virtual bool check();
72 : : virtual void fill( ::psp::PrinterInfo& rInfo );
73 : : };
74 : :
75 : : class APChooseDriverPage : public APTabPage
76 : : {
77 : : FixedText m_aDriverTxt;
78 : : DelListBox m_aDriverBox;
79 : : PushButton m_aAddBtn;
80 : : PushButton m_aRemBtn;
81 : :
82 : : String m_aRemStr;
83 : : String m_aLastPrinterName;
84 : :
85 : : DECL_LINK( ClickBtnHdl, PushButton* );
86 : : DECL_LINK( DelPressedHdl, ListBox* );
87 : :
88 : : void updateDrivers( bool bRefresh = false, const rtl::OUString& rSelectDriver = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SGENPRT" ) ) );
89 : : public:
90 : : APChooseDriverPage( AddPrinterDialog* pParent );
91 : : ~APChooseDriverPage();
92 : :
93 : : virtual bool check();
94 : : virtual void fill( ::psp::PrinterInfo& rInfo );
95 : : };
96 : :
97 : : class APNamePage : public APTabPage
98 : : {
99 : : FixedText m_aNameTxt;
100 : : Edit m_aNameEdt;
101 : : CheckBox m_aDefaultBox;
102 : : CheckBox m_aFaxSwallowBox;
103 : : public:
104 : : APNamePage( AddPrinterDialog* pParent, const String& rInitName, DeviceKind::type eKind );
105 : : ~APNamePage();
106 : :
107 : 0 : bool isDefault() { return m_aDefaultBox.IsChecked(); }
108 : 0 : bool isFaxSwallow() { return m_aFaxSwallowBox.IsChecked(); }
109 : :
110 : 0 : void setText( const String& rText ) { m_aNameEdt.SetText( rText ); }
111 : :
112 : : virtual bool check();
113 : : virtual void fill( ::psp::PrinterInfo& rInfo );
114 : : };
115 : :
116 : : class APCommandPage : public APTabPage
117 : : {
118 : : FixedText m_aCommandTxt;
119 : : ComboBox m_aCommandBox;
120 : : PushButton m_aHelpBtn;
121 : : String m_aHelpTxt;
122 : : FixedText m_aPdfDirTxt;
123 : : Edit m_aPdfDirEdt;
124 : : PushButton m_aPdfDirBtn;
125 : :
126 : : DeviceKind::type m_eKind;
127 : :
128 : : DECL_LINK( ClickBtnHdl, PushButton* );
129 : : DECL_LINK( ModifyHdl, ComboBox* );
130 : : public:
131 : :
132 : : APCommandPage( AddPrinterDialog* pParent, DeviceKind::type eKind );
133 : : ~APCommandPage();
134 : :
135 : : virtual bool check();
136 : : virtual void fill( ::psp::PrinterInfo& rInfo );
137 : :
138 : 0 : String getPdfDir() { return m_aPdfDirEdt.GetText(); }
139 : : };
140 : :
141 : : class APOldPrinterPage : public APTabPage
142 : : {
143 : : FixedText m_aOldPrinterTxt;
144 : : MultiListBox m_aOldPrinterBox;
145 : : PushButton m_aSelectAllBtn;
146 : :
147 : : ::std::list< ::psp::PrinterInfo > m_aOldPrinters;
148 : :
149 : : DECL_LINK( ClickBtnHdl, PushButton* );
150 : : public:
151 : : APOldPrinterPage( AddPrinterDialog* pParent );
152 : : ~APOldPrinterPage();
153 : :
154 : : virtual bool check();
155 : : virtual void fill( ::psp::PrinterInfo& rInfo );
156 : :
157 : : void addOldPrinters();
158 : : };
159 : :
160 : : class APFaxDriverPage : public APTabPage
161 : : {
162 : : FixedText m_aFaxTxt;
163 : : RadioButton m_aDefBtn;
164 : : RadioButton m_aSelectBtn;
165 : : public:
166 : : APFaxDriverPage( AddPrinterDialog* pParent );
167 : : ~APFaxDriverPage();
168 : :
169 : : virtual bool check();
170 : : virtual void fill( ::psp::PrinterInfo& rInfo );
171 : :
172 : 0 : bool isDefault() { return m_aDefBtn.IsChecked(); }
173 : : };
174 : :
175 : : class APPdfDriverPage : public APTabPage
176 : : {
177 : : FixedText m_aPdfTxt;
178 : : RadioButton m_aDefBtn;
179 : : RadioButton m_aDistBtn;
180 : : RadioButton m_aSelectBtn;
181 : : public:
182 : : APPdfDriverPage( AddPrinterDialog* pParent );
183 : : ~APPdfDriverPage();
184 : :
185 : : virtual bool check();
186 : : virtual void fill( ::psp::PrinterInfo& rInfo );
187 : :
188 : 0 : bool isDefault() { return m_aDefBtn.IsChecked(); }
189 : 0 : bool isDist() { return m_aDistBtn.IsChecked(); }
190 : : };
191 : :
192 : : class AddPrinterDialog : public ModalDialog
193 : : {
194 : : CancelButton m_aCancelPB;
195 : : PushButton m_aPrevPB;
196 : : PushButton m_aNextPB;
197 : : OKButton m_aFinishPB;
198 : : FixedLine m_aLine;
199 : : TitleImage m_aTitleImage;
200 : :
201 : : ::psp::PrinterInfo m_aPrinter;
202 : :
203 : : APTabPage* m_pCurrentPage;
204 : :
205 : : APChooseDevicePage* m_pChooseDevicePage;
206 : : APCommandPage* m_pCommandPage;
207 : : APChooseDriverPage* m_pChooseDriverPage;
208 : : APNamePage* m_pNamePage;
209 : : APOldPrinterPage* m_pOldPrinterPage;
210 : : APFaxDriverPage* m_pFaxDriverPage;
211 : : APChooseDriverPage* m_pFaxSelectDriverPage;
212 : : APNamePage* m_pFaxNamePage;
213 : : APCommandPage* m_pFaxCommandPage;
214 : : APPdfDriverPage* m_pPdfDriverPage;
215 : : APChooseDriverPage* m_pPdfSelectDriverPage;
216 : : APNamePage* m_pPdfNamePage;
217 : : APCommandPage* m_pPdfCommandPage;
218 : :
219 : : DECL_LINK( ClickBtnHdl, PushButton* );
220 : :
221 : : void advance();
222 : : void back();
223 : : void addPrinter();
224 : :
225 : : void updateSettings();
226 : : virtual void DataChanged( const DataChangedEvent& rEv );
227 : :
228 : : public:
229 : : AddPrinterDialog( Window* pParent );
230 : : ~AddPrinterDialog();
231 : :
232 : : static String uniquePrinterName( const String& rString );
233 : : static String getOldPrinterLocation();
234 : :
235 : 0 : void enableNext( bool bEnable ) { m_aNextPB.Enable( bEnable ); }
236 : : };
237 : :
238 : : } // namespace
239 : :
240 : : #endif
241 : :
242 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|