xref: /AOO41X/main/sw/source/ui/envelp/envlop1.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
29*cdf0e10cSrcweir #include "precompiled_sw.hxx"
30*cdf0e10cSrcweir #ifdef SW_DLLIMPLEMENTATION
31*cdf0e10cSrcweir #undef SW_DLLIMPLEMENTATION
32*cdf0e10cSrcweir #endif
33*cdf0e10cSrcweir 
34*cdf0e10cSrcweir 
35*cdf0e10cSrcweir 
36*cdf0e10cSrcweir #include "dbmgr.hxx"
37*cdf0e10cSrcweir #include <sfx2/app.hxx>
38*cdf0e10cSrcweir #include <vcl/msgbox.hxx>
39*cdf0e10cSrcweir #include <swwait.hxx>
40*cdf0e10cSrcweir #include <viewopt.hxx>
41*cdf0e10cSrcweir 
42*cdf0e10cSrcweir #include "wrtsh.hxx"
43*cdf0e10cSrcweir #include "errhdl.hxx"
44*cdf0e10cSrcweir #include "cmdid.h"
45*cdf0e10cSrcweir #include "helpid.h"
46*cdf0e10cSrcweir #include "envfmt.hxx"
47*cdf0e10cSrcweir #include "envlop.hxx"
48*cdf0e10cSrcweir #include "envprt.hxx"
49*cdf0e10cSrcweir #include "fmtcol.hxx"
50*cdf0e10cSrcweir #include "poolfmt.hxx"
51*cdf0e10cSrcweir #include "view.hxx"
52*cdf0e10cSrcweir 
53*cdf0e10cSrcweir #include "envlop.hrc"
54*cdf0e10cSrcweir #include <comphelper/processfactory.hxx>
55*cdf0e10cSrcweir 
56*cdf0e10cSrcweir #include <unomid.h>
57*cdf0e10cSrcweir 
58*cdf0e10cSrcweir using namespace ::com::sun::star::lang;
59*cdf0e10cSrcweir using namespace ::com::sun::star::container;
60*cdf0e10cSrcweir using namespace ::com::sun::star::uno;
61*cdf0e10cSrcweir using namespace ::com::sun::star;
62*cdf0e10cSrcweir using namespace ::rtl;
63*cdf0e10cSrcweir 
64*cdf0e10cSrcweir 
65*cdf0e10cSrcweir //impl in envimg.cxx
66*cdf0e10cSrcweir extern SW_DLLPUBLIC String MakeSender();
67*cdf0e10cSrcweir 
68*cdf0e10cSrcweir // --------------------------------------------------------------------------
69*cdf0e10cSrcweir 
70*cdf0e10cSrcweir SwEnvPreview::SwEnvPreview(SfxTabPage* pParent, const ResId& rResID) :
71*cdf0e10cSrcweir 
72*cdf0e10cSrcweir 	Window(pParent, rResID)
73*cdf0e10cSrcweir 
74*cdf0e10cSrcweir {
75*cdf0e10cSrcweir 	SetMapMode(MapMode(MAP_PIXEL));
76*cdf0e10cSrcweir }
77*cdf0e10cSrcweir 
78*cdf0e10cSrcweir // --------------------------------------------------------------------------
79*cdf0e10cSrcweir 
80*cdf0e10cSrcweir 
81*cdf0e10cSrcweir 
82*cdf0e10cSrcweir SwEnvPreview::~SwEnvPreview()
83*cdf0e10cSrcweir {
84*cdf0e10cSrcweir }
85*cdf0e10cSrcweir 
86*cdf0e10cSrcweir // ----------------------------------------------------------------------------
87*cdf0e10cSrcweir void SwEnvPreview::DataChanged( const DataChangedEvent& rDCEvt )
88*cdf0e10cSrcweir {
89*cdf0e10cSrcweir 	Window::DataChanged( rDCEvt );
90*cdf0e10cSrcweir 	if ( DATACHANGED_SETTINGS == rDCEvt.GetType() )
91*cdf0e10cSrcweir 		SetBackground( GetSettings().GetStyleSettings().GetDialogColor() );
92*cdf0e10cSrcweir }
93*cdf0e10cSrcweir 
94*cdf0e10cSrcweir // ----------------------------------------------------------------------------
95*cdf0e10cSrcweir 
96*cdf0e10cSrcweir void SwEnvPreview::Paint(const Rectangle &)
97*cdf0e10cSrcweir {
98*cdf0e10cSrcweir 	const StyleSettings& rSettings = GetSettings().GetStyleSettings();
99*cdf0e10cSrcweir 
100*cdf0e10cSrcweir 	const SwEnvItem& rItem =
101*cdf0e10cSrcweir 		((SwEnvDlg*) GetParent()->GetParent()->GetParent())->aEnvItem;
102*cdf0e10cSrcweir 
103*cdf0e10cSrcweir 	sal_uInt16 nPageW = (sal_uInt16) Max(rItem.lWidth, rItem.lHeight),
104*cdf0e10cSrcweir 		   nPageH = (sal_uInt16) Min(rItem.lWidth, rItem.lHeight);
105*cdf0e10cSrcweir 
106*cdf0e10cSrcweir     float fx = (float)GetOutputSizePixel().Width () / (float)nPageW,
107*cdf0e10cSrcweir           fy = (float)GetOutputSizePixel().Height() / (float)nPageH,
108*cdf0e10cSrcweir           f  = 0.8f * ( fx < fy ? fx : fy );
109*cdf0e10cSrcweir 
110*cdf0e10cSrcweir 	Color aBack = rSettings.GetWindowColor( );
111*cdf0e10cSrcweir     Color aFront = SwViewOption::GetFontColor();
112*cdf0e10cSrcweir 	Color aMedium = Color(	( aBack.GetRed() + aFront.GetRed() ) / 2,
113*cdf0e10cSrcweir 							( aBack.GetGreen() + aFront.GetGreen() ) / 2,
114*cdf0e10cSrcweir 							( aBack.GetBlue() + aFront.GetBlue() ) / 2
115*cdf0e10cSrcweir 						);
116*cdf0e10cSrcweir 
117*cdf0e10cSrcweir 	SetLineColor( aFront );
118*cdf0e10cSrcweir 
119*cdf0e10cSrcweir 	// Umschlag
120*cdf0e10cSrcweir 	long   nW = (sal_uInt16) (f * nPageW),
121*cdf0e10cSrcweir 		   nH = (sal_uInt16) (f * nPageH),
122*cdf0e10cSrcweir 		   nX = (GetOutputSizePixel().Width () - nW) / 2,
123*cdf0e10cSrcweir 		   nY = (GetOutputSizePixel().Height() - nH) / 2;
124*cdf0e10cSrcweir 	SetFillColor( aBack );
125*cdf0e10cSrcweir 	DrawRect(Rectangle(Point(nX, nY), Size(nW, nH)));
126*cdf0e10cSrcweir 
127*cdf0e10cSrcweir 	// Absender
128*cdf0e10cSrcweir 	if (rItem.bSend)
129*cdf0e10cSrcweir 	{
130*cdf0e10cSrcweir 		long   nSendX = nX + (sal_uInt16) (f * rItem.lSendFromLeft),
131*cdf0e10cSrcweir 			   nSendY = nY + (sal_uInt16) (f * rItem.lSendFromTop ),
132*cdf0e10cSrcweir 			   nSendW = (sal_uInt16) (f * (rItem.lAddrFromLeft - rItem.lSendFromLeft)),
133*cdf0e10cSrcweir 			   nSendH = (sal_uInt16) (f * (rItem.lAddrFromTop  - rItem.lSendFromTop  - 566));
134*cdf0e10cSrcweir 		SetFillColor( aMedium );
135*cdf0e10cSrcweir 
136*cdf0e10cSrcweir 		DrawRect(Rectangle(Point(nSendX, nSendY), Size(nSendW, nSendH)));
137*cdf0e10cSrcweir 	}
138*cdf0e10cSrcweir 
139*cdf0e10cSrcweir 	// Empfaenger
140*cdf0e10cSrcweir 	long   nAddrX = nX + (sal_uInt16) (f * rItem.lAddrFromLeft),
141*cdf0e10cSrcweir 		   nAddrY = nY + (sal_uInt16) (f * rItem.lAddrFromTop ),
142*cdf0e10cSrcweir 		   nAddrW = (sal_uInt16) (f * (nPageW - rItem.lAddrFromLeft - 566)),
143*cdf0e10cSrcweir 		   nAddrH = (sal_uInt16) (f * (nPageH - rItem.lAddrFromTop  - 566));
144*cdf0e10cSrcweir 	SetFillColor( aMedium );
145*cdf0e10cSrcweir 	DrawRect(Rectangle(Point(nAddrX, nAddrY), Size(nAddrW, nAddrH)));
146*cdf0e10cSrcweir 
147*cdf0e10cSrcweir 	// Briefmarke
148*cdf0e10cSrcweir 	long   nStmpW = (sal_uInt16) (f * 1417 /* 2,5 cm */),
149*cdf0e10cSrcweir 		   nStmpH = (sal_uInt16) (f * 1701 /* 3,0 cm */),
150*cdf0e10cSrcweir 		   nStmpX = nX + nW - (sal_uInt16) (f * 566) - nStmpW,
151*cdf0e10cSrcweir 		   nStmpY = nY + (sal_uInt16) (f * 566);
152*cdf0e10cSrcweir 
153*cdf0e10cSrcweir 	SetFillColor( aBack );
154*cdf0e10cSrcweir 	DrawRect(Rectangle(Point(nStmpX, nStmpY), Size(nStmpW, nStmpH)));
155*cdf0e10cSrcweir }
156*cdf0e10cSrcweir 
157*cdf0e10cSrcweir // --------------------------------------------------------------------------
158*cdf0e10cSrcweir 
159*cdf0e10cSrcweir 
160*cdf0e10cSrcweir 
161*cdf0e10cSrcweir SwEnvDlg::SwEnvDlg(Window* pParent, const SfxItemSet& rSet,
162*cdf0e10cSrcweir 					SwWrtShell* pWrtSh, Printer* pPrt, sal_Bool bInsert) :
163*cdf0e10cSrcweir 
164*cdf0e10cSrcweir 	SfxTabDialog(pParent, SW_RES(DLG_ENV), &rSet, sal_False, &aEmptyStr),
165*cdf0e10cSrcweir 	sInsert(SW_RES(ST_INSERT)),
166*cdf0e10cSrcweir 	sChange(SW_RES(ST_CHANGE)),
167*cdf0e10cSrcweir 	aEnvItem((const SwEnvItem&) rSet.Get(FN_ENVELOP)),
168*cdf0e10cSrcweir 	pSh(pWrtSh),
169*cdf0e10cSrcweir 	pPrinter(pPrt),
170*cdf0e10cSrcweir 	pAddresseeSet(0),
171*cdf0e10cSrcweir 	pSenderSet(0)
172*cdf0e10cSrcweir {
173*cdf0e10cSrcweir 	FreeResource();
174*cdf0e10cSrcweir 
175*cdf0e10cSrcweir 	GetOKButton().SetText(String(SW_RES(STR_BTN_NEWDOC)));
176*cdf0e10cSrcweir 	GetOKButton().SetHelpId(HID_ENVELOP_PRINT);
177*cdf0e10cSrcweir 	GetOKButton().SetHelpText(aEmptyStr);	// Damit generierter Hilfetext verwendet wird
178*cdf0e10cSrcweir 	if (GetUserButton())
179*cdf0e10cSrcweir 	{
180*cdf0e10cSrcweir 		GetUserButton()->SetText(bInsert ? sInsert : sChange);
181*cdf0e10cSrcweir 		GetUserButton()->SetHelpId(HID_ENVELOP_INSERT);
182*cdf0e10cSrcweir 	}
183*cdf0e10cSrcweir 
184*cdf0e10cSrcweir 	AddTabPage(TP_ENV_ENV, SwEnvPage   ::Create, 0);
185*cdf0e10cSrcweir 	AddTabPage(TP_ENV_FMT, SwEnvFmtPage::Create, 0);
186*cdf0e10cSrcweir 	AddTabPage(TP_ENV_PRT, SwEnvPrtPage::Create, 0);
187*cdf0e10cSrcweir }
188*cdf0e10cSrcweir 
189*cdf0e10cSrcweir // --------------------------------------------------------------------------
190*cdf0e10cSrcweir 
191*cdf0e10cSrcweir 
192*cdf0e10cSrcweir 
193*cdf0e10cSrcweir SwEnvDlg::~SwEnvDlg()
194*cdf0e10cSrcweir {
195*cdf0e10cSrcweir 	delete pAddresseeSet;
196*cdf0e10cSrcweir 	delete pSenderSet;
197*cdf0e10cSrcweir }
198*cdf0e10cSrcweir 
199*cdf0e10cSrcweir // --------------------------------------------------------------------------
200*cdf0e10cSrcweir 
201*cdf0e10cSrcweir 
202*cdf0e10cSrcweir 
203*cdf0e10cSrcweir void SwEnvDlg::PageCreated(sal_uInt16 nId, SfxTabPage &rPage)
204*cdf0e10cSrcweir {
205*cdf0e10cSrcweir 	if (nId == TP_ENV_PRT)
206*cdf0e10cSrcweir 	{
207*cdf0e10cSrcweir 		((SwEnvPrtPage*)&rPage)->SetPrt(pPrinter);
208*cdf0e10cSrcweir 	}
209*cdf0e10cSrcweir }
210*cdf0e10cSrcweir 
211*cdf0e10cSrcweir // --------------------------------------------------------------------------
212*cdf0e10cSrcweir 
213*cdf0e10cSrcweir short SwEnvDlg::Ok()
214*cdf0e10cSrcweir {
215*cdf0e10cSrcweir 	short nRet = SfxTabDialog::Ok();
216*cdf0e10cSrcweir 
217*cdf0e10cSrcweir 	if (nRet == RET_OK || nRet == RET_USER)
218*cdf0e10cSrcweir 	{
219*cdf0e10cSrcweir 		if (pAddresseeSet)
220*cdf0e10cSrcweir 		{
221*cdf0e10cSrcweir 			SwTxtFmtColl* pColl = pSh->GetTxtCollFromPool(RES_POOLCOLL_JAKETADRESS);
222*cdf0e10cSrcweir             pColl->SetFmtAttr(*pAddresseeSet);
223*cdf0e10cSrcweir 		}
224*cdf0e10cSrcweir 		if (pSenderSet)
225*cdf0e10cSrcweir 		{
226*cdf0e10cSrcweir 			SwTxtFmtColl* pColl = pSh->GetTxtCollFromPool(RES_POOLCOLL_SENDADRESS);
227*cdf0e10cSrcweir             pColl->SetFmtAttr(*pSenderSet);
228*cdf0e10cSrcweir 		}
229*cdf0e10cSrcweir 	}
230*cdf0e10cSrcweir 
231*cdf0e10cSrcweir 	return nRet;
232*cdf0e10cSrcweir }
233*cdf0e10cSrcweir 
234*cdf0e10cSrcweir // --------------------------------------------------------------------------
235*cdf0e10cSrcweir 
236*cdf0e10cSrcweir 
237*cdf0e10cSrcweir 
238*cdf0e10cSrcweir SwEnvPage::SwEnvPage(Window* pParent, const SfxItemSet& rSet) :
239*cdf0e10cSrcweir 
240*cdf0e10cSrcweir 	SfxTabPage(pParent, SW_RES(TP_ENV_ENV), rSet),
241*cdf0e10cSrcweir 
242*cdf0e10cSrcweir 	aAddrText      (this, SW_RES(TXT_ADDR   )),
243*cdf0e10cSrcweir 	aAddrEdit      (this, SW_RES(EDT_ADDR   )),
244*cdf0e10cSrcweir 	aDatabaseFT    (this, SW_RES(FT_DATABASE)),
245*cdf0e10cSrcweir 	aDatabaseLB    (this, SW_RES(LB_DATABASE)),
246*cdf0e10cSrcweir 	aTableFT       (this, SW_RES(FT_TABLE   )),
247*cdf0e10cSrcweir 	aTableLB       (this, SW_RES(LB_TABLE   )),
248*cdf0e10cSrcweir 	aInsertBT      (this, SW_RES(BTN_INSERT )),
249*cdf0e10cSrcweir 	aDBFieldFT     (this, SW_RES(FT_DBFIELD )),
250*cdf0e10cSrcweir 	aDBFieldLB     (this, SW_RES(LB_DBFIELD )),
251*cdf0e10cSrcweir 	aSenderBox     (this, SW_RES(BOX_SEND   )),
252*cdf0e10cSrcweir 	aSenderEdit    (this, SW_RES(EDT_SEND   )),
253*cdf0e10cSrcweir 	aPreview       (this, SW_RES(WIN_PREVIEW))
254*cdf0e10cSrcweir 
255*cdf0e10cSrcweir {
256*cdf0e10cSrcweir 	FreeResource();
257*cdf0e10cSrcweir 	SetExchangeSupport();
258*cdf0e10cSrcweir 	pSh = GetParent()->pSh;
259*cdf0e10cSrcweir 
260*cdf0e10cSrcweir 	// Handler installieren
261*cdf0e10cSrcweir 	aDatabaseLB    .SetSelectHdl(LINK(this, SwEnvPage, DatabaseHdl	   ));
262*cdf0e10cSrcweir 	aTableLB       .SetSelectHdl(LINK(this, SwEnvPage, DatabaseHdl	   ));
263*cdf0e10cSrcweir 	aInsertBT      .SetClickHdl	(LINK(this, SwEnvPage, FieldHdl		   ));
264*cdf0e10cSrcweir 	aSenderBox	   .SetClickHdl (LINK(this, SwEnvPage, SenderHdl       ));
265*cdf0e10cSrcweir     aPreview.SetBorderStyle( WINDOW_BORDER_MONO );
266*cdf0e10cSrcweir 
267*cdf0e10cSrcweir 	SwDBData aData = pSh->GetDBData();
268*cdf0e10cSrcweir 	sActDBName = aData.sDataSource;
269*cdf0e10cSrcweir 	sActDBName += DB_DELIM;
270*cdf0e10cSrcweir 	sActDBName += (String)aData.sCommand;
271*cdf0e10cSrcweir 	InitDatabaseBox();
272*cdf0e10cSrcweir }
273*cdf0e10cSrcweir 
274*cdf0e10cSrcweir // --------------------------------------------------------------------------
275*cdf0e10cSrcweir 
276*cdf0e10cSrcweir 
277*cdf0e10cSrcweir 
278*cdf0e10cSrcweir SwEnvPage::~SwEnvPage()
279*cdf0e10cSrcweir {
280*cdf0e10cSrcweir }
281*cdf0e10cSrcweir 
282*cdf0e10cSrcweir // --------------------------------------------------------------------------
283*cdf0e10cSrcweir 
284*cdf0e10cSrcweir 
285*cdf0e10cSrcweir 
286*cdf0e10cSrcweir IMPL_LINK( SwEnvPage, DatabaseHdl, ListBox *, pListBox )
287*cdf0e10cSrcweir {
288*cdf0e10cSrcweir 	SwWait aWait( *pSh->GetView().GetDocShell(), sal_True );
289*cdf0e10cSrcweir 
290*cdf0e10cSrcweir 	if (pListBox == &aDatabaseLB)
291*cdf0e10cSrcweir     {
292*cdf0e10cSrcweir         sActDBName = pListBox->GetSelectEntry();
293*cdf0e10cSrcweir         pSh->GetNewDBMgr()->GetTableNames(&aTableLB, sActDBName);
294*cdf0e10cSrcweir         sActDBName += DB_DELIM;
295*cdf0e10cSrcweir     }
296*cdf0e10cSrcweir     else
297*cdf0e10cSrcweir         sActDBName.SetToken(1, DB_DELIM, aTableLB.GetSelectEntry());
298*cdf0e10cSrcweir     pSh->GetNewDBMgr()->GetColumnNames(
299*cdf0e10cSrcweir         &aDBFieldLB, aDatabaseLB.GetSelectEntry(), aTableLB.GetSelectEntry());
300*cdf0e10cSrcweir 	return 0;
301*cdf0e10cSrcweir }
302*cdf0e10cSrcweir 
303*cdf0e10cSrcweir // --------------------------------------------------------------------------
304*cdf0e10cSrcweir 
305*cdf0e10cSrcweir 
306*cdf0e10cSrcweir 
307*cdf0e10cSrcweir IMPL_LINK( SwEnvPage, FieldHdl, Button *, EMPTYARG )
308*cdf0e10cSrcweir {
309*cdf0e10cSrcweir 	String aStr ( '<' );
310*cdf0e10cSrcweir 	aStr += aDatabaseLB.GetSelectEntry();
311*cdf0e10cSrcweir 	aStr += '.';
312*cdf0e10cSrcweir //	aStr += DB_DELIM;
313*cdf0e10cSrcweir 	aStr += aTableLB.GetSelectEntry();
314*cdf0e10cSrcweir 	aStr += '.';
315*cdf0e10cSrcweir     aStr += aTableLB.GetEntryData(aTableLB.GetSelectEntryPos()) == 0 ? '0' : '1';
316*cdf0e10cSrcweir 	aStr += '.';
317*cdf0e10cSrcweir //  aStr += DB_DELIM;
318*cdf0e10cSrcweir 	aStr += aDBFieldLB.GetSelectEntry();
319*cdf0e10cSrcweir 	aStr += '>';
320*cdf0e10cSrcweir 	aAddrEdit.ReplaceSelected(aStr);
321*cdf0e10cSrcweir 	Selection aSel = aAddrEdit.GetSelection();
322*cdf0e10cSrcweir 	aAddrEdit.GrabFocus();
323*cdf0e10cSrcweir 	aAddrEdit.SetSelection(aSel);
324*cdf0e10cSrcweir 	return 0;
325*cdf0e10cSrcweir }
326*cdf0e10cSrcweir 
327*cdf0e10cSrcweir // --------------------------------------------------------------------------
328*cdf0e10cSrcweir 
329*cdf0e10cSrcweir 
330*cdf0e10cSrcweir 
331*cdf0e10cSrcweir IMPL_LINK( SwEnvPage, SenderHdl, Button *, EMPTYARG )
332*cdf0e10cSrcweir {
333*cdf0e10cSrcweir 	const sal_Bool bEnable = aSenderBox.IsChecked();
334*cdf0e10cSrcweir 	GetParent()->aEnvItem.bSend = bEnable;
335*cdf0e10cSrcweir 	aSenderEdit.Enable(bEnable);
336*cdf0e10cSrcweir 	if ( bEnable )
337*cdf0e10cSrcweir     {
338*cdf0e10cSrcweir 		aSenderEdit.GrabFocus();
339*cdf0e10cSrcweir         if(!aSenderEdit.GetText().Len())
340*cdf0e10cSrcweir             aSenderEdit.SetText(MakeSender());
341*cdf0e10cSrcweir     }
342*cdf0e10cSrcweir 	aPreview.Invalidate();
343*cdf0e10cSrcweir 	return 0;
344*cdf0e10cSrcweir }
345*cdf0e10cSrcweir 
346*cdf0e10cSrcweir // --------------------------------------------------------------------------
347*cdf0e10cSrcweir 
348*cdf0e10cSrcweir 
349*cdf0e10cSrcweir 
350*cdf0e10cSrcweir void SwEnvPage::InitDatabaseBox()
351*cdf0e10cSrcweir {
352*cdf0e10cSrcweir 	if (pSh->GetNewDBMgr())
353*cdf0e10cSrcweir 	{
354*cdf0e10cSrcweir 		aDatabaseLB.Clear();
355*cdf0e10cSrcweir 		Sequence<OUString> aDataNames = SwNewDBMgr::GetExistingDatabaseNames();
356*cdf0e10cSrcweir 		const OUString* pDataNames = aDataNames.getConstArray();
357*cdf0e10cSrcweir 		for (long i = 0; i < aDataNames.getLength(); i++)
358*cdf0e10cSrcweir 			aDatabaseLB.InsertEntry(pDataNames[i]);
359*cdf0e10cSrcweir 
360*cdf0e10cSrcweir 		String sDBName = sActDBName.GetToken( 0, DB_DELIM );
361*cdf0e10cSrcweir 		String sTableName = sActDBName.GetToken( 1, DB_DELIM );
362*cdf0e10cSrcweir 		aDatabaseLB.SelectEntry(sDBName);
363*cdf0e10cSrcweir 		if (pSh->GetNewDBMgr()->GetTableNames(&aTableLB, sDBName))
364*cdf0e10cSrcweir 		{
365*cdf0e10cSrcweir 			aTableLB.SelectEntry(sTableName);
366*cdf0e10cSrcweir             pSh->GetNewDBMgr()->GetColumnNames(&aDBFieldLB, sDBName, sTableName);
367*cdf0e10cSrcweir 		}
368*cdf0e10cSrcweir 		else
369*cdf0e10cSrcweir 			aDBFieldLB.Clear();
370*cdf0e10cSrcweir 
371*cdf0e10cSrcweir 	}
372*cdf0e10cSrcweir }
373*cdf0e10cSrcweir 
374*cdf0e10cSrcweir // --------------------------------------------------------------------------
375*cdf0e10cSrcweir 
376*cdf0e10cSrcweir 
377*cdf0e10cSrcweir 
378*cdf0e10cSrcweir SfxTabPage* SwEnvPage::Create(Window* pParent, const SfxItemSet& rSet)
379*cdf0e10cSrcweir {
380*cdf0e10cSrcweir 	return new SwEnvPage(pParent, rSet);
381*cdf0e10cSrcweir }
382*cdf0e10cSrcweir 
383*cdf0e10cSrcweir // --------------------------------------------------------------------------
384*cdf0e10cSrcweir 
385*cdf0e10cSrcweir 
386*cdf0e10cSrcweir 
387*cdf0e10cSrcweir void SwEnvPage::ActivatePage(const SfxItemSet& rSet)
388*cdf0e10cSrcweir {
389*cdf0e10cSrcweir 	SfxItemSet aSet(rSet);
390*cdf0e10cSrcweir 	aSet.Put(GetParent()->aEnvItem);
391*cdf0e10cSrcweir 	Reset(aSet);
392*cdf0e10cSrcweir }
393*cdf0e10cSrcweir 
394*cdf0e10cSrcweir // --------------------------------------------------------------------------
395*cdf0e10cSrcweir 
396*cdf0e10cSrcweir 
397*cdf0e10cSrcweir 
398*cdf0e10cSrcweir int SwEnvPage::DeactivatePage(SfxItemSet* _pSet)
399*cdf0e10cSrcweir {
400*cdf0e10cSrcweir 	FillItem(GetParent()->aEnvItem);
401*cdf0e10cSrcweir     if( _pSet )
402*cdf0e10cSrcweir         FillItemSet(*_pSet);
403*cdf0e10cSrcweir 	return SfxTabPage::LEAVE_PAGE;
404*cdf0e10cSrcweir }
405*cdf0e10cSrcweir 
406*cdf0e10cSrcweir // --------------------------------------------------------------------------
407*cdf0e10cSrcweir 
408*cdf0e10cSrcweir 
409*cdf0e10cSrcweir 
410*cdf0e10cSrcweir void SwEnvPage::FillItem(SwEnvItem& rItem)
411*cdf0e10cSrcweir {
412*cdf0e10cSrcweir 	rItem.aAddrText = aAddrEdit  .GetText();
413*cdf0e10cSrcweir 	rItem.bSend     = aSenderBox .IsChecked();
414*cdf0e10cSrcweir 	rItem.aSendText = aSenderEdit.GetText();
415*cdf0e10cSrcweir }
416*cdf0e10cSrcweir 
417*cdf0e10cSrcweir // --------------------------------------------------------------------------
418*cdf0e10cSrcweir 
419*cdf0e10cSrcweir 
420*cdf0e10cSrcweir 
421*cdf0e10cSrcweir sal_Bool SwEnvPage::FillItemSet(SfxItemSet& rSet)
422*cdf0e10cSrcweir {
423*cdf0e10cSrcweir 	FillItem(GetParent()->aEnvItem);
424*cdf0e10cSrcweir 	rSet.Put(GetParent()->aEnvItem);
425*cdf0e10cSrcweir 	return sal_True;
426*cdf0e10cSrcweir }
427*cdf0e10cSrcweir 
428*cdf0e10cSrcweir // ----------------------------------------------------------------------------
429*cdf0e10cSrcweir 
430*cdf0e10cSrcweir 
431*cdf0e10cSrcweir 
432*cdf0e10cSrcweir void SwEnvPage::Reset(const SfxItemSet& rSet)
433*cdf0e10cSrcweir {
434*cdf0e10cSrcweir 	SwEnvItem aItem = (const SwEnvItem&) rSet.Get(FN_ENVELOP);
435*cdf0e10cSrcweir 	aAddrEdit  .SetText(String(aItem.aAddrText).ConvertLineEnd());
436*cdf0e10cSrcweir 	aSenderEdit.SetText(String(aItem.aSendText).ConvertLineEnd());
437*cdf0e10cSrcweir 	aSenderBox .Check  (aItem.bSend);
438*cdf0e10cSrcweir 	aSenderBox.GetClickHdl().Call(&aSenderBox);
439*cdf0e10cSrcweir }
440*cdf0e10cSrcweir 
441*cdf0e10cSrcweir 
442