xref: /AOO41X/main/sw/source/ui/envelp/envimg.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 
31*cdf0e10cSrcweir 
32*cdf0e10cSrcweir #include <hintids.hxx>
33*cdf0e10cSrcweir #include <tools/stream.hxx>
34*cdf0e10cSrcweir #include <tools/resid.hxx>
35*cdf0e10cSrcweir #include <sfx2/app.hxx>
36*cdf0e10cSrcweir #include <editeng/paperinf.hxx>
37*cdf0e10cSrcweir #include <com/sun/star/uno/Sequence.hxx>
38*cdf0e10cSrcweir #include <unotools/useroptions.hxx>
39*cdf0e10cSrcweir #include <tools/shl.hxx>
40*cdf0e10cSrcweir #include <swmodule.hxx>
41*cdf0e10cSrcweir #include <errhdl.hxx>
42*cdf0e10cSrcweir #include <swtypes.hxx>
43*cdf0e10cSrcweir #include <envimg.hxx>
44*cdf0e10cSrcweir 
45*cdf0e10cSrcweir #ifndef _CMDID_H
46*cdf0e10cSrcweir #include <cmdid.h>
47*cdf0e10cSrcweir #endif
48*cdf0e10cSrcweir #ifndef _ENVELP_HRC
49*cdf0e10cSrcweir #include <envelp.hrc>
50*cdf0e10cSrcweir #endif
51*cdf0e10cSrcweir 
52*cdf0e10cSrcweir #include <unomid.h>
53*cdf0e10cSrcweir 
54*cdf0e10cSrcweir #ifdef WNT
55*cdf0e10cSrcweir #define NEXTLINE  UniString::CreateFromAscii("\r\n")
56*cdf0e10cSrcweir #else
57*cdf0e10cSrcweir #define NEXTLINE  '\n'
58*cdf0e10cSrcweir #endif
59*cdf0e10cSrcweir 
60*cdf0e10cSrcweir using namespace utl;
61*cdf0e10cSrcweir using namespace rtl;
62*cdf0e10cSrcweir using namespace ::com::sun::star::uno;
63*cdf0e10cSrcweir 
64*cdf0e10cSrcweir 
65*cdf0e10cSrcweir TYPEINIT1_AUTOFACTORY( SwEnvItem, SfxPoolItem );
66*cdf0e10cSrcweir 
67*cdf0e10cSrcweir // --------------------------------------------------------------------------
68*cdf0e10cSrcweir SW_DLLPUBLIC String MakeSender()
69*cdf0e10cSrcweir {
70*cdf0e10cSrcweir     SvtUserOptions& rUserOpt = SW_MOD()->GetUserOptions();
71*cdf0e10cSrcweir 
72*cdf0e10cSrcweir 	String sRet;
73*cdf0e10cSrcweir 	String sSenderToken(SW_RES(STR_SENDER_TOKENS));
74*cdf0e10cSrcweir 	xub_StrLen nSttPos = 0, nTokenCount = sSenderToken.GetTokenCount(';');
75*cdf0e10cSrcweir 	sal_Bool bLastLength = sal_True;
76*cdf0e10cSrcweir 	for( xub_StrLen i = 0; i < nTokenCount; i++ )
77*cdf0e10cSrcweir 	{
78*cdf0e10cSrcweir 		String sToken = sSenderToken.GetToken( 0, ';', nSttPos );
79*cdf0e10cSrcweir 		if(sToken.EqualsAscii("COMPANY"))
80*cdf0e10cSrcweir 		{
81*cdf0e10cSrcweir 			xub_StrLen nOldLen = sRet.Len();
82*cdf0e10cSrcweir             sRet += (String)rUserOpt.GetCompany();
83*cdf0e10cSrcweir 			bLastLength = sRet.Len() != nOldLen;
84*cdf0e10cSrcweir 		}
85*cdf0e10cSrcweir 		else if(sToken.EqualsAscii("CR"))
86*cdf0e10cSrcweir 		{
87*cdf0e10cSrcweir 			if(bLastLength)
88*cdf0e10cSrcweir 				sRet +=NEXTLINE;
89*cdf0e10cSrcweir 			bLastLength = sal_True;
90*cdf0e10cSrcweir 		}
91*cdf0e10cSrcweir 		else if(sToken.EqualsAscii("FIRSTNAME"))
92*cdf0e10cSrcweir             sRet += (String)rUserOpt.GetFirstName();
93*cdf0e10cSrcweir 		else if(sToken.EqualsAscii("LASTNAME"))
94*cdf0e10cSrcweir             sRet += (String)rUserOpt.GetLastName();
95*cdf0e10cSrcweir 		else if(sToken.EqualsAscii("ADDRESS"))
96*cdf0e10cSrcweir             sRet += (String)rUserOpt.GetStreet();
97*cdf0e10cSrcweir 		else if(sToken.EqualsAscii("COUNTRY"))
98*cdf0e10cSrcweir             sRet += (String)rUserOpt.GetCountry();
99*cdf0e10cSrcweir 		else if(sToken.EqualsAscii("POSTALCODE"))
100*cdf0e10cSrcweir             sRet += (String)rUserOpt.GetZip();
101*cdf0e10cSrcweir 		else if(sToken.EqualsAscii("CITY"))
102*cdf0e10cSrcweir             sRet += (String)rUserOpt.GetCity();
103*cdf0e10cSrcweir 		else if(sToken.EqualsAscii("STATEPROV"))
104*cdf0e10cSrcweir             sRet += (String)rUserOpt.GetState();
105*cdf0e10cSrcweir 		else if(sToken.Len()) //spaces
106*cdf0e10cSrcweir 			sRet += sToken;
107*cdf0e10cSrcweir 	}
108*cdf0e10cSrcweir 	return sRet;
109*cdf0e10cSrcweir }
110*cdf0e10cSrcweir // --------------------------------------------------------------------------
111*cdf0e10cSrcweir SwEnvItem::SwEnvItem() :
112*cdf0e10cSrcweir 	SfxPoolItem(FN_ENVELOP)
113*cdf0e10cSrcweir {
114*cdf0e10cSrcweir 	aAddrText       = aEmptyStr;
115*cdf0e10cSrcweir 	bSend           = sal_True;
116*cdf0e10cSrcweir 	aSendText       = MakeSender();
117*cdf0e10cSrcweir 	lSendFromLeft   = 566; // 1 cm
118*cdf0e10cSrcweir 	lSendFromTop    = 566; // 1 cm
119*cdf0e10cSrcweir 	Size aEnvSz     = SvxPaperInfo::GetPaperSize(PAPER_ENV_C65);
120*cdf0e10cSrcweir 	lWidth          = aEnvSz.Width();
121*cdf0e10cSrcweir 	lHeight         = aEnvSz.Height();
122*cdf0e10cSrcweir 	eAlign          = ENV_HOR_LEFT;
123*cdf0e10cSrcweir 	bPrintFromAbove = sal_True;
124*cdf0e10cSrcweir 	lShiftRight     = 0;
125*cdf0e10cSrcweir 	lShiftDown      = 0;
126*cdf0e10cSrcweir 
127*cdf0e10cSrcweir 	lAddrFromLeft   = Max(lWidth, lHeight) / 2;
128*cdf0e10cSrcweir 	lAddrFromTop    = Min(lWidth, lHeight) / 2;
129*cdf0e10cSrcweir }
130*cdf0e10cSrcweir // --------------------------------------------------------------------------
131*cdf0e10cSrcweir SwEnvItem::SwEnvItem(const SwEnvItem& rItem) :
132*cdf0e10cSrcweir 	SfxPoolItem(FN_ENVELOP),
133*cdf0e10cSrcweir 	aAddrText      (rItem.aAddrText),
134*cdf0e10cSrcweir 	bSend          (rItem.bSend),
135*cdf0e10cSrcweir 	aSendText      (rItem.aSendText),
136*cdf0e10cSrcweir     lAddrFromLeft  (rItem.lAddrFromLeft),
137*cdf0e10cSrcweir     lAddrFromTop   (rItem.lAddrFromTop),
138*cdf0e10cSrcweir     lSendFromLeft  (rItem.lSendFromLeft),
139*cdf0e10cSrcweir 	lSendFromTop   (rItem.lSendFromTop),
140*cdf0e10cSrcweir 	lWidth         (rItem.lWidth),
141*cdf0e10cSrcweir 	lHeight        (rItem.lHeight),
142*cdf0e10cSrcweir 	eAlign         (rItem.eAlign),
143*cdf0e10cSrcweir 	bPrintFromAbove(rItem.bPrintFromAbove),
144*cdf0e10cSrcweir 	lShiftRight    (rItem.lShiftRight),
145*cdf0e10cSrcweir 	lShiftDown     (rItem.lShiftDown)
146*cdf0e10cSrcweir {
147*cdf0e10cSrcweir }
148*cdf0e10cSrcweir 
149*cdf0e10cSrcweir // --------------------------------------------------------------------------
150*cdf0e10cSrcweir SwEnvItem& SwEnvItem::operator =(const SwEnvItem& rItem)
151*cdf0e10cSrcweir {
152*cdf0e10cSrcweir 	aAddrText       = rItem.aAddrText;
153*cdf0e10cSrcweir 	bSend           = rItem.bSend;
154*cdf0e10cSrcweir 	aSendText       = rItem.aSendText;
155*cdf0e10cSrcweir 	lSendFromLeft   = rItem.lSendFromLeft;
156*cdf0e10cSrcweir 	lSendFromTop    = rItem.lSendFromTop;
157*cdf0e10cSrcweir 	lAddrFromLeft   = rItem.lAddrFromLeft;
158*cdf0e10cSrcweir 	lAddrFromTop    = rItem.lAddrFromTop;
159*cdf0e10cSrcweir 	lWidth          = rItem.lWidth;
160*cdf0e10cSrcweir 	lHeight         = rItem.lHeight;
161*cdf0e10cSrcweir 	eAlign          = rItem.eAlign;
162*cdf0e10cSrcweir 	bPrintFromAbove = rItem.bPrintFromAbove;
163*cdf0e10cSrcweir 	lShiftRight     = rItem.lShiftRight;
164*cdf0e10cSrcweir 	lShiftDown      = rItem.lShiftDown;
165*cdf0e10cSrcweir 	return *this;
166*cdf0e10cSrcweir }
167*cdf0e10cSrcweir // --------------------------------------------------------------------------
168*cdf0e10cSrcweir int SwEnvItem::operator ==(const SfxPoolItem& rItem) const
169*cdf0e10cSrcweir {
170*cdf0e10cSrcweir 	const SwEnvItem& rEnv = (const SwEnvItem&) rItem;
171*cdf0e10cSrcweir 
172*cdf0e10cSrcweir 	return aAddrText       == rEnv.aAddrText       &&
173*cdf0e10cSrcweir 		   bSend           == rEnv.bSend           &&
174*cdf0e10cSrcweir 		   aSendText       == rEnv.aSendText       &&
175*cdf0e10cSrcweir 		   lSendFromLeft   == rEnv.lSendFromLeft   &&
176*cdf0e10cSrcweir 		   lSendFromTop    == rEnv.lSendFromTop    &&
177*cdf0e10cSrcweir 		   lAddrFromLeft   == rEnv.lAddrFromLeft   &&
178*cdf0e10cSrcweir 		   lAddrFromTop    == rEnv.lAddrFromTop    &&
179*cdf0e10cSrcweir 		   lWidth          == rEnv.lWidth          &&
180*cdf0e10cSrcweir 		   lHeight         == rEnv.lHeight         &&
181*cdf0e10cSrcweir 		   eAlign          == rEnv.eAlign          &&
182*cdf0e10cSrcweir 		   bPrintFromAbove == rEnv.bPrintFromAbove &&
183*cdf0e10cSrcweir 		   lShiftRight     == rEnv.lShiftRight     &&
184*cdf0e10cSrcweir 		   lShiftDown      == rEnv.lShiftDown;
185*cdf0e10cSrcweir }
186*cdf0e10cSrcweir 
187*cdf0e10cSrcweir // --------------------------------------------------------------------------
188*cdf0e10cSrcweir SfxPoolItem* SwEnvItem::Clone(SfxItemPool*) const
189*cdf0e10cSrcweir {
190*cdf0e10cSrcweir 	return new SwEnvItem(*this);
191*cdf0e10cSrcweir }
192*cdf0e10cSrcweir // --------------------------------------------------------------------------
193*cdf0e10cSrcweir // --------------------------------------------------------------------------
194*cdf0e10cSrcweir SwEnvCfgItem::SwEnvCfgItem() :
195*cdf0e10cSrcweir 	ConfigItem(C2U("Office.Writer/Envelope"))
196*cdf0e10cSrcweir {
197*cdf0e10cSrcweir 	Sequence<OUString> aNames = GetPropertyNames();
198*cdf0e10cSrcweir 	Sequence<Any> aValues = GetProperties(aNames);
199*cdf0e10cSrcweir 	EnableNotification(aNames);
200*cdf0e10cSrcweir 	const Any* pValues = aValues.getConstArray();
201*cdf0e10cSrcweir 	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed");
202*cdf0e10cSrcweir 	if(aValues.getLength() == aNames.getLength())
203*cdf0e10cSrcweir 	{
204*cdf0e10cSrcweir 		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
205*cdf0e10cSrcweir 		{
206*cdf0e10cSrcweir 			if(pValues[nProp].hasValue())
207*cdf0e10cSrcweir 			{
208*cdf0e10cSrcweir 				switch(nProp)
209*cdf0e10cSrcweir 				{
210*cdf0e10cSrcweir 					case  0: pValues[nProp] >>= aEnvItem.aAddrText; break;// "Inscription/Addressee",
211*cdf0e10cSrcweir 					case  1: pValues[nProp] >>= aEnvItem.aSendText; break;// "Inscription/Sender",
212*cdf0e10cSrcweir 					case  2: aEnvItem.bSend = *(sal_Bool*)pValues[nProp].getValue(); break;// "Inscription/UseSender",
213*cdf0e10cSrcweir 					case  3:
214*cdf0e10cSrcweir 						pValues[nProp] >>= aEnvItem.lAddrFromLeft;// "Format/AddresseeFromLeft",
215*cdf0e10cSrcweir 						aEnvItem.lAddrFromLeft = MM100_TO_TWIP(aEnvItem.lAddrFromLeft);
216*cdf0e10cSrcweir 					break;
217*cdf0e10cSrcweir 					case  4:
218*cdf0e10cSrcweir 						pValues[nProp] >>= aEnvItem.lAddrFromTop;  // "Format/AddresseeFromTop",
219*cdf0e10cSrcweir 						aEnvItem.lAddrFromTop = MM100_TO_TWIP(aEnvItem.lAddrFromTop);
220*cdf0e10cSrcweir 					break;
221*cdf0e10cSrcweir 					case  5:
222*cdf0e10cSrcweir 						pValues[nProp] >>= aEnvItem.lSendFromLeft; // "Format/SenderFromLeft",
223*cdf0e10cSrcweir 						aEnvItem.lSendFromLeft = MM100_TO_TWIP(aEnvItem.lSendFromLeft);
224*cdf0e10cSrcweir 					break;
225*cdf0e10cSrcweir 					case  6:
226*cdf0e10cSrcweir 						pValues[nProp] >>= aEnvItem.lSendFromTop;// "Format/SenderFromTop",
227*cdf0e10cSrcweir 						aEnvItem.lSendFromTop = MM100_TO_TWIP(aEnvItem.lSendFromTop);
228*cdf0e10cSrcweir 					break;
229*cdf0e10cSrcweir 					case  7:
230*cdf0e10cSrcweir 						pValues[nProp] >>= aEnvItem.lWidth; // "Format/Width",
231*cdf0e10cSrcweir 						aEnvItem.lWidth = MM100_TO_TWIP(aEnvItem.lWidth);
232*cdf0e10cSrcweir 					break;
233*cdf0e10cSrcweir 					case  8:
234*cdf0e10cSrcweir 						pValues[nProp] >>= aEnvItem.lHeight; // "Format/Height",
235*cdf0e10cSrcweir 						aEnvItem.lHeight = MM100_TO_TWIP(aEnvItem.lHeight);
236*cdf0e10cSrcweir 					break;
237*cdf0e10cSrcweir 					case  9:
238*cdf0e10cSrcweir 					{
239*cdf0e10cSrcweir 						sal_Int32 nTemp = 0;
240*cdf0e10cSrcweir 						pValues[nProp] >>= nTemp; aEnvItem.eAlign = (SwEnvAlign)nTemp; break;// "Print/Alignment",
241*cdf0e10cSrcweir 					}
242*cdf0e10cSrcweir 					case 10: aEnvItem.bPrintFromAbove = *(sal_Bool*)pValues[nProp].getValue(); break;// "Print/FromAbove",
243*cdf0e10cSrcweir 					case 11:
244*cdf0e10cSrcweir 						pValues[nProp] >>= aEnvItem.lShiftRight;
245*cdf0e10cSrcweir 						aEnvItem.lShiftRight = MM100_TO_TWIP(aEnvItem.lShiftRight);// "Print/Right",
246*cdf0e10cSrcweir 					break;
247*cdf0e10cSrcweir 					case 12:
248*cdf0e10cSrcweir 						pValues[nProp] >>= aEnvItem.lShiftDown;
249*cdf0e10cSrcweir 						aEnvItem.lShiftDown = MM100_TO_TWIP(aEnvItem.lShiftDown);
250*cdf0e10cSrcweir 					break;// "Print/Down"
251*cdf0e10cSrcweir 				}
252*cdf0e10cSrcweir 			}
253*cdf0e10cSrcweir 		}
254*cdf0e10cSrcweir 	}
255*cdf0e10cSrcweir }
256*cdf0e10cSrcweir /* -----------------------------26.09.00 14:04--------------------------------
257*cdf0e10cSrcweir 
258*cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
259*cdf0e10cSrcweir SwEnvCfgItem::~SwEnvCfgItem()
260*cdf0e10cSrcweir {
261*cdf0e10cSrcweir }
262*cdf0e10cSrcweir /* -----------------------------26.09.00 14:05--------------------------------
263*cdf0e10cSrcweir 
264*cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
265*cdf0e10cSrcweir void	SwEnvCfgItem::Commit()
266*cdf0e10cSrcweir {
267*cdf0e10cSrcweir 	Sequence<OUString> aNames = GetPropertyNames();
268*cdf0e10cSrcweir 	Sequence<Any> aValues(aNames.getLength());
269*cdf0e10cSrcweir 	Any* pValues = aValues.getArray();
270*cdf0e10cSrcweir 
271*cdf0e10cSrcweir 	const Type& rType = ::getBooleanCppuType();
272*cdf0e10cSrcweir 	for(int nProp = 0; nProp < aNames.getLength(); nProp++)
273*cdf0e10cSrcweir 	{
274*cdf0e10cSrcweir 		switch(nProp)
275*cdf0e10cSrcweir 		{
276*cdf0e10cSrcweir 			case  0: pValues[nProp] <<= aEnvItem.aAddrText; break;// "Inscription/Addressee",
277*cdf0e10cSrcweir 			case  1: pValues[nProp] <<= aEnvItem.aSendText; break;// "Inscription/Sender",
278*cdf0e10cSrcweir 			case  2: pValues[nProp].setValue(&aEnvItem.bSend, rType);break;// "Inscription/UseSender",
279*cdf0e10cSrcweir 			case  3: pValues[nProp] <<= static_cast <sal_Int32>(TWIP_TO_MM100(aEnvItem.lAddrFromLeft)) ; break;// "Format/AddresseeFromLeft",
280*cdf0e10cSrcweir 			case  4: pValues[nProp] <<= static_cast <sal_Int32>(TWIP_TO_MM100(aEnvItem.lAddrFromTop))  ; break;// "Format/AddresseeFromTop",
281*cdf0e10cSrcweir 			case  5: pValues[nProp] <<= static_cast <sal_Int32>(TWIP_TO_MM100(aEnvItem.lSendFromLeft)) ; break;// "Format/SenderFromLeft",
282*cdf0e10cSrcweir 			case  6: pValues[nProp] <<= static_cast <sal_Int32>(TWIP_TO_MM100(aEnvItem.lSendFromTop))  ; break;// "Format/SenderFromTop",
283*cdf0e10cSrcweir 			case  7: pValues[nProp] <<= static_cast <sal_Int32>(TWIP_TO_MM100(aEnvItem.lWidth))  ; break;// "Format/Width",
284*cdf0e10cSrcweir 			case  8: pValues[nProp] <<= static_cast <sal_Int32>(TWIP_TO_MM100(aEnvItem.lHeight)) ; break;// "Format/Height",
285*cdf0e10cSrcweir 			case  9: pValues[nProp] <<= sal_Int32(aEnvItem.eAlign); break;// "Print/Alignment",
286*cdf0e10cSrcweir 			case 10: pValues[nProp].setValue(&aEnvItem.bPrintFromAbove, rType); break;// "Print/FromAbove",
287*cdf0e10cSrcweir 			case 11: pValues[nProp] <<= static_cast <sal_Int32>(TWIP_TO_MM100(aEnvItem.lShiftRight));break; // "Print/Right",
288*cdf0e10cSrcweir 			case 12: pValues[nProp] <<= static_cast <sal_Int32>(TWIP_TO_MM100(aEnvItem.lShiftDown)); break;// "Print/Down"
289*cdf0e10cSrcweir 		}
290*cdf0e10cSrcweir 	}
291*cdf0e10cSrcweir 	PutProperties(aNames, aValues);
292*cdf0e10cSrcweir }
293*cdf0e10cSrcweir 
294*cdf0e10cSrcweir void SwEnvCfgItem::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {}
295*cdf0e10cSrcweir 
296*cdf0e10cSrcweir /* -----------------------------26.09.00 14:04--------------------------------
297*cdf0e10cSrcweir 
298*cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
299*cdf0e10cSrcweir Sequence<rtl::OUString> SwEnvCfgItem::GetPropertyNames()
300*cdf0e10cSrcweir {
301*cdf0e10cSrcweir 	static const char* aPropNames[] =
302*cdf0e10cSrcweir 	{
303*cdf0e10cSrcweir 		"Inscription/Addressee",	//	0
304*cdf0e10cSrcweir 		"Inscription/Sender",		//  1
305*cdf0e10cSrcweir 		"Inscription/UseSender",	//  2
306*cdf0e10cSrcweir 		"Format/AddresseeFromLeft",	//  3
307*cdf0e10cSrcweir 		"Format/AddresseeFromTop",	//  4
308*cdf0e10cSrcweir 		"Format/SenderFromLeft",	//  5
309*cdf0e10cSrcweir 		"Format/SenderFromTop",		//  6
310*cdf0e10cSrcweir 		"Format/Width",				//  7
311*cdf0e10cSrcweir 		"Format/Height",			//  8
312*cdf0e10cSrcweir 		"Print/Alignment",			//  9
313*cdf0e10cSrcweir 		"Print/FromAbove",			// 10
314*cdf0e10cSrcweir 		"Print/Right",				// 11
315*cdf0e10cSrcweir 		"Print/Down"				// 12
316*cdf0e10cSrcweir 	};
317*cdf0e10cSrcweir 	const int nCount = 13;
318*cdf0e10cSrcweir 	Sequence<OUString> aNames(nCount);
319*cdf0e10cSrcweir 	OUString* pNames = aNames.getArray();
320*cdf0e10cSrcweir 	for(int i = 0; i < nCount; i++)
321*cdf0e10cSrcweir 		pNames[i] = OUString::createFromAscii(aPropNames[i]);
322*cdf0e10cSrcweir 	return aNames;
323*cdf0e10cSrcweir }
324*cdf0e10cSrcweir 
325*cdf0e10cSrcweir sal_Bool SwEnvItem::QueryValue( Any& rVal, sal_uInt8 nMemberId ) const
326*cdf0e10cSrcweir {
327*cdf0e10cSrcweir     sal_Bool bRet = sal_True;
328*cdf0e10cSrcweir     switch(nMemberId & ~CONVERT_TWIPS)
329*cdf0e10cSrcweir     {
330*cdf0e10cSrcweir         case MID_ENV_ADDR_TEXT : rVal <<= aAddrText; break;
331*cdf0e10cSrcweir         case MID_ENV_SEND : rVal <<= bSend; break;
332*cdf0e10cSrcweir         case MID_SEND_TEXT : rVal <<= aSendText; break;
333*cdf0e10cSrcweir         case MID_ENV_ADDR_FROM_LEFT : rVal <<= lAddrFromLeft; break;
334*cdf0e10cSrcweir         case MID_ENV_ADDR_FROM_TOP : rVal <<= lAddrFromTop; break;
335*cdf0e10cSrcweir         case MID_ENV_SEND_FROM_LEFT : rVal <<= lSendFromLeft; break;
336*cdf0e10cSrcweir         case MID_ENV_SEND_FROM_TOP : rVal <<= lSendFromTop; break;
337*cdf0e10cSrcweir         case MID_ENV_WIDTH : rVal <<= lWidth; break;
338*cdf0e10cSrcweir         case MID_ENV_HEIGHT : rVal <<= lHeight; break;
339*cdf0e10cSrcweir         case MID_ENV_ALIGN            : rVal <<= (sal_Int16) eAlign; break;
340*cdf0e10cSrcweir         case MID_ENV_PRINT_FROM_ABOVE  : rVal <<= bPrintFromAbove; break;
341*cdf0e10cSrcweir         case MID_ENV_SHIFT_RIGHT      : rVal <<= lShiftRight; break;
342*cdf0e10cSrcweir         case MID_ENV_SHIFT_DOWN       : rVal <<= lShiftDown; break;
343*cdf0e10cSrcweir         default:
344*cdf0e10cSrcweir             DBG_ERROR("Wrong memberId");
345*cdf0e10cSrcweir             bRet = sal_False;
346*cdf0e10cSrcweir     }
347*cdf0e10cSrcweir     return bRet;
348*cdf0e10cSrcweir }
349*cdf0e10cSrcweir /* -----------------------------26.04.01 12:26--------------------------------
350*cdf0e10cSrcweir 
351*cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
352*cdf0e10cSrcweir sal_Bool SwEnvItem::PutValue(const Any& rVal, sal_uInt8 nMemberId)
353*cdf0e10cSrcweir {
354*cdf0e10cSrcweir     sal_Bool bRet = sal_False;
355*cdf0e10cSrcweir     switch(nMemberId  & ~CONVERT_TWIPS)
356*cdf0e10cSrcweir     {
357*cdf0e10cSrcweir         case MID_ENV_ADDR_TEXT : bRet = (rVal >>= aAddrText); break;
358*cdf0e10cSrcweir         case MID_ENV_SEND : bRet = (rVal >>= bSend); break;
359*cdf0e10cSrcweir         case MID_SEND_TEXT : bRet = (rVal >>= aSendText); break;
360*cdf0e10cSrcweir         case MID_ENV_ADDR_FROM_LEFT : bRet = (rVal >>= lAddrFromLeft); break;
361*cdf0e10cSrcweir         case MID_ENV_ADDR_FROM_TOP : bRet = (rVal >>= lAddrFromTop); break;
362*cdf0e10cSrcweir         case MID_ENV_SEND_FROM_LEFT : bRet = (rVal >>= lSendFromLeft); break;
363*cdf0e10cSrcweir         case MID_ENV_SEND_FROM_TOP : bRet = (rVal >>= lSendFromTop); break;
364*cdf0e10cSrcweir         case MID_ENV_WIDTH : bRet = (rVal >>= lWidth); break;
365*cdf0e10cSrcweir         case MID_ENV_HEIGHT : bRet = (rVal >>= lHeight); break;
366*cdf0e10cSrcweir         case MID_ENV_ALIGN :
367*cdf0e10cSrcweir         {
368*cdf0e10cSrcweir             sal_Int16 nTemp = 0;
369*cdf0e10cSrcweir             bRet = (rVal >>= nTemp);
370*cdf0e10cSrcweir             if (bRet)
371*cdf0e10cSrcweir                 eAlign = SwEnvAlign(nTemp);
372*cdf0e10cSrcweir             break;
373*cdf0e10cSrcweir         }
374*cdf0e10cSrcweir         case MID_ENV_PRINT_FROM_ABOVE  : bRet = (rVal >>= bPrintFromAbove); break;
375*cdf0e10cSrcweir         case MID_ENV_SHIFT_RIGHT      : bRet = (rVal >>= lShiftRight); break;
376*cdf0e10cSrcweir         case MID_ENV_SHIFT_DOWN       : bRet = (rVal >>= lShiftDown); break;
377*cdf0e10cSrcweir         default:
378*cdf0e10cSrcweir             DBG_ERROR("Wrong memberId");
379*cdf0e10cSrcweir     }
380*cdf0e10cSrcweir     return bRet;
381*cdf0e10cSrcweir }
382