nss: upgrade to release 3.73
[LibreOffice.git] / sw / source / uibase / envelp / labimg.cxx
blob8050e843ac0556d7df98f1bb9460c9506950be81
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 <sal/config.h>
22 #include <o3tl/any.hxx>
23 #include <osl/diagnose.h>
24 #include <tools/UnitConversion.hxx>
25 #include <com/sun/star/uno/Sequence.hxx>
26 #include <unotools/useroptions.hxx>
27 #include <swmodule.hxx>
28 #include <labimg.hxx>
29 #include <cmdid.h>
31 using namespace utl;
32 using namespace ::com::sun::star::uno;
34 SwLabItem::SwLabItem() :
36 SfxPoolItem(FN_LABEL),
37 m_lLeft (0),
38 m_lUpper(0),
39 m_nCols (1),
40 m_nRows (1),
41 m_nCol (1),
42 m_nRow (1)
44 m_bAddr =
45 m_bCont =
46 m_bSynchron = false;
47 m_bPage = true;
48 m_lHDist =
49 m_lVDist =
50 m_lWidth =
51 m_lHeight =
52 m_lPWidth =
53 m_lPHeight = 5669; // 10 cm
56 SwLabItem& SwLabItem::operator =(const SwLabItem& rItem)
58 m_bAddr = rItem.m_bAddr;
59 m_aWriting = rItem.m_aWriting;
60 m_bCont = rItem.m_bCont;
61 m_sDBName = rItem.m_sDBName;
62 m_aLstMake = rItem.m_aLstMake;
63 m_aLstType = rItem.m_aLstType;
64 m_aMake = rItem.m_aMake;
65 m_aType = rItem.m_aType;
66 m_bPage = rItem.m_bPage;
67 m_bSynchron = rItem.m_bSynchron;
68 m_nCol = rItem.m_nCol;
69 m_nRow = rItem.m_nRow;
70 m_lHDist = rItem.m_lHDist;
71 m_lVDist = rItem.m_lVDist;
72 m_lWidth = rItem.m_lWidth;
73 m_lHeight = rItem.m_lHeight;
74 m_lLeft = rItem.m_lLeft;
75 m_lUpper = rItem.m_lUpper;
76 m_nCols = rItem.m_nCols;
77 m_nRows = rItem.m_nRows;
78 m_lPWidth = rItem.m_lPWidth;
79 m_lPHeight = rItem.m_lPHeight;
80 m_aPrivFirstName = rItem.m_aPrivFirstName;
81 m_aPrivName = rItem.m_aPrivName;
82 m_aPrivShortCut = rItem.m_aPrivShortCut;
83 m_aPrivFirstName2 = rItem.m_aPrivFirstName2;
84 m_aPrivName2 = rItem.m_aPrivName2;
85 m_aPrivShortCut2 = rItem.m_aPrivShortCut2;
86 m_aPrivStreet = rItem.m_aPrivStreet;
87 m_aPrivZip = rItem.m_aPrivZip;
88 m_aPrivCity = rItem.m_aPrivCity;
89 m_aPrivCountry = rItem.m_aPrivCountry;
90 m_aPrivState = rItem.m_aPrivState;
91 m_aPrivTitle = rItem.m_aPrivTitle;
92 m_aPrivProfession = rItem.m_aPrivProfession;
93 m_aPrivPhone = rItem.m_aPrivPhone;
94 m_aPrivMobile = rItem.m_aPrivMobile;
95 m_aPrivFax = rItem.m_aPrivFax;
96 m_aPrivWWW = rItem.m_aPrivWWW;
97 m_aPrivMail = rItem.m_aPrivMail;
98 m_aCompCompany = rItem.m_aCompCompany;
99 m_aCompCompanyExt = rItem.m_aCompCompanyExt;
100 m_aCompSlogan = rItem.m_aCompSlogan;
101 m_aCompStreet = rItem.m_aCompStreet;
102 m_aCompZip = rItem.m_aCompZip;
103 m_aCompCity = rItem.m_aCompCity;
104 m_aCompCountry = rItem.m_aCompCountry;
105 m_aCompState = rItem.m_aCompState;
106 m_aCompPosition = rItem.m_aCompPosition;
107 m_aCompPhone = rItem.m_aCompPhone;
108 m_aCompMobile = rItem.m_aCompMobile;
109 m_aCompFax = rItem.m_aCompFax;
110 m_aCompWWW = rItem.m_aCompWWW;
111 m_aCompMail = rItem.m_aCompMail;
112 m_sGlossaryGroup = rItem.m_sGlossaryGroup;
113 m_sGlossaryBlockName = rItem.m_sGlossaryBlockName;
114 return *this;
117 bool SwLabItem::operator ==(const SfxPoolItem& rItem) const
119 const SwLabItem& rLab = static_cast<const SwLabItem&>( rItem);
121 return m_bAddr == rLab.m_bAddr &&
122 m_bCont == rLab.m_bCont &&
123 m_bPage == rLab.m_bPage &&
124 m_bSynchron == rLab.m_bSynchron &&
125 m_nCol == rLab.m_nCol &&
126 m_nRow == rLab.m_nRow &&
127 m_lHDist == rLab.m_lHDist &&
128 m_lVDist == rLab.m_lVDist &&
129 m_lWidth == rLab.m_lWidth &&
130 m_lHeight == rLab.m_lHeight &&
131 m_lLeft == rLab.m_lLeft &&
132 m_lUpper == rLab.m_lUpper &&
133 m_nCols == rLab.m_nCols &&
134 m_nRows == rLab.m_nRows &&
135 m_lPWidth == rLab.m_lPWidth &&
136 m_lPHeight == rLab.m_lPHeight&&
137 m_aWriting == rLab.m_aWriting&&
138 m_aMake == rLab.m_aMake &&
139 m_aType == rLab.m_aType &&
140 m_aLstMake == rLab.m_aLstMake&&
141 m_aLstType == rLab.m_aLstType&&
142 m_sDBName == rLab.m_sDBName &&
143 m_aPrivFirstName == rLab.m_aPrivFirstName&&
144 m_aPrivName == rLab.m_aPrivName&&
145 m_aPrivShortCut == rLab.m_aPrivShortCut&&
146 m_aPrivFirstName2 == rLab.m_aPrivFirstName2&&
147 m_aPrivName2 == rLab.m_aPrivName2&&
148 m_aPrivShortCut2 == rLab.m_aPrivShortCut2&&
149 m_aPrivStreet == rLab.m_aPrivStreet&&
150 m_aPrivZip == rLab.m_aPrivZip&&
151 m_aPrivCity == rLab.m_aPrivCity&&
152 m_aPrivCountry == rLab.m_aPrivCountry&&
153 m_aPrivState == rLab.m_aPrivState&&
154 m_aPrivTitle == rLab.m_aPrivTitle&&
155 m_aPrivProfession == rLab.m_aPrivProfession&&
156 m_aPrivPhone == rLab.m_aPrivPhone&&
157 m_aPrivMobile == rLab.m_aPrivMobile&&
158 m_aPrivFax == rLab.m_aPrivFax&&
159 m_aPrivWWW == rLab.m_aPrivWWW&&
160 m_aPrivMail == rLab.m_aPrivMail&&
161 m_aCompCompany == rLab.m_aCompCompany&&
162 m_aCompCompanyExt == rLab.m_aCompCompanyExt&&
163 m_aCompSlogan == rLab.m_aCompSlogan&&
164 m_aCompStreet == rLab.m_aCompStreet&&
165 m_aCompZip == rLab.m_aCompZip&&
166 m_aCompCity == rLab.m_aCompCity&&
167 m_aCompCountry == rLab.m_aCompCountry&&
168 m_aCompState == rLab.m_aCompState&&
169 m_aCompPosition == rLab.m_aCompPosition&&
170 m_aCompPhone == rLab.m_aCompPhone&&
171 m_aCompMobile == rLab.m_aCompMobile&&
172 m_aCompFax == rLab.m_aCompFax&&
173 m_aCompWWW == rLab.m_aCompWWW&&
174 m_aCompMail == rLab.m_aCompMail &&
175 m_sGlossaryGroup == rLab.m_sGlossaryGroup &&
176 m_sGlossaryBlockName == rLab.m_sGlossaryBlockName;
179 SwLabItem* SwLabItem::Clone(SfxItemPool*) const
181 return new SwLabItem(*this);
184 Sequence<OUString> SwLabCfgItem::GetPropertyNames() const
186 static const char* aLabelPropNames[] =
188 "Medium/Continuous", // 0
189 "Medium/Brand", // 1
190 "Medium/Type", // 2
191 "Format/Column", // 3
192 "Format/Row", // 4
193 "Format/HorizontalDistance",// 5
194 "Format/VerticalDistance", // 6
195 "Format/Width", // 7
196 "Format/Height", // 8
197 "Format/LeftMargin", // 9
198 "Format/TopMargin", //10
199 "Format/PageWidth", //11
200 "Format/PageHeight", //12
201 "Option/Synchronize", //13
202 "Option/Page", //14
203 "Option/Column", //15
204 "Option/Row", //16
205 "Inscription/UseAddress", //17
206 "Inscription/Address", //18
207 "Inscription/Database" //19
209 static const char* aBusinessPropNames[] =
211 "PrivateAddress/FirstName", // 0
212 "PrivateAddress/Name", // 1
213 "PrivateAddress/ShortCut", // 2
214 "PrivateAddress/SecondFirstName", // 3
215 "PrivateAddress/SecondName", // 4
216 "PrivateAddress/SecondShortCut", // 5
217 "PrivateAddress/Street", // 6
218 "PrivateAddress/Zip", // 7
219 "PrivateAddress/City", // 8
220 "PrivateAddress/Country", // 9
221 "PrivateAddress/State", // 10
222 "PrivateAddress/Title", // 11
223 "PrivateAddress/Profession", // 12
224 "PrivateAddress/Phone", // 13
225 "PrivateAddress/Mobile", // 14
226 "PrivateAddress/Fax", // 15
227 "PrivateAddress/WebAddress", // 16
228 "PrivateAddress/Email", // 17
229 "BusinessAddress/Company", // 18
230 "BusinessAddress/CompanyExt", // 19
231 "BusinessAddress/Slogan", // 20
232 "BusinessAddress/Street", // 21
233 "BusinessAddress/Zip", // 22
234 "BusinessAddress/City", // 23
235 "BusinessAddress/Country", // 24
236 "BusinessAddress/State", // 25
237 "BusinessAddress/Position", // 26
238 "BusinessAddress/Phone", // 27
239 "BusinessAddress/Mobile", // 28
240 "BusinessAddress/Fax", // 29
241 "BusinessAddress/WebAddress", // 30
242 "BusinessAddress/Email", // 31
243 "AutoText/Group", // 32
244 "AutoText/Block" // 33
246 const int nBusinessCount = bIsLabel ? 0 : 34;
247 const int nLabelCount = bIsLabel ? 20 : 17;
248 Sequence<OUString> aNames(nBusinessCount + nLabelCount);
249 OUString* pNames = aNames.getArray();
250 int nIndex = 0;
251 for(int nLabel = 0; nLabel < nLabelCount; nLabel++)
252 pNames[nIndex++] = OUString::createFromAscii(aLabelPropNames[nLabel]);
253 for(int nBusiness = 0; nBusiness < nBusinessCount; nBusiness++)
254 pNames[nIndex++] = OUString::createFromAscii(aBusinessPropNames[nBusiness]);
255 return aNames;
258 SwLabCfgItem::SwLabCfgItem(bool bLabel) :
259 ConfigItem(bLabel ? OUString("Office.Writer/Label") : OUString("Office.Writer/BusinessCard")),
260 bIsLabel(bLabel)
262 Sequence<OUString> aNames = GetPropertyNames();
263 Sequence<Any> aValues = GetProperties(aNames);
264 EnableNotification(aNames);
265 const Any* pValues = aValues.getConstArray();
266 OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
267 bool bNoConfigValues = true;
268 if(aValues.getLength() == aNames.getLength())
270 for(int nProp = 0, nProperty = 0; nProp < aNames.getLength(); nProp++, nProperty++)
273 if(pValues[nProp].hasValue())
275 //to have a contiuous switch an offset is added
276 if(nProp == 17 && !bIsLabel)
277 nProperty += 3;
278 if(nProperty >= 20)
279 bNoConfigValues = false;
280 switch(nProperty)
282 case 0: aItem.m_bCont = *o3tl::doAccess<bool>(pValues[nProp]); break;// "Medium/Continuous",
283 case 1: pValues[nProp] >>= aItem.m_aMake; break;// "Medium/Brand",
284 case 2: pValues[nProp] >>= aItem.m_aType; break;// "Medium/Type",
285 case 3: pValues[nProp] >>= aItem.m_nCols; break;// "Format/Column",
286 case 4: pValues[nProp] >>= aItem.m_nRows; break;// "Format/Row",
287 case 5:
288 pValues[nProp] >>= aItem.m_lHDist;
289 aItem.m_lHDist = convertMm100ToTwip(aItem.m_lHDist);
290 break;// "Format/HorizontalDistance",
291 case 6:
292 pValues[nProp] >>= aItem.m_lVDist;
293 aItem.m_lVDist = convertMm100ToTwip(aItem.m_lVDist);
294 break;// "Format/VerticalDistance",
295 case 7:
296 pValues[nProp] >>= aItem.m_lWidth;
297 aItem.m_lWidth = convertMm100ToTwip(aItem.m_lWidth);
298 break;// "Format/Width",
299 case 8:
300 pValues[nProp] >>= aItem.m_lHeight;
301 aItem.m_lHeight = convertMm100ToTwip(aItem.m_lHeight);
302 break;// "Format/Height",
303 case 9:
304 pValues[nProp] >>= aItem.m_lLeft;
305 aItem.m_lLeft = convertMm100ToTwip(aItem.m_lLeft);
306 break;// "Format/LeftMargin",
307 case 10:
308 pValues[nProp] >>= aItem.m_lUpper;
309 aItem.m_lUpper = convertMm100ToTwip(aItem.m_lUpper);
310 break;// "Format/TopMargin",
311 case 11:
312 pValues[nProp] >>= aItem.m_lPWidth;
313 aItem.m_lPWidth = convertMm100ToTwip(aItem.m_lPWidth);
314 break;// "Format/PageWidth",
315 case 12:
316 pValues[nProp] >>= aItem.m_lPHeight;
317 aItem.m_lPHeight = convertMm100ToTwip(aItem.m_lPHeight);
318 break;// "Format/PageHeight",
319 case 13: aItem.m_bSynchron = *o3tl::doAccess<bool>(pValues[nProp]); break;// "Option/Synchronize",
320 case 14: aItem.m_bPage = *o3tl::doAccess<bool>(pValues[nProp]); break;// "Option/Page",
321 case 15: pValues[nProp] >>= aItem.m_nCol; break;// "Option/Column",
322 case 16: pValues[nProp] >>= aItem.m_nRow; break;// "Option/Row"
323 case 17: aItem.m_bAddr = *o3tl::doAccess<bool>(pValues[nProp]); break;// "Inscription/UseAddress",
324 case 18: pValues[nProp] >>= aItem.m_aWriting; break;// "Inscription/Address",
325 case 19: pValues[nProp] >>= aItem.m_sDBName; break;// "Inscription/Database"
326 case 20: pValues[nProp] >>= aItem.m_aPrivFirstName; break;// "PrivateAddress/FirstName",
327 case 21: pValues[nProp] >>= aItem.m_aPrivName; break;// "PrivateAddress/Name",
328 case 22: pValues[nProp] >>= aItem.m_aPrivShortCut; break;// "PrivateAddress/ShortCut",
329 case 23: pValues[nProp] >>= aItem.m_aPrivFirstName2; break;// "PrivateAddress/SecondFirstName",
330 case 24: pValues[nProp] >>= aItem.m_aPrivName2; break;// "PrivateAddress/SecondName",
331 case 25: pValues[nProp] >>= aItem.m_aPrivShortCut2; break;// "PrivateAddress/SecondShortCut",
332 case 26: pValues[nProp] >>= aItem.m_aPrivStreet; break;// "PrivateAddress/Street",
333 case 27: pValues[nProp] >>= aItem.m_aPrivZip; break;// "PrivateAddress/Zip",
334 case 28: pValues[nProp] >>= aItem.m_aPrivCity; break;// "PrivateAddress/City",
335 case 29: pValues[nProp] >>= aItem.m_aPrivCountry; break;// "PrivateAddress/Country",
336 case 30: pValues[nProp] >>= aItem.m_aPrivState; break;// "PrivateAddress/State",
337 case 31: pValues[nProp] >>= aItem.m_aPrivTitle; break;// "PrivateAddress/Title",
338 case 32: pValues[nProp] >>= aItem.m_aPrivProfession; break;// "PrivateAddress/Profession",
339 case 33: pValues[nProp] >>= aItem.m_aPrivPhone; break;// "PrivateAddress/Phone",
340 case 34: pValues[nProp] >>= aItem.m_aPrivMobile; break;// "PrivateAddress/Mobile",
341 case 35: pValues[nProp] >>= aItem.m_aPrivFax; break;// "PrivateAddress/Fax",
342 case 36: pValues[nProp] >>= aItem.m_aPrivWWW; break;// "PrivateAddress/WebAddress",
343 case 37: pValues[nProp] >>= aItem.m_aPrivMail; break;// "PrivateAddress/Email",
344 case 38: pValues[nProp] >>= aItem.m_aCompCompany; break;// "BusinessAddress/Company",
345 case 39: pValues[nProp] >>= aItem.m_aCompCompanyExt; break;// "BusinessAddress/CompanyExt",
346 case 40: pValues[nProp] >>= aItem.m_aCompSlogan; break;// "BusinessAddress/Slogan",
347 case 41: pValues[nProp] >>= aItem.m_aCompStreet; break;// "BusinessAddress/Street",
348 case 42: pValues[nProp] >>= aItem.m_aCompZip; break;// "BusinessAddress/Zip",
349 case 43: pValues[nProp] >>= aItem.m_aCompCity; break;// "BusinessAddress/City",
350 case 44: pValues[nProp] >>= aItem.m_aCompCountry; break;// "BusinessAddress/Country",
351 case 45: pValues[nProp] >>= aItem.m_aCompState; break;// "BusinessAddress/State",
352 case 46: pValues[nProp] >>= aItem.m_aCompPosition; break;// "BusinessAddress/Position",
353 case 47: pValues[nProp] >>= aItem.m_aCompPhone; break;// "BusinessAddress/Phone",
354 case 48: pValues[nProp] >>= aItem.m_aCompMobile; break;// "BusinessAddress/Mobile",
355 case 49: pValues[nProp] >>= aItem.m_aCompFax; break;// "BusinessAddress/Fax",
356 case 50: pValues[nProp] >>= aItem.m_aCompWWW; break;// "BusinessAddress/WebAddress",
357 case 51: pValues[nProp] >>= aItem.m_aCompMail; break;// "BusinessAddress/Email",
358 case 52: pValues[nProp] >>= aItem.m_sGlossaryGroup; break;// "AutoText/Group"
359 case 53: pValues[nProp] >>= aItem.m_sGlossaryBlockName; break;// "AutoText/Block"
365 if(bIsLabel || !bNoConfigValues)
366 return;
368 SvtUserOptions& rUserOpt = SW_MOD()->GetUserOptions();
369 aItem.m_aPrivFirstName = rUserOpt.GetFirstName();
370 aItem.m_aPrivName = rUserOpt.GetLastName();
371 aItem.m_aPrivShortCut = rUserOpt.GetID();
372 aItem.m_aCompCompany = rUserOpt.GetCompany();
373 aItem.m_aCompStreet = aItem.m_aPrivStreet = rUserOpt.GetStreet();
375 aItem.m_aCompCountry = aItem.m_aPrivCountry = rUserOpt.GetCountry();
376 aItem.m_aCompZip = aItem.m_aPrivZip= rUserOpt.GetZip();
377 aItem.m_aCompCity = aItem.m_aPrivCity = rUserOpt.GetCity();
378 aItem.m_aPrivTitle = rUserOpt.GetTitle();
379 aItem.m_aCompPosition = rUserOpt.GetPosition();
380 aItem.m_aPrivPhone = rUserOpt.GetTelephoneHome();
381 aItem.m_aCompPhone = rUserOpt.GetTelephoneWork();
382 aItem.m_aCompFax = aItem.m_aPrivFax = rUserOpt.GetFax();
383 aItem.m_aCompMail = aItem.m_aPrivMail = rUserOpt.GetEmail();
384 aItem.m_aCompState = aItem.m_aPrivState = rUserOpt.GetState();
385 aItem.m_bSynchron = true;
386 SetModified();
390 void SwLabCfgItem::Notify( const css::uno::Sequence< OUString >& ) {}
392 void SwLabCfgItem::ImplCommit()
394 Sequence<OUString> aNames = GetPropertyNames();
395 Sequence<Any> aValues(aNames.getLength());
396 Any* pValues = aValues.getArray();
398 for(int nProp = 0, nProperty = 0; nProp < aNames.getLength(); nProp++, nProperty++)
400 //to have a contiuous switch an offset is added
401 if(nProp == 17 && !bIsLabel)
402 nProperty += 3;
403 switch(nProperty)
405 case 0: pValues[nProp] <<= aItem.m_bCont; break;// "Medium/Continuous",
406 case 1: pValues[nProp] <<= aItem.m_aMake; break;// "Medium/Brand",
407 case 2: pValues[nProp] <<= aItem.m_aType; break;// "Medium/Type",
408 case 3: pValues[nProp] <<= aItem.m_nCols; break;// "Format/Column",
409 case 4: pValues[nProp] <<= aItem.m_nRows; break;// "Format/Row",
410 case 5: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(aItem.m_lHDist));break;// "Format/HorizontalDistance",
411 case 6: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(aItem.m_lVDist));break;// "Format/VerticalDistance",
412 case 7: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(aItem.m_lWidth)); break;// "Format/Width",
413 case 8: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(aItem.m_lHeight)); break;// "Format/Height",
414 case 9: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(aItem.m_lLeft)); break;// "Format/LeftMargin",
415 case 10: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(aItem.m_lUpper)); break;// "Format/TopMargin",
416 case 11: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(aItem.m_lPWidth)); break;// "Format/Page Width",
417 case 12: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(aItem.m_lPHeight)); break;// "Format/PageHeight",
418 case 13: pValues[nProp] <<= aItem.m_bSynchron; break;// "Option/Synchronize",
419 case 14: pValues[nProp] <<= aItem.m_bPage; break;// "Option/Page",
420 case 15: pValues[nProp] <<= aItem.m_nCol; break;// "Option/Column",
421 case 16: pValues[nProp] <<= aItem.m_nRow; break;// "Option/Row"
422 case 17: pValues[nProp] <<= aItem.m_bAddr; break;// "Inscription/UseAddress",
423 case 18: pValues[nProp] <<= aItem.m_aWriting; break;// "Inscription/Address",
424 case 19: pValues[nProp] <<= aItem.m_sDBName; break;// "Inscription/Database"
425 case 20: pValues[nProp] <<= aItem.m_aPrivFirstName; break;// "PrivateAddress/FirstName",
426 case 21: pValues[nProp] <<= aItem.m_aPrivName; break;// "PrivateAddress/Name",
427 case 22: pValues[nProp] <<= aItem.m_aPrivShortCut; break;// "PrivateAddress/ShortCut",
428 case 23: pValues[nProp] <<= aItem.m_aPrivFirstName2; break;// "PrivateAddress/SecondFirstName",
429 case 24: pValues[nProp] <<= aItem.m_aPrivName2; break;// "PrivateAddress/SecondName",
430 case 25: pValues[nProp] <<= aItem.m_aPrivShortCut2; break;// "PrivateAddress/SecondShortCut",
431 case 26: pValues[nProp] <<= aItem.m_aPrivStreet; break;// "PrivateAddress/Street",
432 case 27: pValues[nProp] <<= aItem.m_aPrivZip; break;// "PrivateAddress/Zip",
433 case 28: pValues[nProp] <<= aItem.m_aPrivCity; break;// "PrivateAddress/City",
434 case 29: pValues[nProp] <<= aItem.m_aPrivCountry; break;// "PrivateAddress/Country",
435 case 30: pValues[nProp] <<= aItem.m_aPrivState; break;// "PrivateAddress/State",
436 case 31: pValues[nProp] <<= aItem.m_aPrivTitle; break;// "PrivateAddress/Title",
437 case 32: pValues[nProp] <<= aItem.m_aPrivProfession; break;// "PrivateAddress/Profession",
438 case 33: pValues[nProp] <<= aItem.m_aPrivPhone; break;// "PrivateAddress/Phone",
439 case 34: pValues[nProp] <<= aItem.m_aPrivMobile; break;// "PrivateAddress/Mobile",
440 case 35: pValues[nProp] <<= aItem.m_aPrivFax; break;// "PrivateAddress/Fax",
441 case 36: pValues[nProp] <<= aItem.m_aPrivWWW; break;// "PrivateAddress/WebAddress",
442 case 37: pValues[nProp] <<= aItem.m_aPrivMail; break;// "PrivateAddress/Email",
443 case 38: pValues[nProp] <<= aItem.m_aCompCompany; break;// "BusinessAddress/Company",
444 case 39: pValues[nProp] <<= aItem.m_aCompCompanyExt; break;// "BusinessAddress/CompanyExt",
445 case 40: pValues[nProp] <<= aItem.m_aCompSlogan; break;// "BusinessAddress/Slogan",
446 case 41: pValues[nProp] <<= aItem.m_aCompStreet; break;// "BusinessAddress/Street",
447 case 42: pValues[nProp] <<= aItem.m_aCompZip; break;// "BusinessAddress/Zip",
448 case 43: pValues[nProp] <<= aItem.m_aCompCity; break;// "BusinessAddress/City",
449 case 44: pValues[nProp] <<= aItem.m_aCompCountry; break;// "BusinessAddress/Country",
450 case 45: pValues[nProp] <<= aItem.m_aCompState; break;// "BusinessAddress/State",
451 case 46: pValues[nProp] <<= aItem.m_aCompPosition; break;// "BusinessAddress/Position",
452 case 47: pValues[nProp] <<= aItem.m_aCompPhone; break;// "BusinessAddress/Phone",
453 case 48: pValues[nProp] <<= aItem.m_aCompMobile; break;// "BusinessAddress/Mobile",
454 case 49: pValues[nProp] <<= aItem.m_aCompFax; break;// "BusinessAddress/Fax",
455 case 50: pValues[nProp] <<= aItem.m_aCompWWW; break;// "BusinessAddress/WebAddress",
456 case 51: pValues[nProp] <<= aItem.m_aCompMail; break;// "BusinessAddress/Email",
457 case 52: pValues[nProp] <<= aItem.m_sGlossaryGroup; break;// "AutoText/Group"
458 case 53: pValues[nProp] <<= aItem.m_sGlossaryBlockName; break;// "AutoText/Block"
461 PutProperties(aNames, aValues);
464 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */