1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sw.hxx"
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski #ifdef SW_DLLIMPLEMENTATION
28*b1cdbd2cSJim Jagielski #undef SW_DLLIMPLEMENTATION
29*b1cdbd2cSJim Jagielski #endif
30*b1cdbd2cSJim Jagielski
31*b1cdbd2cSJim Jagielski
32*b1cdbd2cSJim Jagielski #include <svtools/prnsetup.hxx>
33*b1cdbd2cSJim Jagielski #include <unotools/cmdoptions.hxx>
34*b1cdbd2cSJim Jagielski #include <vcl/print.hxx>
35*b1cdbd2cSJim Jagielski #include <wrtsh.hxx>
36*b1cdbd2cSJim Jagielski #include <label.hxx>
37*b1cdbd2cSJim Jagielski #include <labprt.hxx>
38*b1cdbd2cSJim Jagielski #include <labimg.hxx>
39*b1cdbd2cSJim Jagielski #ifndef _LABIMP_HXX
40*b1cdbd2cSJim Jagielski #include "swuilabimp.hxx"
41*b1cdbd2cSJim Jagielski #endif
42*b1cdbd2cSJim Jagielski
43*b1cdbd2cSJim Jagielski #ifndef _CMDID_H
44*b1cdbd2cSJim Jagielski #include <cmdid.h>
45*b1cdbd2cSJim Jagielski #endif
46*b1cdbd2cSJim Jagielski #ifndef _LABPRT_HRC
47*b1cdbd2cSJim Jagielski #include <labprt.hrc>
48*b1cdbd2cSJim Jagielski #endif
49*b1cdbd2cSJim Jagielski
50*b1cdbd2cSJim Jagielski
51*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------------
52*b1cdbd2cSJim Jagielski
53*b1cdbd2cSJim Jagielski
54*b1cdbd2cSJim Jagielski
SwLabPrtPage(Window * pParent,const SfxItemSet & rSet)55*b1cdbd2cSJim Jagielski SwLabPrtPage::SwLabPrtPage(Window* pParent, const SfxItemSet& rSet) :
56*b1cdbd2cSJim Jagielski
57*b1cdbd2cSJim Jagielski SfxTabPage(pParent, SW_RES(TP_LAB_PRT), rSet),
58*b1cdbd2cSJim Jagielski
59*b1cdbd2cSJim Jagielski pPrinter( 0 ),
60*b1cdbd2cSJim Jagielski aFLDontKnow (this, SW_RES(FL_DONTKNOW)),
61*b1cdbd2cSJim Jagielski aPageButton (this, SW_RES(BTN_PAGE )),
62*b1cdbd2cSJim Jagielski aSingleButton (this, SW_RES(BTN_SINGLE )),
63*b1cdbd2cSJim Jagielski aColText (this, SW_RES(TXT_COL )),
64*b1cdbd2cSJim Jagielski aColField (this, SW_RES(FLD_COL )),
65*b1cdbd2cSJim Jagielski aRowText (this, SW_RES(TXT_ROW )),
66*b1cdbd2cSJim Jagielski aRowField (this, SW_RES(FLD_ROW )),
67*b1cdbd2cSJim Jagielski aSynchronCB (this, SW_RES(CB_SYNCHRON)),
68*b1cdbd2cSJim Jagielski aFLPrinter (this, SW_RES(FL_PRINTER )),
69*b1cdbd2cSJim Jagielski aPrinterInfo (this, SW_RES(INF_PRINTER)),
70*b1cdbd2cSJim Jagielski aPrtSetup (this, SW_RES(BTN_PRTSETUP))
71*b1cdbd2cSJim Jagielski
72*b1cdbd2cSJim Jagielski {
73*b1cdbd2cSJim Jagielski FreeResource();
74*b1cdbd2cSJim Jagielski SetExchangeSupport();
75*b1cdbd2cSJim Jagielski
76*b1cdbd2cSJim Jagielski // Handler installieren
77*b1cdbd2cSJim Jagielski Link aLk = LINK(this, SwLabPrtPage, CountHdl);
78*b1cdbd2cSJim Jagielski aPageButton .SetClickHdl( aLk );
79*b1cdbd2cSJim Jagielski aSingleButton.SetClickHdl( aLk );
80*b1cdbd2cSJim Jagielski
81*b1cdbd2cSJim Jagielski aPrtSetup.SetClickHdl( aLk );
82*b1cdbd2cSJim Jagielski
83*b1cdbd2cSJim Jagielski SvtCommandOptions aCmdOpts;
84*b1cdbd2cSJim Jagielski if ( aCmdOpts.Lookup(
85*b1cdbd2cSJim Jagielski SvtCommandOptions::CMDOPTION_DISABLED,
86*b1cdbd2cSJim Jagielski rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Print" ) ) ) )
87*b1cdbd2cSJim Jagielski {
88*b1cdbd2cSJim Jagielski aPrinterInfo.Hide();
89*b1cdbd2cSJim Jagielski aPrtSetup.Hide();
90*b1cdbd2cSJim Jagielski aFLPrinter.Hide();
91*b1cdbd2cSJim Jagielski }
92*b1cdbd2cSJim Jagielski }
93*b1cdbd2cSJim Jagielski
94*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------------
95*b1cdbd2cSJim Jagielski
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielski
~SwLabPrtPage()98*b1cdbd2cSJim Jagielski SwLabPrtPage::~SwLabPrtPage()
99*b1cdbd2cSJim Jagielski {
100*b1cdbd2cSJim Jagielski if (pPrinter)
101*b1cdbd2cSJim Jagielski delete pPrinter;
102*b1cdbd2cSJim Jagielski }
103*b1cdbd2cSJim Jagielski
104*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------------
105*b1cdbd2cSJim Jagielski
106*b1cdbd2cSJim Jagielski
107*b1cdbd2cSJim Jagielski
IMPL_LINK(SwLabPrtPage,CountHdl,Button *,pButton)108*b1cdbd2cSJim Jagielski IMPL_LINK( SwLabPrtPage, CountHdl, Button *, pButton )
109*b1cdbd2cSJim Jagielski {
110*b1cdbd2cSJim Jagielski if (pButton == &aPrtSetup)
111*b1cdbd2cSJim Jagielski {
112*b1cdbd2cSJim Jagielski // Druck-Setup aufrufen
113*b1cdbd2cSJim Jagielski if (!pPrinter)
114*b1cdbd2cSJim Jagielski pPrinter = new Printer;
115*b1cdbd2cSJim Jagielski
116*b1cdbd2cSJim Jagielski PrinterSetupDialog* pDlg = new PrinterSetupDialog(this );
117*b1cdbd2cSJim Jagielski pDlg->SetPrinter(pPrinter);
118*b1cdbd2cSJim Jagielski pDlg->Execute();
119*b1cdbd2cSJim Jagielski delete pDlg;
120*b1cdbd2cSJim Jagielski GrabFocus();
121*b1cdbd2cSJim Jagielski aPrinterInfo.SetText(pPrinter->GetName());
122*b1cdbd2cSJim Jagielski return 0;
123*b1cdbd2cSJim Jagielski }
124*b1cdbd2cSJim Jagielski const sal_Bool bEnable = pButton == &aSingleButton;
125*b1cdbd2cSJim Jagielski aColText .Enable(bEnable);
126*b1cdbd2cSJim Jagielski aColField.Enable(bEnable);
127*b1cdbd2cSJim Jagielski aRowText .Enable(bEnable);
128*b1cdbd2cSJim Jagielski aRowField.Enable(bEnable);
129*b1cdbd2cSJim Jagielski aSynchronCB.Enable(!bEnable);
130*b1cdbd2cSJim Jagielski
131*b1cdbd2cSJim Jagielski if ( bEnable )
132*b1cdbd2cSJim Jagielski aColField.GrabFocus();
133*b1cdbd2cSJim Jagielski #ifdef DBG_UTIL
134*b1cdbd2cSJim Jagielski else
135*b1cdbd2cSJim Jagielski ASSERT( pButton == &aPageButton, "NewButton?" );
136*b1cdbd2cSJim Jagielski #endif
137*b1cdbd2cSJim Jagielski return 0;
138*b1cdbd2cSJim Jagielski }
139*b1cdbd2cSJim Jagielski
140*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------------
141*b1cdbd2cSJim Jagielski
142*b1cdbd2cSJim Jagielski
143*b1cdbd2cSJim Jagielski
Create(Window * pParent,const SfxItemSet & rSet)144*b1cdbd2cSJim Jagielski SfxTabPage* SwLabPrtPage::Create(Window* pParent, const SfxItemSet& rSet)
145*b1cdbd2cSJim Jagielski {
146*b1cdbd2cSJim Jagielski return new SwLabPrtPage( pParent, rSet );
147*b1cdbd2cSJim Jagielski }
148*b1cdbd2cSJim Jagielski
149*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------------
150*b1cdbd2cSJim Jagielski
151*b1cdbd2cSJim Jagielski
152*b1cdbd2cSJim Jagielski
ActivatePage(const SfxItemSet & rSet)153*b1cdbd2cSJim Jagielski void SwLabPrtPage::ActivatePage( const SfxItemSet& rSet )
154*b1cdbd2cSJim Jagielski {
155*b1cdbd2cSJim Jagielski Reset(rSet);
156*b1cdbd2cSJim Jagielski }
157*b1cdbd2cSJim Jagielski
158*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------------
159*b1cdbd2cSJim Jagielski
160*b1cdbd2cSJim Jagielski
161*b1cdbd2cSJim Jagielski
DeactivatePage(SfxItemSet * _pSet)162*b1cdbd2cSJim Jagielski int SwLabPrtPage::DeactivatePage(SfxItemSet* _pSet)
163*b1cdbd2cSJim Jagielski {
164*b1cdbd2cSJim Jagielski if ( _pSet )
165*b1cdbd2cSJim Jagielski FillItemSet(*_pSet);
166*b1cdbd2cSJim Jagielski
167*b1cdbd2cSJim Jagielski return sal_True;
168*b1cdbd2cSJim Jagielski }
169*b1cdbd2cSJim Jagielski
170*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------------
171*b1cdbd2cSJim Jagielski
172*b1cdbd2cSJim Jagielski
173*b1cdbd2cSJim Jagielski
FillItem(SwLabItem & rItem)174*b1cdbd2cSJim Jagielski void SwLabPrtPage::FillItem(SwLabItem& rItem)
175*b1cdbd2cSJim Jagielski {
176*b1cdbd2cSJim Jagielski rItem.bPage = aPageButton.IsChecked();
177*b1cdbd2cSJim Jagielski rItem.nCol = (sal_uInt16) aColField.GetValue();
178*b1cdbd2cSJim Jagielski rItem.nRow = (sal_uInt16) aRowField.GetValue();
179*b1cdbd2cSJim Jagielski rItem.bSynchron = aSynchronCB.IsChecked() && aSynchronCB.IsEnabled();
180*b1cdbd2cSJim Jagielski }
181*b1cdbd2cSJim Jagielski
182*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------------
183*b1cdbd2cSJim Jagielski
184*b1cdbd2cSJim Jagielski
185*b1cdbd2cSJim Jagielski
FillItemSet(SfxItemSet & rSet)186*b1cdbd2cSJim Jagielski sal_Bool SwLabPrtPage::FillItemSet(SfxItemSet& rSet)
187*b1cdbd2cSJim Jagielski {
188*b1cdbd2cSJim Jagielski SwLabItem aItem;
189*b1cdbd2cSJim Jagielski GetParent()->GetLabItem(aItem);
190*b1cdbd2cSJim Jagielski FillItem(aItem);
191*b1cdbd2cSJim Jagielski rSet.Put(aItem);
192*b1cdbd2cSJim Jagielski
193*b1cdbd2cSJim Jagielski return sal_True;
194*b1cdbd2cSJim Jagielski }
195*b1cdbd2cSJim Jagielski
196*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------------
197*b1cdbd2cSJim Jagielski
198*b1cdbd2cSJim Jagielski
199*b1cdbd2cSJim Jagielski
Reset(const SfxItemSet &)200*b1cdbd2cSJim Jagielski void SwLabPrtPage::Reset(const SfxItemSet& )
201*b1cdbd2cSJim Jagielski {
202*b1cdbd2cSJim Jagielski SwLabItem aItem;
203*b1cdbd2cSJim Jagielski GetParent()->GetLabItem(aItem);
204*b1cdbd2cSJim Jagielski
205*b1cdbd2cSJim Jagielski aColField.SetValue (aItem.nCol);
206*b1cdbd2cSJim Jagielski aRowField.SetValue (aItem.nRow);
207*b1cdbd2cSJim Jagielski
208*b1cdbd2cSJim Jagielski if (aItem.bPage)
209*b1cdbd2cSJim Jagielski {
210*b1cdbd2cSJim Jagielski aPageButton.Check();
211*b1cdbd2cSJim Jagielski aPageButton.GetClickHdl().Call(&aPageButton);
212*b1cdbd2cSJim Jagielski }
213*b1cdbd2cSJim Jagielski else
214*b1cdbd2cSJim Jagielski {
215*b1cdbd2cSJim Jagielski aSingleButton.GetClickHdl().Call(&aSingleButton);
216*b1cdbd2cSJim Jagielski aSingleButton.Check();
217*b1cdbd2cSJim Jagielski }
218*b1cdbd2cSJim Jagielski
219*b1cdbd2cSJim Jagielski if (pPrinter)
220*b1cdbd2cSJim Jagielski {
221*b1cdbd2cSJim Jagielski // Drucker anzeigen
222*b1cdbd2cSJim Jagielski aPrinterInfo.SetText(pPrinter->GetName());
223*b1cdbd2cSJim Jagielski }
224*b1cdbd2cSJim Jagielski else
225*b1cdbd2cSJim Jagielski aPrinterInfo.SetText(Printer::GetDefaultPrinterName());
226*b1cdbd2cSJim Jagielski
227*b1cdbd2cSJim Jagielski aColField.SetMax(aItem.nCols);
228*b1cdbd2cSJim Jagielski aRowField.SetMax(aItem.nRows);
229*b1cdbd2cSJim Jagielski
230*b1cdbd2cSJim Jagielski aColField.SetLast(aColField.GetMax());
231*b1cdbd2cSJim Jagielski aRowField.SetLast(aRowField.GetMax());
232*b1cdbd2cSJim Jagielski
233*b1cdbd2cSJim Jagielski aSynchronCB.Check(aItem.bSynchron);
234*b1cdbd2cSJim Jagielski }
235*b1cdbd2cSJim Jagielski
236*b1cdbd2cSJim Jagielski
237*b1cdbd2cSJim Jagielski
238*b1cdbd2cSJim Jagielski
239