bump product version to 4.1.6.2
[LibreOffice.git] / sw / source / ui / envelp / labimg.cxx
bloba5b29cd4e75219f3629f46078be487de24b94216
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include <tools/stream.hxx>
21 #include <tools/resid.hxx>
22 #include <com/sun/star/uno/Any.hxx>
23 #include <com/sun/star/uno/Sequence.hxx>
24 #include <unotools/useroptions.hxx>
25 #include <tools/shl.hxx>
26 #include <swmodule.hxx>
27 #include "labimg.hxx"
28 #include "cmdid.h"
29 #include "swtypes.hxx"
30 #include <unomid.h>
32 using namespace utl;
33 using namespace ::com::sun::star::uno;
36 SwLabItem::SwLabItem() :
38 SfxPoolItem(FN_LABEL),
39 lLeft (0),
40 lUpper(0),
41 nCols (1),
42 nRows (1),
43 nCol (1),
44 nRow (1)
46 bAddr =
47 bCont =
48 bSynchron = sal_False;
49 bPage = sal_True;
50 lHDist =
51 lVDist =
52 lWidth =
53 lHeight =
54 lPWidth =
55 lPHeight = 5669; // 10 cm
58 SwLabItem::SwLabItem(const SwLabItem& rItem) :
59 SfxPoolItem(FN_LABEL)
61 *this = rItem;
64 SwLabItem& SwLabItem::operator =(const SwLabItem& rItem)
66 bAddr = rItem.bAddr;
67 aWriting = rItem.aWriting;
68 bCont = rItem.bCont;
69 sDBName = rItem.sDBName;
70 aLstMake = rItem.aLstMake;
71 aLstType = rItem.aLstType;
72 aMake = rItem.aMake;
73 aType = rItem.aType;
74 bPage = rItem.bPage;
75 bSynchron = rItem.bSynchron;
76 aBin = rItem.aBin;
77 nCol = rItem.nCol;
78 nRow = rItem.nRow;
79 lHDist = rItem.lHDist;
80 lVDist = rItem.lVDist;
81 lWidth = rItem.lWidth;
82 lHeight = rItem.lHeight;
83 lLeft = rItem.lLeft;
84 lUpper = rItem.lUpper;
85 nCols = rItem.nCols;
86 nRows = rItem.nRows;
87 lPWidth = rItem.lPWidth;
88 lPHeight = rItem.lPHeight;
89 aPrivFirstName = rItem.aPrivFirstName;
90 aPrivName = rItem.aPrivName;
91 aPrivShortCut = rItem.aPrivShortCut;
92 aPrivFirstName2 = rItem.aPrivFirstName2;
93 aPrivName2 = rItem.aPrivName2;
94 aPrivShortCut2 = rItem.aPrivShortCut2;
95 aPrivStreet = rItem.aPrivStreet;
96 aPrivZip = rItem.aPrivZip;
97 aPrivCity = rItem.aPrivCity;
98 aPrivCountry = rItem.aPrivCountry;
99 aPrivState = rItem.aPrivState;
100 aPrivTitle = rItem.aPrivTitle;
101 aPrivProfession = rItem.aPrivProfession;
102 aPrivPhone = rItem.aPrivPhone;
103 aPrivMobile = rItem.aPrivMobile;
104 aPrivFax = rItem.aPrivFax;
105 aPrivWWW = rItem.aPrivWWW;
106 aPrivMail = rItem.aPrivMail;
107 aCompCompany = rItem.aCompCompany;
108 aCompCompanyExt = rItem.aCompCompanyExt;
109 aCompSlogan = rItem.aCompSlogan;
110 aCompStreet = rItem.aCompStreet;
111 aCompZip = rItem.aCompZip;
112 aCompCity = rItem.aCompCity;
113 aCompCountry = rItem.aCompCountry;
114 aCompState = rItem.aCompState;
115 aCompPosition = rItem.aCompPosition;
116 aCompPhone = rItem.aCompPhone;
117 aCompMobile = rItem.aCompMobile;
118 aCompFax = rItem.aCompFax;
119 aCompWWW = rItem.aCompWWW;
120 aCompMail = rItem.aCompMail;
121 sGlossaryGroup = rItem.sGlossaryGroup;
122 sGlossaryBlockName = rItem.sGlossaryBlockName;
123 return *this;
126 int SwLabItem::operator ==(const SfxPoolItem& rItem) const
128 const SwLabItem& rLab = (const SwLabItem&) rItem;
130 return bAddr == rLab.bAddr &&
131 bCont == rLab.bCont &&
132 bPage == rLab.bPage &&
133 bSynchron == rLab.bSynchron &&
134 aBin == rLab.aBin &&
135 nCol == rLab.nCol &&
136 nRow == rLab.nRow &&
137 lHDist == rLab.lHDist &&
138 lVDist == rLab.lVDist &&
139 lWidth == rLab.lWidth &&
140 lHeight == rLab.lHeight &&
141 lLeft == rLab.lLeft &&
142 lUpper == rLab.lUpper &&
143 nCols == rLab.nCols &&
144 nRows == rLab.nRows &&
145 lPWidth == rLab.lPWidth &&
146 lPHeight == rLab.lPHeight&&
147 aWriting == rLab.aWriting&&
148 aMake == rLab.aMake &&
149 aType == rLab.aType &&
150 aLstMake == rLab.aLstMake&&
151 aLstType == rLab.aLstType&&
152 sDBName == rLab.sDBName &&
153 aPrivFirstName == rLab.aPrivFirstName&&
154 aPrivName == rLab.aPrivName&&
155 aPrivShortCut == rLab.aPrivShortCut&&
156 aPrivFirstName2 == rLab.aPrivFirstName2&&
157 aPrivName2 == rLab.aPrivName2&&
158 aPrivShortCut2 == rLab.aPrivShortCut2&&
159 aPrivStreet == rLab.aPrivStreet&&
160 aPrivZip == rLab.aPrivZip&&
161 aPrivCity == rLab.aPrivCity&&
162 aPrivCountry == rLab.aPrivCountry&&
163 aPrivState == rLab.aPrivState&&
164 aPrivTitle == rLab.aPrivTitle&&
165 aPrivProfession == rLab.aPrivProfession&&
166 aPrivPhone == rLab.aPrivPhone&&
167 aPrivMobile == rLab.aPrivMobile&&
168 aPrivFax == rLab.aPrivFax&&
169 aPrivWWW == rLab.aPrivWWW&&
170 aPrivMail == rLab.aPrivMail&&
171 aCompCompany == rLab.aCompCompany&&
172 aCompCompanyExt == rLab.aCompCompanyExt&&
173 aCompSlogan == rLab.aCompSlogan&&
174 aCompStreet == rLab.aCompStreet&&
175 aCompZip == rLab.aCompZip&&
176 aCompCity == rLab.aCompCity&&
177 aCompCountry == rLab.aCompCountry&&
178 aCompState == rLab.aCompState&&
179 aCompPosition == rLab.aCompPosition&&
180 aCompPhone == rLab.aCompPhone&&
181 aCompMobile == rLab.aCompMobile&&
182 aCompFax == rLab.aCompFax&&
183 aCompWWW == rLab.aCompWWW&&
184 aCompMail == rLab.aCompMail &&
185 sGlossaryGroup == rLab.sGlossaryGroup &&
186 sGlossaryBlockName == rLab.sGlossaryBlockName;
189 SfxPoolItem* SwLabItem::Clone(SfxItemPool*) const
191 return new SwLabItem(*this);
194 Sequence<OUString> SwLabCfgItem::GetPropertyNames()
196 static const char* aLabelPropNames[] =
198 "Medium/Continous", // 0
199 "Medium/Brand", // 1
200 "Medium/Type", // 2
201 "Format/Column", // 3
202 "Format/Row", // 4
203 "Format/HorizontalDistance",// 5
204 "Format/VerticalDistance", // 6
205 "Format/Width", // 7
206 "Format/Height", // 8
207 "Format/LeftMargin", // 9
208 "Format/TopMargin", //10
209 "Format/PageWidth", //11
210 "Format/PageHeight", //12
211 "Option/Synchronize", //13
212 "Option/Page", //14
213 "Option/Column", //15
214 "Option/Row", //16
215 "Inscription/UseAddress", //17
216 "Inscription/Address", //18
217 "Inscription/Database" //19
219 static const char* aBusinessPropNames[] =
221 "PrivateAddress/FirstName", // 0
222 "PrivateAddress/Name", // 1
223 "PrivateAddress/ShortCut", // 2
224 "PrivateAddress/SecondFirstName", // 3
225 "PrivateAddress/SecondName", // 4
226 "PrivateAddress/SecondShortCut", // 5
227 "PrivateAddress/Street", // 6
228 "PrivateAddress/Zip", // 7
229 "PrivateAddress/City", // 8
230 "PrivateAddress/Country", // 9
231 "PrivateAddress/State", // 10
232 "PrivateAddress/Title", // 11
233 "PrivateAddress/Profession", // 12
234 "PrivateAddress/Phone", // 13
235 "PrivateAddress/Mobile", // 14
236 "PrivateAddress/Fax", // 15
237 "PrivateAddress/WebAddress", // 16
238 "PrivateAddress/Email", // 17
239 "BusinessAddress/Company", // 18
240 "BusinessAddress/CompanyExt", // 19
241 "BusinessAddress/Slogan", // 20
242 "BusinessAddress/Street", // 21
243 "BusinessAddress/Zip", // 22
244 "BusinessAddress/City", // 23
245 "BusinessAddress/Country", // 24
246 "BusinessAddress/State", // 25
247 "BusinessAddress/Position", // 26
248 "BusinessAddress/Phone", // 27
249 "BusinessAddress/Mobile", // 28
250 "BusinessAddress/Fax", // 29
251 "BusinessAddress/WebAddress", // 30
252 "BusinessAddress/Email", // 31
253 "AutoText/Group", // 32
254 "AutoText/Block" // 33
256 const int nBusinessCount = bIsLabel ? 0 : 34;
257 const int nLabelCount = bIsLabel ? 20 : 17;
258 Sequence<OUString> aNames(nBusinessCount + nLabelCount);
259 OUString* pNames = aNames.getArray();
260 int nIndex = 0;
261 for(int nLabel = 0; nLabel < nLabelCount; nLabel++)
262 pNames[nIndex++] = OUString::createFromAscii(aLabelPropNames[nLabel]);
263 for(int nBusiness = 0; nBusiness < nBusinessCount; nBusiness++)
264 pNames[nIndex++] = OUString::createFromAscii(aBusinessPropNames[nBusiness]);
265 return aNames;
268 SwLabCfgItem::SwLabCfgItem(sal_Bool bLabel) :
269 ConfigItem(bLabel ? OUString("Office.Writer/Label") : OUString("Office.Writer/BusinessCard")),
270 bIsLabel(bLabel)
272 Sequence<OUString> aNames = GetPropertyNames();
273 Sequence<Any> aValues = GetProperties(aNames);
274 EnableNotification(aNames);
275 const Any* pValues = aValues.getConstArray();
276 OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
277 bool bNoConfigValues = true;
278 if(aValues.getLength() == aNames.getLength())
280 for(int nProp = 0, nProperty = 0; nProp < aNames.getLength(); nProp++, nProperty++)
283 if(pValues[nProp].hasValue())
285 //to have a contiuous switch an offset is added
286 if(nProp == 17 && !bIsLabel)
287 nProperty += 3;
288 if(nProperty >= 20)
289 bNoConfigValues = false;
290 switch(nProperty)
292 case 0: aItem.bCont = *(sal_Bool*)pValues[nProp].getValue(); break;// "Medium/Continous",
293 case 1: pValues[nProp] >>= aItem.aMake; break;// "Medium/Brand",
294 case 2: pValues[nProp] >>= aItem.aType; break;// "Medium/Type",
295 case 3: pValues[nProp] >>= aItem.nCols; break;// "Format/Column",
296 case 4: pValues[nProp] >>= aItem.nRows; break;// "Format/Row",
297 case 5:
298 pValues[nProp] >>= aItem.lHDist;
299 aItem.lHDist = MM100_TO_TWIP(aItem.lHDist);
300 break;// "Format/HorizontalDistance",
301 case 6:
302 pValues[nProp] >>= aItem.lVDist;
303 aItem.lVDist = MM100_TO_TWIP(aItem.lVDist);
304 break;// "Format/VerticalDistance",
305 case 7:
306 pValues[nProp] >>= aItem.lWidth;
307 aItem.lWidth = MM100_TO_TWIP(aItem.lWidth);
308 break;// "Format/Width",
309 case 8:
310 pValues[nProp] >>= aItem.lHeight;
311 aItem.lHeight = MM100_TO_TWIP(aItem.lHeight);
312 break;// "Format/Height",
313 case 9:
314 pValues[nProp] >>= aItem.lLeft;
315 aItem.lLeft = MM100_TO_TWIP(aItem.lLeft);
316 break;// "Format/LeftMargin",
317 case 10:
318 pValues[nProp] >>= aItem.lUpper;
319 aItem.lUpper = MM100_TO_TWIP(aItem.lUpper);
320 break;// "Format/TopMargin",
321 case 11:
322 pValues[nProp] >>= aItem.lPWidth;
323 aItem.lPWidth = MM100_TO_TWIP(aItem.lPWidth);
324 break;// "Format/PageWidth",
325 case 12:
326 pValues[nProp] >>= aItem.lPHeight;
327 aItem.lPHeight = MM100_TO_TWIP(aItem.lPHeight);
328 break;// "Format/PageHeight",
329 case 13: aItem.bSynchron = *(sal_Bool*)pValues[nProp].getValue(); break;// "Option/Synchronize",
330 case 14: aItem.bPage = *(sal_Bool*)pValues[nProp].getValue(); break;// "Option/Page",
331 case 15: pValues[nProp] >>= aItem.nCol; break;// "Option/Column",
332 case 16: pValues[nProp] >>= aItem.nRow; break;// "Option/Row"
333 case 17: aItem.bAddr = *(sal_Bool*)pValues[nProp].getValue(); break;// "Inscription/UseAddress",
334 case 18: pValues[nProp] >>= aItem.aWriting; break;// "Inscription/Address",
335 case 19: pValues[nProp] >>= aItem.sDBName; break;// "Inscription/Database"
336 case 20: pValues[nProp] >>= aItem.aPrivFirstName; break;// "PrivateAddress/FirstName",
337 case 21: pValues[nProp] >>= aItem.aPrivName; break;// "PrivateAddress/Name",
338 case 22: pValues[nProp] >>= aItem.aPrivShortCut; break;// "PrivateAddress/ShortCut",
339 case 23: pValues[nProp] >>= aItem.aPrivFirstName2; break;// "PrivateAddress/SecondFirstName",
340 case 24: pValues[nProp] >>= aItem.aPrivName2; break;// "PrivateAddress/SecondName",
341 case 25: pValues[nProp] >>= aItem.aPrivShortCut2; break;// "PrivateAddress/SecondShortCut",
342 case 26: pValues[nProp] >>= aItem.aPrivStreet; break;// "PrivateAddress/Street",
343 case 27: pValues[nProp] >>= aItem.aPrivZip; break;// "PrivateAddress/Zip",
344 case 28: pValues[nProp] >>= aItem.aPrivCity; break;// "PrivateAddress/City",
345 case 29: pValues[nProp] >>= aItem.aPrivCountry; break;// "PrivateAddress/Country",
346 case 30: pValues[nProp] >>= aItem.aPrivState; break;// "PrivateAddress/State",
347 case 31: pValues[nProp] >>= aItem.aPrivTitle; break;// "PrivateAddress/Title",
348 case 32: pValues[nProp] >>= aItem.aPrivProfession; break;// "PrivateAddress/Profession",
349 case 33: pValues[nProp] >>= aItem.aPrivPhone; break;// "PrivateAddress/Phone",
350 case 34: pValues[nProp] >>= aItem.aPrivMobile; break;// "PrivateAddress/Mobile",
351 case 35: pValues[nProp] >>= aItem.aPrivFax; break;// "PrivateAddress/Fax",
352 case 36: pValues[nProp] >>= aItem.aPrivWWW; break;// "PrivateAddress/WebAddress",
353 case 37: pValues[nProp] >>= aItem.aPrivMail; break;// "PrivateAddress/Email",
354 case 38: pValues[nProp] >>= aItem.aCompCompany; break;// "BusinessAddress/Company",
355 case 39: pValues[nProp] >>= aItem.aCompCompanyExt; break;// "BusinessAddress/CompanyExt",
356 case 40: pValues[nProp] >>= aItem.aCompSlogan; break;// "BusinessAddress/Slogan",
357 case 41: pValues[nProp] >>= aItem.aCompStreet; break;// "BusinessAddress/Street",
358 case 42: pValues[nProp] >>= aItem.aCompZip; break;// "BusinessAddress/Zip",
359 case 43: pValues[nProp] >>= aItem.aCompCity; break;// "BusinessAddress/City",
360 case 44: pValues[nProp] >>= aItem.aCompCountry; break;// "BusinessAddress/Country",
361 case 45: pValues[nProp] >>= aItem.aCompState; break;// "BusinessAddress/State",
362 case 46: pValues[nProp] >>= aItem.aCompPosition; break;// "BusinessAddress/Position",
363 case 47: pValues[nProp] >>= aItem.aCompPhone; break;// "BusinessAddress/Phone",
364 case 48: pValues[nProp] >>= aItem.aCompMobile; break;// "BusinessAddress/Mobile",
365 case 49: pValues[nProp] >>= aItem.aCompFax; break;// "BusinessAddress/Fax",
366 case 50: pValues[nProp] >>= aItem.aCompWWW; break;// "BusinessAddress/WebAddress",
367 case 51: pValues[nProp] >>= aItem.aCompMail; break;// "BusinessAddress/Email",
368 case 52: pValues[nProp] >>= aItem.sGlossaryGroup; break;// "AutoText/Group"
369 case 53: pValues[nProp] >>= aItem.sGlossaryBlockName; break;// "AutoText/Block"
374 if(!bIsLabel && bNoConfigValues)
377 SvtUserOptions& rUserOpt = SW_MOD()->GetUserOptions();
378 aItem.aPrivFirstName = rUserOpt.GetFirstName();
379 aItem.aPrivName = rUserOpt.GetLastName();
380 aItem.aPrivShortCut = rUserOpt.GetID();
381 aItem.aCompCompany = rUserOpt.GetCompany();
382 aItem.aCompStreet = aItem.aPrivStreet = rUserOpt.GetStreet();
384 aItem.aCompCountry = aItem.aPrivCountry = rUserOpt.GetCountry();
385 aItem.aCompZip = aItem.aPrivZip= rUserOpt.GetZip();
386 aItem.aCompCity = aItem.aPrivCity = rUserOpt.GetCity();
387 aItem.aPrivTitle = rUserOpt.GetTitle();
388 aItem.aCompPosition = rUserOpt.GetPosition();
389 aItem.aPrivPhone = rUserOpt.GetTelephoneHome();
390 aItem.aCompPhone = rUserOpt.GetTelephoneWork();
391 aItem.aCompFax = aItem.aPrivFax = rUserOpt.GetFax();
392 aItem.aCompMail = aItem.aPrivMail = rUserOpt.GetEmail();
393 aItem.aCompState = aItem.aPrivState = rUserOpt.GetState();
394 aItem.bSynchron = sal_True;
395 SetModified();
399 void SwLabCfgItem::Notify( const ::com::sun::star::uno::Sequence< OUString >& ) {}
401 void SwLabCfgItem::Commit()
403 Sequence<OUString> aNames = GetPropertyNames();
404 Sequence<Any> aValues(aNames.getLength());
405 Any* pValues = aValues.getArray();
407 const Type& rType = ::getBooleanCppuType();
408 for(int nProp = 0, nProperty = 0; nProp < aNames.getLength(); nProp++, nProperty++)
410 //to have a contiuous switch an offset is added
411 if(nProp == 17 && !bIsLabel)
412 nProperty += 3;
413 switch(nProperty)
415 case 0: pValues[nProp].setValue(&aItem.bCont, rType); break;// "Medium/Continous",
416 case 1: pValues[nProp] <<= aItem.aMake; break;// "Medium/Brand",
417 case 2: pValues[nProp] <<= aItem.aType; break;// "Medium/Type",
418 case 3: pValues[nProp] <<= aItem.nCols; break;// "Format/Column",
419 case 4: pValues[nProp] <<= aItem.nRows; break;// "Format/Row",
420 case 5: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lHDist));break;// "Format/HorizontalDistance",
421 case 6: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lVDist));break;// "Format/VerticalDistance",
422 case 7: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lWidth)); break;// "Format/Width",
423 case 8: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lHeight)); break;// "Format/Height",
424 case 9: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lLeft)); break;// "Format/LeftMargin",
425 case 10: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lUpper)); break;// "Format/TopMargin",
426 case 11: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lPWidth)); break;// "Format/Page Width",
427 case 12: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lPHeight)); break;// "Format/PageHeight",
428 case 13: pValues[nProp].setValue(&aItem.bSynchron, rType); break;// "Option/Synchronize",
429 case 14: pValues[nProp].setValue(&aItem.bPage, rType); break;// "Option/Page",
430 case 15: pValues[nProp] <<= aItem.nCol; break;// "Option/Column",
431 case 16: pValues[nProp] <<= aItem.nRow; break;// "Option/Row"
432 case 17: pValues[nProp].setValue(&aItem.bAddr, rType); break;// "Inscription/UseAddress",
433 case 18: pValues[nProp] <<= aItem.aWriting; break;// "Inscription/Address",
434 case 19: pValues[nProp] <<= aItem.sDBName; break;// "Inscription/Database"
435 case 20: pValues[nProp] <<= aItem.aPrivFirstName; break;// "PrivateAddress/FirstName",
436 case 21: pValues[nProp] <<= aItem.aPrivName; break;// "PrivateAddress/Name",
437 case 22: pValues[nProp] <<= aItem.aPrivShortCut; break;// "PrivateAddress/ShortCut",
438 case 23: pValues[nProp] <<= aItem.aPrivFirstName2; break;// "PrivateAddress/SecondFirstName",
439 case 24: pValues[nProp] <<= aItem.aPrivName2; break;// "PrivateAddress/SecondName",
440 case 25: pValues[nProp] <<= aItem.aPrivShortCut2; break;// "PrivateAddress/SecondShortCut",
441 case 26: pValues[nProp] <<= aItem.aPrivStreet; break;// "PrivateAddress/Street",
442 case 27: pValues[nProp] <<= aItem.aPrivZip; break;// "PrivateAddress/Zip",
443 case 28: pValues[nProp] <<= aItem.aPrivCity; break;// "PrivateAddress/City",
444 case 29: pValues[nProp] <<= aItem.aPrivCountry; break;// "PrivateAddress/Country",
445 case 30: pValues[nProp] <<= aItem.aPrivState; break;// "PrivateAddress/State",
446 case 31: pValues[nProp] <<= aItem.aPrivTitle; break;// "PrivateAddress/Title",
447 case 32: pValues[nProp] <<= aItem.aPrivProfession; break;// "PrivateAddress/Profession",
448 case 33: pValues[nProp] <<= aItem.aPrivPhone; break;// "PrivateAddress/Phone",
449 case 34: pValues[nProp] <<= aItem.aPrivMobile; break;// "PrivateAddress/Mobile",
450 case 35: pValues[nProp] <<= aItem.aPrivFax; break;// "PrivateAddress/Fax",
451 case 36: pValues[nProp] <<= aItem.aPrivWWW; break;// "PrivateAddress/WebAddress",
452 case 37: pValues[nProp] <<= aItem.aPrivMail; break;// "PrivateAddress/Email",
453 case 38: pValues[nProp] <<= aItem.aCompCompany; break;// "BusinessAddress/Company",
454 case 39: pValues[nProp] <<= aItem.aCompCompanyExt; break;// "BusinessAddress/CompanyExt",
455 case 40: pValues[nProp] <<= aItem.aCompSlogan; break;// "BusinessAddress/Slogan",
456 case 41: pValues[nProp] <<= aItem.aCompStreet; break;// "BusinessAddress/Street",
457 case 42: pValues[nProp] <<= aItem.aCompZip; break;// "BusinessAddress/Zip",
458 case 43: pValues[nProp] <<= aItem.aCompCity; break;// "BusinessAddress/City",
459 case 44: pValues[nProp] <<= aItem.aCompCountry; break;// "BusinessAddress/Country",
460 case 45: pValues[nProp] <<= aItem.aCompState; break;// "BusinessAddress/State",
461 case 46: pValues[nProp] <<= aItem.aCompPosition; break;// "BusinessAddress/Position",
462 case 47: pValues[nProp] <<= aItem.aCompPhone; break;// "BusinessAddress/Phone",
463 case 48: pValues[nProp] <<= aItem.aCompMobile; break;// "BusinessAddress/Mobile",
464 case 49: pValues[nProp] <<= aItem.aCompFax; break;// "BusinessAddress/Fax",
465 case 50: pValues[nProp] <<= aItem.aCompWWW; break;// "BusinessAddress/WebAddress",
466 case 51: pValues[nProp] <<= aItem.aCompMail; break;// "BusinessAddress/Email",
467 case 52: pValues[nProp] <<= aItem.sGlossaryGroup; break;// "AutoText/Group"
468 case 53: pValues[nProp] <<= aItem.sGlossaryBlockName; break;// "AutoText/Block"
471 PutProperties(aNames, aValues);
474 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */