xref: /aoo4110/main/sw/source/ui/envelp/labprt.cxx (revision b1cdbd2c)
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