xref: /AOO41X/main/padmin/source/prtsetup.hxx (revision 23e9c6ca8a88572e85d00ef2448f2333808607a0)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _PAD_PRTSETUP_HXX_
25 #define _PAD_PRTSETUP_HXX_
26 
27 #include "helper.hxx"
28 
29 #include "tools/link.hxx"
30 
31 #include "vcl/tabdlg.hxx"
32 #include "vcl/tabpage.hxx"
33 #include "vcl/tabctrl.hxx"
34 #include "vcl/button.hxx"
35 #include "vcl/fixed.hxx"
36 #include "vcl/lstbox.hxx"
37 #include "vcl/field.hxx"
38 #include "vcl/combobox.hxx"
39 #include "vcl/ppdparser.hxx"
40 #include "vcl/printerinfomanager.hxx"
41 
42 namespace padmin {
43 
44 class RTSPaperPage;
45 class RTSDevicePage;
46 class RTSOtherPage;
47 class RTSFontSubstPage;
48 class RTSCommandPage;
49 
50 class RTSDialog : public TabDialog
51 {
52     friend class RTSPaperPage;
53     friend class RTSDevicePage;
54     friend class RTSOtherPage;
55     friend class RTSFontSubstPage;
56     friend class RTSCommandPage;
57 
58     ::psp::PrinterInfo      m_aJobData;
59     String                  m_aPrinter;
60 
61     // controls
62     TabControl              m_aTabControl;
63     OKButton                m_aOKButton;
64     CancelButton            m_aCancelButton;
65 
66     // pages
67     RTSPaperPage*           m_pPaperPage;
68     RTSDevicePage*          m_pDevicePage;
69     RTSOtherPage*           m_pOtherPage;
70     RTSFontSubstPage*       m_pFontSubstPage;
71     RTSCommandPage*         m_pCommandPage;
72 
73     // some resources
74     String                  m_aInvalidString;
75     String                  m_aFromDriverString;
76 
77     DECL_LINK( ActivatePage, TabControl* );
78     DECL_LINK( ClickButton, Button* );
79 
80     // helper functions
81     void insertAllPPDValues( ListBox&, const psp::PPDParser*, const psp::PPDKey* );
82 public:
83     RTSDialog( const ::psp::PrinterInfo& rJobData, const String& rPrinter, bool bAllPages, Window* pParent = NULL );
84     ~RTSDialog();
85 
getSetup() const86     const ::psp::PrinterInfo& getSetup() const { return m_aJobData; }
87 };
88 
89 class RTSPaperPage : public TabPage
90 {
91     RTSDialog*          m_pParent;
92 
93     FixedText           m_aPaperText;
94     ListBox             m_aPaperBox;
95 
96     FixedText           m_aOrientText;
97     ListBox             m_aOrientBox;
98 
99     FixedText           m_aDuplexText;
100     ListBox             m_aDuplexBox;
101 
102     FixedText           m_aSlotText;
103     ListBox             m_aSlotBox;
104 
105     DECL_LINK( SelectHdl, ListBox* );
106 public:
107     RTSPaperPage( RTSDialog* );
108     ~RTSPaperPage();
109 
110     void update();
111 
getOrientation()112     String getOrientation() { return m_aOrientBox.GetSelectEntry(); }
113 };
114 
115 class RTSDevicePage : public TabPage
116 {
117     RTSDialog*          m_pParent;
118 
119     String              m_aSpaceColor;
120     String              m_aSpaceGray;
121 
122     FixedText           m_aPPDKeyText;
123     ListBox             m_aPPDKeyBox;
124 
125     FixedText           m_aPPDValueText;
126     ListBox             m_aPPDValueBox;
127 
128     FixedText           m_aLevelText;
129     ListBox             m_aLevelBox;
130 
131     FixedText           m_aSpaceText;
132     ListBox             m_aSpaceBox;
133 
134     FixedText           m_aDepthText;
135     ListBox             m_aDepthBox;
136 
137     void FillValueBox( const ::psp::PPDKey* );
138 
139     DECL_LINK( SelectHdl, ListBox* );
140 public:
141     RTSDevicePage( RTSDialog* );
142     ~RTSDevicePage();
143 
144     void update();
145 
146     sal_uLong getLevel();
147     sal_uLong getPDFDevice();
getDepth()148     sal_uLong getDepth() { return m_aDepthBox.GetSelectEntry().ToInt32(); }
getColorDevice()149     sal_uLong getColorDevice()
150     {
151         String aSpace( m_aSpaceBox.GetSelectEntry() );
152         return aSpace == m_aSpaceColor ? 1 : ( aSpace == m_aSpaceGray ? -1 : 0 );
153     }
154 };
155 
156 class RTSOtherPage : public TabPage
157 {
158     RTSDialog*          m_pParent;
159 
160     FixedText           m_aLeftTxt;
161     MetricField         m_aLeftLB;
162     FixedText           m_aTopTxt;
163     MetricField         m_aTopLB;
164     FixedText           m_aRightTxt;
165     MetricField         m_aRightLB;
166     FixedText           m_aBottomTxt;
167     MetricField         m_aBottomLB;
168     FixedText           m_aCommentTxt;
169     Edit                m_aCommentEdt;
170     PushButton          m_aDefaultBtn;
171 
172     void initValues();
173 
174     DECL_LINK( ClickBtnHdl, Button *);
175 
176 public:
177     RTSOtherPage( RTSDialog* );
178     ~RTSOtherPage();
179 
180     void save();
181 };
182 
183 class RTSFontSubstPage : public TabPage
184 {
185     RTSDialog*          m_pParent;
186 
187     FixedText           m_aSubstitutionsText;
188     DelMultiListBox     m_aSubstitutionsBox;
189     FixedText           m_aFromFontText;
190     ComboBox            m_aFromFontBox;
191     FixedText           m_aToFontText;
192     ListBox             m_aToFontBox;
193 
194     PushButton          m_aAddButton;
195     PushButton          m_aRemoveButton;
196     CheckBox            m_aEnableBox;
197 
198     DECL_LINK( ClickBtnHdl, Button* );
199     DECL_LINK( SelectHdl, ListBox* );
200     DECL_LINK( DelPressedHdl, ListBox* );
201 
202     void update();
203 public:
204     RTSFontSubstPage( RTSDialog* );
205     ~RTSFontSubstPage();
206 };
207 
208 } // namespace
209 
210 #endif // _PAD_PRTSETUP_HXX
211