xref: /trunk/main/sw/source/ui/envelp/labimg.cxx (revision 737f4475)
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 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sw.hxx"
26 
27 
28 #include <tools/stream.hxx>
29 #ifndef _RESID_HXX //autogen
30 #include <tools/resid.hxx>
31 #endif
32 #include <com/sun/star/uno/Any.hxx>
33 #include <com/sun/star/uno/Sequence.hxx>
34 #include <unotools/useroptions.hxx>
35 #include <tools/shl.hxx>
36 #include <swmodule.hxx>
37 #include "labimg.hxx"
38 #include "cmdid.h"
39 #include "swtypes.hxx"
40 #include <unomid.h>
41 
42 using namespace utl;
43 using namespace rtl;
44 using namespace ::com::sun::star::uno;
45 
46 
47 // ----------------------------------------------------------------------------
SwLabItem()48 SwLabItem::SwLabItem() :
49 
50 	SfxPoolItem(FN_LABEL),
51 	lLeft (0),
52 	lUpper(0),
53 	nCols (1),
54     nRows (1),
55     nCol  (1),
56     nRow  (1),
57     lPaperWidth(0),
58     lPaperHeight(0)
59 {
60 	bAddr = bCont = bSynchron = sal_False;
61 	bPage = sal_True;
62 	lHDist	=
63 	lVDist	=
64 	lWidth	=
65 	lHeight = 5669; // 10 cm
66 }
67 
68 // ----------------------------------------------------------------------------
SwLabItem(const SwLabItem & rItem)69 SwLabItem::SwLabItem(const SwLabItem& rItem) :
70 	SfxPoolItem(FN_LABEL)
71 {
72 		*this = rItem;
73 }
74 // ----------------------------------------------------------------------------
operator =(const SwLabItem & rItem)75 SwLabItem& SwLabItem::operator =(const SwLabItem& rItem)
76 {
77 	bAddr	 = rItem.bAddr;
78 	aWriting = rItem.aWriting;
79 	bCont	 = rItem.bCont;
80 	sDBName  = rItem.sDBName;
81 	aLstMake = rItem.aLstMake;
82 	aLstType = rItem.aLstType;
83 	aMake	 = rItem.aMake;
84 	aType	 = rItem.aType;
85 	bPage	 = rItem.bPage;
86 	bSynchron = rItem.bSynchron;
87 	aBin	 = rItem.aBin;
88 	nCol	 = rItem.nCol;
89 	nRow	 = rItem.nRow;
90 	lHDist	 = rItem.lHDist;
91 	lVDist	 = rItem.lVDist;
92 	lWidth	 = rItem.lWidth;
93 	lHeight  = rItem.lHeight;
94 	lLeft	 = rItem.lLeft;
95 	lUpper	 = rItem.lUpper;
96 	nCols	 = rItem.nCols;
97 	nRows	 = rItem.nRows;
98 	lPaperWidth	 = rItem.lPaperWidth;
99 	lPaperHeight  = rItem.lPaperHeight;
100 	aPrivFirstName = 		rItem.aPrivFirstName;
101 	aPrivName =             rItem.aPrivName;
102 	aPrivShortCut =         rItem.aPrivShortCut;
103 	aPrivFirstName2 = 		rItem.aPrivFirstName2;
104 	aPrivName2 =            rItem.aPrivName2;
105 	aPrivShortCut2 =        rItem.aPrivShortCut2;
106 	aPrivStreet =           rItem.aPrivStreet;
107 	aPrivZip =              rItem.aPrivZip;
108 	aPrivCity =             rItem.aPrivCity;
109 	aPrivCountry =          rItem.aPrivCountry;
110 	aPrivState =            rItem.aPrivState;
111 	aPrivTitle =            rItem.aPrivTitle;
112 	aPrivProfession =       rItem.aPrivProfession;
113 	aPrivPhone =            rItem.aPrivPhone;
114 	aPrivMobile =           rItem.aPrivMobile;
115 	aPrivFax =              rItem.aPrivFax;
116 	aPrivWWW =              rItem.aPrivWWW;
117 	aPrivMail =             rItem.aPrivMail;
118 	aCompCompany =          rItem.aCompCompany;
119 	aCompCompanyExt =       rItem.aCompCompanyExt;
120 	aCompSlogan =           rItem.aCompSlogan;
121 	aCompStreet =           rItem.aCompStreet;
122 	aCompZip =              rItem.aCompZip;
123 	aCompCity =             rItem.aCompCity;
124 	aCompCountry =          rItem.aCompCountry;
125 	aCompState =            rItem.aCompState;
126 	aCompPosition =         rItem.aCompPosition;
127 	aCompPhone =            rItem.aCompPhone;
128 	aCompMobile =           rItem.aCompMobile;
129 	aCompFax =              rItem.aCompFax;
130 	aCompWWW =              rItem.aCompWWW;
131 	aCompMail =             rItem.aCompMail;
132 	sGlossaryGroup =        rItem.sGlossaryGroup;
133 	sGlossaryBlockName =    rItem.sGlossaryBlockName;
134 	return *this;
135 }
136 
137 // --------------------------------------------------------------------------
138 
139 
140 
operator ==(const SfxPoolItem & rItem) const141 int SwLabItem::operator ==(const SfxPoolItem& rItem) const
142 {
143 	const SwLabItem& rLab = (const SwLabItem&) rItem;
144 
145 	return bAddr	== rLab.bAddr	&&
146 		   bCont	== rLab.bCont	&&
147 		   bPage	== rLab.bPage	&&
148 		   bSynchron == rLab.bSynchron &&
149 		   aBin 	== rLab.aBin	&&
150 		   nCol 	== rLab.nCol	&&
151 		   nRow 	== rLab.nRow	&&
152 		   lHDist	== rLab.lHDist	&&
153 		   lVDist	== rLab.lVDist	&&
154 		   lWidth	== rLab.lWidth	&&
155 		   lHeight	== rLab.lHeight &&
156 		   lLeft	== rLab.lLeft	&&
157 		   lUpper	== rLab.lUpper	&&
158 		   nCols	== rLab.nCols	&&
159 		   nRows	== rLab.nRows	&&
160 		   lPaperWidth	== rLab.lPaperWidth	&&
161 		   lPaperHeight	== rLab.lPaperHeight &&
162 		   aWriting == rLab.aWriting&&
163 		   aMake	== rLab.aMake	&&
164 		   aType	== rLab.aType	&&
165 		   aLstMake	== rLab.aLstMake&&
166 		   aLstType	== rLab.aLstType&&
167 		   sDBName  == rLab.sDBName &&
168 		   	aPrivFirstName == 		rLab.aPrivFirstName&&
169 			aPrivName ==             rLab.aPrivName&&
170 			aPrivShortCut ==         rLab.aPrivShortCut&&
171 		   	aPrivFirstName2 == 		 rLab.aPrivFirstName2&&
172 			aPrivName2 ==            rLab.aPrivName2&&
173 			aPrivShortCut2 ==        rLab.aPrivShortCut2&&
174 			aPrivStreet ==           rLab.aPrivStreet&&
175 			aPrivZip ==              rLab.aPrivZip&&
176 			aPrivCity ==             rLab.aPrivCity&&
177 			aPrivCountry ==          rLab.aPrivCountry&&
178 			aPrivState ==            rLab.aPrivState&&
179 			aPrivTitle ==            rLab.aPrivTitle&&
180 			aPrivProfession ==       rLab.aPrivProfession&&
181 			aPrivPhone ==            rLab.aPrivPhone&&
182 			aPrivMobile ==           rLab.aPrivMobile&&
183 			aPrivFax ==              rLab.aPrivFax&&
184 			aPrivWWW ==              rLab.aPrivWWW&&
185 			aPrivMail ==             rLab.aPrivMail&&
186 			aCompCompany ==          rLab.aCompCompany&&
187 			aCompCompanyExt ==       rLab.aCompCompanyExt&&
188 			aCompSlogan ==           rLab.aCompSlogan&&
189 			aCompStreet ==           rLab.aCompStreet&&
190 			aCompZip ==              rLab.aCompZip&&
191 			aCompCity ==             rLab.aCompCity&&
192 			aCompCountry ==          rLab.aCompCountry&&
193 			aCompState ==            rLab.aCompState&&
194 			aCompPosition ==         rLab.aCompPosition&&
195 			aCompPhone ==            rLab.aCompPhone&&
196 			aCompMobile ==           rLab.aCompMobile&&
197 			aCompFax ==              rLab.aCompFax&&
198 			aCompWWW ==              rLab.aCompWWW&&
199 			aCompMail ==             rLab.aCompMail &&
200 			sGlossaryGroup ==        rLab.sGlossaryGroup &&
201 			sGlossaryBlockName ==    rLab.sGlossaryBlockName;
202 }
203 
204 // --------------------------------------------------------------------------
Clone(SfxItemPool *) const205 SfxPoolItem* SwLabItem::Clone(SfxItemPool*) const
206 {
207 	return new SwLabItem(*this);
208 }
209 
210 /* -----------------------------25.09.00 16:25--------------------------------
211 
212  ---------------------------------------------------------------------------*/
GetPropertyNames()213 Sequence<rtl::OUString> SwLabCfgItem::GetPropertyNames()
214 {
215 	static const char* aLabelPropNames[] =
216 	{
217 		"Medium/Continuous",			// 0
218 		"Medium/Brand",				// 1
219 		"Medium/Type",				// 2
220 		"Format/Column",			// 3
221 		"Format/Row",				// 4
222 		"Format/HorizontalDistance",// 5
223 		"Format/VerticalDistance",	// 6
224 		"Format/Width",				// 7
225 		"Format/Height",			// 8
226 		"Format/LeftMargin",		// 9
227 		"Format/TopMargin",			//10
228 		"Format/PaperWidth",		//11
229 		"Format/PaperHeight",		//12
230 		"Option/Synchronize",		//13
231 		"Option/Page",				//14
232 		"Option/Column",			//15
233 		"Option/Row",				//16
234 		"Inscription/UseAddress",	//17
235 		"Inscription/Address",		//18
236 		"Inscription/Database"		//19
237 	};
238 	static const char* aBusinessPropNames[] =
239 	{
240 		"PrivateAddress/FirstName",				//	0
241 		"PrivateAddress/Name",					//  1
242 		"PrivateAddress/ShortCut",				//  2
243 		"PrivateAddress/SecondFirstName",		//  3
244 		"PrivateAddress/SecondName",			//  4
245 		"PrivateAddress/SecondShortCut",		//  5
246 		"PrivateAddress/Street",				//  6
247 		"PrivateAddress/Zip",					//  7
248 		"PrivateAddress/City",					//  8
249 		"PrivateAddress/Country",				//  9
250 		"PrivateAddress/State",					// 10
251 		"PrivateAddress/Title",					// 11
252 		"PrivateAddress/Profession",			// 12
253 		"PrivateAddress/Phone",					// 13
254 		"PrivateAddress/Mobile",				// 14
255 		"PrivateAddress/Fax",					// 15
256 		"PrivateAddress/WebAddress",			// 16
257 		"PrivateAddress/Email",					// 17
258 		"BusinessAddress/Company",				// 18
259 		"BusinessAddress/CompanyExt",			// 19
260 		"BusinessAddress/Slogan",				// 20
261 		"BusinessAddress/Street",				// 21
262 		"BusinessAddress/Zip",					// 22
263 		"BusinessAddress/City",					// 23
264 		"BusinessAddress/Country",				// 24
265 		"BusinessAddress/State",				// 25
266 		"BusinessAddress/Position",				// 26
267 		"BusinessAddress/Phone",				// 27
268 		"BusinessAddress/Mobile",				// 28
269 		"BusinessAddress/Fax",					// 29
270 		"BusinessAddress/WebAddress",			// 30
271 		"BusinessAddress/Email",				// 31
272 		"AutoText/Group",						// 32
273 		"AutoText/Block"						// 33
274 	};
275 	const int nBusinessCount = bIsLabel ? 0 : 34;
276 	const int nLabelCount = bIsLabel ? 20 : 17;
277 	Sequence<OUString> aNames(nBusinessCount + nLabelCount);
278 	OUString* pNames = aNames.getArray();
279 	int nIndex = 0;
280 	for(int nLabel = 0; nLabel < nLabelCount; nLabel++)
281 		pNames[nIndex++] = OUString::createFromAscii(aLabelPropNames[nLabel]);
282 	for(int nBusiness = 0; nBusiness < nBusinessCount; nBusiness++)
283 		pNames[nIndex++] = OUString::createFromAscii(aBusinessPropNames[nBusiness]);
284 	return aNames;
285 }
286 /* ----------------------------------------------------------------------------
287 
288  ---------------------------------------------------------------------------*/
SwLabCfgItem(sal_Bool bLabel)289 SwLabCfgItem::SwLabCfgItem(sal_Bool bLabel) :
290 	ConfigItem(bLabel ? C2U("Office.Writer/Label") :  C2U("Office.Writer/BusinessCard")),
291 	bIsLabel(bLabel)
292 {
293 	Sequence<OUString> aNames = GetPropertyNames();
294 	Sequence<Any> aValues = GetProperties(aNames);
295 	EnableNotification(aNames);
296 	const Any* pValues = aValues.getConstArray();
297 	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed");
298     sal_Bool bNoConfigValues = sal_True;
299 	if(aValues.getLength() == aNames.getLength())
300 	{
301 		for(int nProp = 0, nProperty = 0; nProp < aNames.getLength(); nProp++, nProperty++)
302 		{
303 
304 			if(pValues[nProp].hasValue())
305 			{
306 				//to have a contiuous switch an offset is added
307 				if(nProp == 17 && !bIsLabel)
308 					nProperty += 3;
309                 if(nProperty >= 20)
310                     bNoConfigValues = sal_False;
311 				switch(nProperty)
312 				{
313 					case  0: aItem.bCont = *(sal_Bool*)pValues[nProp].getValue(); break;// "Medium/Continuous",
314 					case  1: pValues[nProp] >>= aItem.aMake;			break;// "Medium/Brand",
315 					case  2: pValues[nProp] >>= aItem.aType;			break;// "Medium/Type",
316 					case  3: pValues[nProp] >>= aItem.nCols; 			break;// "Format/Column",
317 					case  4: pValues[nProp] >>= aItem.nRows; 			break;// "Format/Row",
318 					case  5:
319 						pValues[nProp] >>= aItem.lHDist;
320 						aItem.lHDist = MM100_TO_TWIP(aItem.lHDist);
321 					break;// "Format/HorizontalDistance",
322 					case  6:
323 						pValues[nProp] >>= aItem.lVDist;
324 						aItem.lVDist = MM100_TO_TWIP(aItem.lVDist);
325 					break;// "Format/VerticalDistance",
326 					case  7:
327 						pValues[nProp] >>= aItem.lWidth;
328 						aItem.lWidth = MM100_TO_TWIP(aItem.lWidth);
329 					break;// "Format/Width",
330 					case  8:
331 						pValues[nProp] >>= aItem.lHeight;
332 						aItem.lHeight = MM100_TO_TWIP(aItem.lHeight);
333 					break;// "Format/Height",
334 					case  9:
335 						pValues[nProp] >>= aItem.lLeft;
336 						aItem.lLeft = MM100_TO_TWIP(aItem.lLeft);
337 					break;// "Format/LeftMargin",
338 					case 10:
339 						pValues[nProp] >>= aItem.lUpper;
340 						aItem.lUpper = MM100_TO_TWIP(aItem.lUpper);
341 					break;// "Format/TopMargin",
342 					case  11:
343 						pValues[nProp] >>= aItem.lPaperWidth;
344 						aItem.lPaperWidth = MM100_TO_TWIP(aItem.lPaperWidth);
345 					break;// "Format/PaperWidth",
346 					case  12:
347 						pValues[nProp] >>= aItem.lPaperHeight;
348 						aItem.lPaperHeight = MM100_TO_TWIP(aItem.lPaperHeight);
349 					break;// "Format/PaperHeight",
350 					case 13: aItem.bSynchron = *(sal_Bool*)pValues[nProp].getValue(); break;// "Option/Synchronize",
351 					case 14: aItem.bPage = *(sal_Bool*)pValues[nProp].getValue(); break;// "Option/Page",
352 					case 15: pValues[nProp] >>= aItem.nCol; 	break;// "Option/Column",
353 					case 16: pValues[nProp] >>= aItem.nRow; 	break;// "Option/Row"
354 					case 17: aItem.bAddr = *(sal_Bool*)pValues[nProp].getValue(); 		break;// "Inscription/UseAddress",
355 					case 18: pValues[nProp] >>= aItem.aWriting; 		break;// "Inscription/Address",
356 					case 19: pValues[nProp] >>= aItem.sDBName; 			break;// "Inscription/Database"
357 					case 20: pValues[nProp] >>= aItem.aPrivFirstName;  	break;// "PrivateAddress/FirstName",
358 					case 21: pValues[nProp] >>= aItem.aPrivName;       	break;// "PrivateAddress/Name",
359 					case 22: pValues[nProp] >>= aItem.aPrivShortCut;   	break;// "PrivateAddress/ShortCut",
360 					case 23: pValues[nProp] >>= aItem.aPrivFirstName2; 	break;// "PrivateAddress/SecondFirstName",
361 					case 24: pValues[nProp] >>= aItem.aPrivName2;      	break;// "PrivateAddress/SecondName",
362 					case 25: pValues[nProp] >>= aItem.aPrivShortCut2;  	break;// "PrivateAddress/SecondShortCut",
363 					case 26: pValues[nProp] >>= aItem.aPrivStreet;     	break;// "PrivateAddress/Street",
364 					case 27: pValues[nProp] >>= aItem.aPrivZip;        	break;// "PrivateAddress/Zip",
365 					case 28: pValues[nProp] >>= aItem.aPrivCity;       	break;// "PrivateAddress/City",
366 					case 29: pValues[nProp] >>= aItem.aPrivCountry;    	break;// "PrivateAddress/Country",
367 					case 30: pValues[nProp] >>= aItem.aPrivState;      	break;// "PrivateAddress/State",
368 					case 31: pValues[nProp] >>= aItem.aPrivTitle;      	break;// "PrivateAddress/Title",
369 					case 32: pValues[nProp] >>= aItem.aPrivProfession; 	break;// "PrivateAddress/Profession",
370 					case 33: pValues[nProp] >>= aItem.aPrivPhone;      	break;// "PrivateAddress/Phone",
371 					case 34: pValues[nProp] >>= aItem.aPrivMobile;     	break;// "PrivateAddress/Mobile",
372 					case 35: pValues[nProp] >>= aItem.aPrivFax;        	break;// "PrivateAddress/Fax",
373 					case 36: pValues[nProp] >>= aItem.aPrivWWW;        	break;// "PrivateAddress/WebAddress",
374 					case 37: pValues[nProp] >>= aItem.aPrivMail;       	break;// "PrivateAddress/Email",
375 					case 38: pValues[nProp] >>= aItem.aCompCompany;    	break;// "BusinessAddress/Company",
376 					case 39: pValues[nProp] >>= aItem.aCompCompanyExt; 	break;// "BusinessAddress/CompanyExt",
377 					case 40: pValues[nProp] >>= aItem.aCompSlogan;     	break;// "BusinessAddress/Slogan",
378 					case 41: pValues[nProp] >>= aItem.aCompStreet;     	break;// "BusinessAddress/Street",
379 					case 42: pValues[nProp] >>= aItem.aCompZip;        	break;// "BusinessAddress/Zip",
380 					case 43: pValues[nProp] >>= aItem.aCompCity;       	break;// "BusinessAddress/City",
381 					case 44: pValues[nProp] >>= aItem.aCompCountry;    	break;// "BusinessAddress/Country",
382 					case 45: pValues[nProp] >>= aItem.aCompState;      	break;// "BusinessAddress/State",
383 					case 46: pValues[nProp] >>= aItem.aCompPosition;   	break;// "BusinessAddress/Position",
384 					case 47: pValues[nProp] >>= aItem.aCompPhone;      	break;// "BusinessAddress/Phone",
385 					case 48: pValues[nProp] >>= aItem.aCompMobile;     	break;// "BusinessAddress/Mobile",
386 					case 49: pValues[nProp] >>= aItem.aCompFax;        	break;// "BusinessAddress/Fax",
387 					case 50: pValues[nProp] >>= aItem.aCompWWW;        	break;// "BusinessAddress/WebAddress",
388 					case 51: pValues[nProp] >>= aItem.aCompMail;       	break;// "BusinessAddress/Email",
389 					case 52: pValues[nProp] >>= aItem.sGlossaryGroup;  	break;// "AutoText/Group"
390 					case 53: pValues[nProp] >>= aItem.sGlossaryBlockName; break;// "AutoText/Block"
391 				}
392 			}
393 		}
394 	}
395     if(!bIsLabel && bNoConfigValues)
396     {
397 
398         SvtUserOptions& rUserOpt = SW_MOD()->GetUserOptions();
399         aItem.aPrivFirstName = rUserOpt.GetFirstName();
400         aItem.aPrivName = rUserOpt.GetLastName();
401         aItem.aPrivShortCut = rUserOpt.GetID();
402         aItem.aCompCompany = rUserOpt.GetCompany();
403         aItem.aCompStreet = aItem.aPrivStreet = rUserOpt.GetStreet();
404 
405         aItem.aCompCountry = aItem.aPrivCountry = rUserOpt.GetCountry();
406         aItem.aCompZip = aItem.aPrivZip= rUserOpt.GetZip();
407         aItem.aCompCity = aItem.aPrivCity = rUserOpt.GetCity();
408         aItem.aPrivTitle = rUserOpt.GetTitle();
409         aItem.aCompPosition = rUserOpt.GetPosition();
410         aItem.aPrivPhone = rUserOpt.GetTelephoneHome();
411         aItem.aCompPhone = rUserOpt.GetTelephoneWork();
412         aItem.aCompFax = aItem.aPrivFax = rUserOpt.GetFax();
413         aItem.aCompMail = aItem.aPrivMail = rUserOpt.GetEmail();
414         aItem.aCompState = aItem.aPrivState = rUserOpt.GetState();
415         aItem.bSynchron = sal_True;
416         SetModified();
417     }
418 }
419 /* -----------------------------25.09.00 16:26--------------------------------
420 
421  ---------------------------------------------------------------------------*/
Notify(const::com::sun::star::uno::Sequence<rtl::OUString> &)422 void SwLabCfgItem::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {}
423 
Commit()424 void	SwLabCfgItem::Commit()
425 {
426 	Sequence<OUString> aNames = GetPropertyNames();
427 	Sequence<Any> aValues(aNames.getLength());
428 	Any* pValues = aValues.getArray();
429 
430 	const Type& rType = ::getBooleanCppuType();
431 	for(int nProp = 0, nProperty = 0; nProp < aNames.getLength(); nProp++, nProperty++)
432 	{
433 		//to have a contiuous switch an offset is added
434 		if(nProp == 17 && !bIsLabel)
435 			nProperty += 3;
436 		switch(nProperty)
437 		{
438 			case  0: pValues[nProp].setValue(&aItem.bCont, rType); break;// "Medium/Continuous",
439 			case  1: pValues[nProp] <<= aItem.aMake;			break;// "Medium/Brand",
440 			case  2: pValues[nProp] <<= aItem.aType;			break;// "Medium/Type",
441 			case  3: pValues[nProp] <<= aItem.nCols; 			break;// "Format/Column",
442 			case  4: pValues[nProp] <<= aItem.nRows; 			break;// "Format/Row",
443 			case  5: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lHDist));break;// "Format/HorizontalDistance",
444 			case  6: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lVDist));break;// "Format/VerticalDistance",
445 			case  7: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lWidth));			break;// "Format/Width",
446 			case  8: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lHeight));			break;// "Format/Height",
447 			case  9: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lLeft));			break;// "Format/LeftMargin",
448 			case 10: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lUpper));			break;// "Format/TopMargin",
449 			case 11: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lPaperWidth));			break;// "Format/PaperWidth",
450 			case 12: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lPaperHeight));			break;// "Format/PaperHeight",
451 			case 13: pValues[nProp].setValue(&aItem.bSynchron, rType); break;// "Option/Synchronize",
452 			case 14: pValues[nProp].setValue(&aItem.bPage, rType); break;// "Option/Page",
453 			case 15: pValues[nProp] <<= aItem.nCol; 	break;// "Option/Column",
454 			case 16: pValues[nProp] <<= aItem.nRow; 	break;// "Option/Row"
455 			case 17: pValues[nProp].setValue(&aItem.bAddr, rType); 		break;// "Inscription/UseAddress",
456 			case 18: pValues[nProp] <<= aItem.aWriting; 		break;// "Inscription/Address",
457 			case 19: pValues[nProp] <<= aItem.sDBName; 			break;// "Inscription/Database"
458 			case 20: pValues[nProp] <<= aItem.aPrivFirstName;  	break;// "PrivateAddress/FirstName",
459 			case 21: pValues[nProp] <<= aItem.aPrivName;       	break;// "PrivateAddress/Name",
460 			case 22: pValues[nProp] <<= aItem.aPrivShortCut;   	break;// "PrivateAddress/ShortCut",
461 			case 23: pValues[nProp] <<= aItem.aPrivFirstName2; 	break;// "PrivateAddress/SecondFirstName",
462 			case 24: pValues[nProp] <<= aItem.aPrivName2;      	break;// "PrivateAddress/SecondName",
463 			case 25: pValues[nProp] <<= aItem.aPrivShortCut2;  	break;// "PrivateAddress/SecondShortCut",
464 			case 26: pValues[nProp] <<= aItem.aPrivStreet;     	break;// "PrivateAddress/Street",
465 			case 27: pValues[nProp] <<= aItem.aPrivZip;        	break;// "PrivateAddress/Zip",
466 			case 28: pValues[nProp] <<= aItem.aPrivCity;       	break;// "PrivateAddress/City",
467 			case 29: pValues[nProp] <<= aItem.aPrivCountry;    	break;// "PrivateAddress/Country",
468 			case 30: pValues[nProp] <<= aItem.aPrivState;      	break;// "PrivateAddress/State",
469 			case 31: pValues[nProp] <<= aItem.aPrivTitle;      	break;// "PrivateAddress/Title",
470 			case 32: pValues[nProp] <<= aItem.aPrivProfession; 	break;// "PrivateAddress/Profession",
471 			case 33: pValues[nProp] <<= aItem.aPrivPhone;      	break;// "PrivateAddress/Phone",
472 			case 34: pValues[nProp] <<= aItem.aPrivMobile;     	break;// "PrivateAddress/Mobile",
473 			case 35: pValues[nProp] <<= aItem.aPrivFax;        	break;// "PrivateAddress/Fax",
474 			case 36: pValues[nProp] <<= aItem.aPrivWWW;        	break;// "PrivateAddress/WebAddress",
475 			case 37: pValues[nProp] <<= aItem.aPrivMail;       	break;// "PrivateAddress/Email",
476 			case 38: pValues[nProp] <<= aItem.aCompCompany;    	break;// "BusinessAddress/Company",
477 			case 39: pValues[nProp] <<= aItem.aCompCompanyExt; 	break;// "BusinessAddress/CompanyExt",
478 			case 40: pValues[nProp] <<= aItem.aCompSlogan;     	break;// "BusinessAddress/Slogan",
479 			case 41: pValues[nProp] <<= aItem.aCompStreet;     	break;// "BusinessAddress/Street",
480 			case 42: pValues[nProp] <<= aItem.aCompZip;        	break;// "BusinessAddress/Zip",
481 			case 43: pValues[nProp] <<= aItem.aCompCity;       	break;// "BusinessAddress/City",
482 			case 44: pValues[nProp] <<= aItem.aCompCountry;    	break;// "BusinessAddress/Country",
483 			case 45: pValues[nProp] <<= aItem.aCompState;      	break;// "BusinessAddress/State",
484 			case 46: pValues[nProp] <<= aItem.aCompPosition;   	break;// "BusinessAddress/Position",
485 			case 47: pValues[nProp] <<= aItem.aCompPhone;      	break;// "BusinessAddress/Phone",
486 			case 48: pValues[nProp] <<= aItem.aCompMobile;     	break;// "BusinessAddress/Mobile",
487 			case 49: pValues[nProp] <<= aItem.aCompFax;        	break;// "BusinessAddress/Fax",
488 			case 50: pValues[nProp] <<= aItem.aCompWWW;        	break;// "BusinessAddress/WebAddress",
489 			case 51: pValues[nProp] <<= aItem.aCompMail;       	break;// "BusinessAddress/Email",
490 			case 52: pValues[nProp] <<= aItem.sGlossaryGroup;  	break;// "AutoText/Group"
491 			case 53: pValues[nProp] <<= aItem.sGlossaryBlockName; break;// "AutoText/Block"
492 		}
493 	}
494 	PutProperties(aNames, aValues);
495 }
496 
497