Version 7.6.3.2-android, tag libreoffice-7.6.3.2-android
[LibreOffice.git] / sw / source / uibase / envelp / labimg.cxx
blobb87f9bf5fb299fdfd77d20f38c22dff5f8ad3091
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 assert(SfxPoolItem::operator==(rItem));
120 const SwLabItem& rLab = static_cast<const SwLabItem&>( rItem);
122 return m_bAddr == rLab.m_bAddr &&
123 m_bCont == rLab.m_bCont &&
124 m_bPage == rLab.m_bPage &&
125 m_bSynchron == rLab.m_bSynchron &&
126 m_nCol == rLab.m_nCol &&
127 m_nRow == rLab.m_nRow &&
128 m_lHDist == rLab.m_lHDist &&
129 m_lVDist == rLab.m_lVDist &&
130 m_lWidth == rLab.m_lWidth &&
131 m_lHeight == rLab.m_lHeight &&
132 m_lLeft == rLab.m_lLeft &&
133 m_lUpper == rLab.m_lUpper &&
134 m_nCols == rLab.m_nCols &&
135 m_nRows == rLab.m_nRows &&
136 m_lPWidth == rLab.m_lPWidth &&
137 m_lPHeight == rLab.m_lPHeight&&
138 m_aWriting == rLab.m_aWriting&&
139 m_aMake == rLab.m_aMake &&
140 m_aType == rLab.m_aType &&
141 m_aLstMake == rLab.m_aLstMake&&
142 m_aLstType == rLab.m_aLstType&&
143 m_sDBName == rLab.m_sDBName &&
144 m_aPrivFirstName == rLab.m_aPrivFirstName&&
145 m_aPrivName == rLab.m_aPrivName&&
146 m_aPrivShortCut == rLab.m_aPrivShortCut&&
147 m_aPrivFirstName2 == rLab.m_aPrivFirstName2&&
148 m_aPrivName2 == rLab.m_aPrivName2&&
149 m_aPrivShortCut2 == rLab.m_aPrivShortCut2&&
150 m_aPrivStreet == rLab.m_aPrivStreet&&
151 m_aPrivZip == rLab.m_aPrivZip&&
152 m_aPrivCity == rLab.m_aPrivCity&&
153 m_aPrivCountry == rLab.m_aPrivCountry&&
154 m_aPrivState == rLab.m_aPrivState&&
155 m_aPrivTitle == rLab.m_aPrivTitle&&
156 m_aPrivProfession == rLab.m_aPrivProfession&&
157 m_aPrivPhone == rLab.m_aPrivPhone&&
158 m_aPrivMobile == rLab.m_aPrivMobile&&
159 m_aPrivFax == rLab.m_aPrivFax&&
160 m_aPrivWWW == rLab.m_aPrivWWW&&
161 m_aPrivMail == rLab.m_aPrivMail&&
162 m_aCompCompany == rLab.m_aCompCompany&&
163 m_aCompCompanyExt == rLab.m_aCompCompanyExt&&
164 m_aCompSlogan == rLab.m_aCompSlogan&&
165 m_aCompStreet == rLab.m_aCompStreet&&
166 m_aCompZip == rLab.m_aCompZip&&
167 m_aCompCity == rLab.m_aCompCity&&
168 m_aCompCountry == rLab.m_aCompCountry&&
169 m_aCompState == rLab.m_aCompState&&
170 m_aCompPosition == rLab.m_aCompPosition&&
171 m_aCompPhone == rLab.m_aCompPhone&&
172 m_aCompMobile == rLab.m_aCompMobile&&
173 m_aCompFax == rLab.m_aCompFax&&
174 m_aCompWWW == rLab.m_aCompWWW&&
175 m_aCompMail == rLab.m_aCompMail &&
176 m_sGlossaryGroup == rLab.m_sGlossaryGroup &&
177 m_sGlossaryBlockName == rLab.m_sGlossaryBlockName;
180 SwLabItem* SwLabItem::Clone(SfxItemPool*) const
182 return new SwLabItem(*this);
185 Sequence<OUString> SwLabCfgItem::GetPropertyNames() const
187 static const char* aLabelPropNames[] =
189 "Medium/Continuous", // 0
190 "Medium/Brand", // 1
191 "Medium/Type", // 2
192 "Format/Column", // 3
193 "Format/Row", // 4
194 "Format/HorizontalDistance",// 5
195 "Format/VerticalDistance", // 6
196 "Format/Width", // 7
197 "Format/Height", // 8
198 "Format/LeftMargin", // 9
199 "Format/TopMargin", //10
200 "Format/PageWidth", //11
201 "Format/PageHeight", //12
202 "Option/Synchronize", //13
203 "Option/Page", //14
204 "Option/Column", //15
205 "Option/Row", //16
206 "Inscription/UseAddress", //17
207 "Inscription/Address", //18
208 "Inscription/Database" //19
210 static const char* aBusinessPropNames[] =
212 "PrivateAddress/FirstName", // 0
213 "PrivateAddress/Name", // 1
214 "PrivateAddress/ShortCut", // 2
215 "PrivateAddress/SecondFirstName", // 3
216 "PrivateAddress/SecondName", // 4
217 "PrivateAddress/SecondShortCut", // 5
218 "PrivateAddress/Street", // 6
219 "PrivateAddress/Zip", // 7
220 "PrivateAddress/City", // 8
221 "PrivateAddress/Country", // 9
222 "PrivateAddress/State", // 10
223 "PrivateAddress/Title", // 11
224 "PrivateAddress/Profession", // 12
225 "PrivateAddress/Phone", // 13
226 "PrivateAddress/Mobile", // 14
227 "PrivateAddress/Fax", // 15
228 "PrivateAddress/WebAddress", // 16
229 "PrivateAddress/Email", // 17
230 "BusinessAddress/Company", // 18
231 "BusinessAddress/CompanyExt", // 19
232 "BusinessAddress/Slogan", // 20
233 "BusinessAddress/Street", // 21
234 "BusinessAddress/Zip", // 22
235 "BusinessAddress/City", // 23
236 "BusinessAddress/Country", // 24
237 "BusinessAddress/State", // 25
238 "BusinessAddress/Position", // 26
239 "BusinessAddress/Phone", // 27
240 "BusinessAddress/Mobile", // 28
241 "BusinessAddress/Fax", // 29
242 "BusinessAddress/WebAddress", // 30
243 "BusinessAddress/Email", // 31
244 "AutoText/Group", // 32
245 "AutoText/Block" // 33
247 const int nBusinessCount = m_bIsLabel ? 0 : 34;
248 const int nLabelCount = m_bIsLabel ? 20 : 17;
249 Sequence<OUString> aNames(nBusinessCount + nLabelCount);
250 OUString* pNames = aNames.getArray();
251 int nIndex = 0;
252 for(int nLabel = 0; nLabel < nLabelCount; nLabel++)
253 pNames[nIndex++] = OUString::createFromAscii(aLabelPropNames[nLabel]);
254 for(int nBusiness = 0; nBusiness < nBusinessCount; nBusiness++)
255 pNames[nIndex++] = OUString::createFromAscii(aBusinessPropNames[nBusiness]);
256 return aNames;
259 SwLabCfgItem::SwLabCfgItem(bool bLabel) :
260 ConfigItem(bLabel ? OUString("Office.Writer/Label") : OUString("Office.Writer/BusinessCard")),
261 m_bIsLabel(bLabel)
263 Sequence<OUString> aNames = GetPropertyNames();
264 Sequence<Any> aValues = GetProperties(aNames);
265 EnableNotification(aNames);
266 const Any* pValues = aValues.getConstArray();
267 OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
268 bool bNoConfigValues = true;
269 if(aValues.getLength() == aNames.getLength())
271 for(int nProp = 0, nProperty = 0; nProp < aNames.getLength(); nProp++, nProperty++)
274 if(pValues[nProp].hasValue())
276 //to have a continuous switch an offset is added
277 if(nProp == 17 && !m_bIsLabel)
278 nProperty += 3;
279 if(nProperty >= 20)
280 bNoConfigValues = false;
281 switch(nProperty)
283 case 0: m_aItem.m_bCont = *o3tl::doAccess<bool>(pValues[nProp]); break;// "Medium/Continuous",
284 case 1: pValues[nProp] >>= m_aItem.m_aMake; break;// "Medium/Brand",
285 case 2: pValues[nProp] >>= m_aItem.m_aType; break;// "Medium/Type",
286 case 3: pValues[nProp] >>= m_aItem.m_nCols; break;// "Format/Column",
287 case 4: pValues[nProp] >>= m_aItem.m_nRows; break;// "Format/Row",
288 case 5:
289 pValues[nProp] >>= m_aItem.m_lHDist;
290 m_aItem.m_lHDist = o3tl::toTwips(m_aItem.m_lHDist, o3tl::Length::mm100);
291 break;// "Format/HorizontalDistance",
292 case 6:
293 pValues[nProp] >>= m_aItem.m_lVDist;
294 m_aItem.m_lVDist = o3tl::toTwips(m_aItem.m_lVDist, o3tl::Length::mm100);
295 break;// "Format/VerticalDistance",
296 case 7:
297 pValues[nProp] >>= m_aItem.m_lWidth;
298 m_aItem.m_lWidth = o3tl::toTwips(m_aItem.m_lWidth, o3tl::Length::mm100);
299 break;// "Format/Width",
300 case 8:
301 pValues[nProp] >>= m_aItem.m_lHeight;
302 m_aItem.m_lHeight = o3tl::toTwips(m_aItem.m_lHeight, o3tl::Length::mm100);
303 break;// "Format/Height",
304 case 9:
305 pValues[nProp] >>= m_aItem.m_lLeft;
306 m_aItem.m_lLeft = o3tl::toTwips(m_aItem.m_lLeft, o3tl::Length::mm100);
307 break;// "Format/LeftMargin",
308 case 10:
309 pValues[nProp] >>= m_aItem.m_lUpper;
310 m_aItem.m_lUpper = o3tl::toTwips(m_aItem.m_lUpper, o3tl::Length::mm100);
311 break;// "Format/TopMargin",
312 case 11:
313 pValues[nProp] >>= m_aItem.m_lPWidth;
314 m_aItem.m_lPWidth = o3tl::toTwips(m_aItem.m_lPWidth, o3tl::Length::mm100);
315 break;// "Format/PageWidth",
316 case 12:
317 pValues[nProp] >>= m_aItem.m_lPHeight;
318 m_aItem.m_lPHeight = o3tl::toTwips(m_aItem.m_lPHeight, o3tl::Length::mm100);
319 break;// "Format/PageHeight",
320 case 13: m_aItem.m_bSynchron = *o3tl::doAccess<bool>(pValues[nProp]); break;// "Option/Synchronize",
321 case 14: m_aItem.m_bPage = *o3tl::doAccess<bool>(pValues[nProp]); break;// "Option/Page",
322 case 15: pValues[nProp] >>= m_aItem.m_nCol; break;// "Option/Column",
323 case 16: pValues[nProp] >>= m_aItem.m_nRow; break;// "Option/Row"
324 case 17: m_aItem.m_bAddr = *o3tl::doAccess<bool>(pValues[nProp]); break;// "Inscription/UseAddress",
325 case 18: pValues[nProp] >>= m_aItem.m_aWriting; break;// "Inscription/Address",
326 case 19: pValues[nProp] >>= m_aItem.m_sDBName; break;// "Inscription/Database"
327 case 20: pValues[nProp] >>= m_aItem.m_aPrivFirstName; break;// "PrivateAddress/FirstName",
328 case 21: pValues[nProp] >>= m_aItem.m_aPrivName; break;// "PrivateAddress/Name",
329 case 22: pValues[nProp] >>= m_aItem.m_aPrivShortCut; break;// "PrivateAddress/ShortCut",
330 case 23: pValues[nProp] >>= m_aItem.m_aPrivFirstName2; break;// "PrivateAddress/SecondFirstName",
331 case 24: pValues[nProp] >>= m_aItem.m_aPrivName2; break;// "PrivateAddress/SecondName",
332 case 25: pValues[nProp] >>= m_aItem.m_aPrivShortCut2; break;// "PrivateAddress/SecondShortCut",
333 case 26: pValues[nProp] >>= m_aItem.m_aPrivStreet; break;// "PrivateAddress/Street",
334 case 27: pValues[nProp] >>= m_aItem.m_aPrivZip; break;// "PrivateAddress/Zip",
335 case 28: pValues[nProp] >>= m_aItem.m_aPrivCity; break;// "PrivateAddress/City",
336 case 29: pValues[nProp] >>= m_aItem.m_aPrivCountry; break;// "PrivateAddress/Country",
337 case 30: pValues[nProp] >>= m_aItem.m_aPrivState; break;// "PrivateAddress/State",
338 case 31: pValues[nProp] >>= m_aItem.m_aPrivTitle; break;// "PrivateAddress/Title",
339 case 32: pValues[nProp] >>= m_aItem.m_aPrivProfession; break;// "PrivateAddress/Profession",
340 case 33: pValues[nProp] >>= m_aItem.m_aPrivPhone; break;// "PrivateAddress/Phone",
341 case 34: pValues[nProp] >>= m_aItem.m_aPrivMobile; break;// "PrivateAddress/Mobile",
342 case 35: pValues[nProp] >>= m_aItem.m_aPrivFax; break;// "PrivateAddress/Fax",
343 case 36: pValues[nProp] >>= m_aItem.m_aPrivWWW; break;// "PrivateAddress/WebAddress",
344 case 37: pValues[nProp] >>= m_aItem.m_aPrivMail; break;// "PrivateAddress/Email",
345 case 38: pValues[nProp] >>= m_aItem.m_aCompCompany; break;// "BusinessAddress/Company",
346 case 39: pValues[nProp] >>= m_aItem.m_aCompCompanyExt; break;// "BusinessAddress/CompanyExt",
347 case 40: pValues[nProp] >>= m_aItem.m_aCompSlogan; break;// "BusinessAddress/Slogan",
348 case 41: pValues[nProp] >>= m_aItem.m_aCompStreet; break;// "BusinessAddress/Street",
349 case 42: pValues[nProp] >>= m_aItem.m_aCompZip; break;// "BusinessAddress/Zip",
350 case 43: pValues[nProp] >>= m_aItem.m_aCompCity; break;// "BusinessAddress/City",
351 case 44: pValues[nProp] >>= m_aItem.m_aCompCountry; break;// "BusinessAddress/Country",
352 case 45: pValues[nProp] >>= m_aItem.m_aCompState; break;// "BusinessAddress/State",
353 case 46: pValues[nProp] >>= m_aItem.m_aCompPosition; break;// "BusinessAddress/Position",
354 case 47: pValues[nProp] >>= m_aItem.m_aCompPhone; break;// "BusinessAddress/Phone",
355 case 48: pValues[nProp] >>= m_aItem.m_aCompMobile; break;// "BusinessAddress/Mobile",
356 case 49: pValues[nProp] >>= m_aItem.m_aCompFax; break;// "BusinessAddress/Fax",
357 case 50: pValues[nProp] >>= m_aItem.m_aCompWWW; break;// "BusinessAddress/WebAddress",
358 case 51: pValues[nProp] >>= m_aItem.m_aCompMail; break;// "BusinessAddress/Email",
359 case 52: pValues[nProp] >>= m_aItem.m_sGlossaryGroup; break;// "AutoText/Group"
360 case 53: pValues[nProp] >>= m_aItem.m_sGlossaryBlockName; break;// "AutoText/Block"
366 if(m_bIsLabel || !bNoConfigValues)
367 return;
369 SvtUserOptions& rUserOpt = SW_MOD()->GetUserOptions();
370 m_aItem.m_aPrivFirstName = rUserOpt.GetFirstName();
371 m_aItem.m_aPrivName = rUserOpt.GetLastName();
372 m_aItem.m_aPrivShortCut = rUserOpt.GetID();
373 m_aItem.m_aCompCompany = rUserOpt.GetCompany();
374 m_aItem.m_aCompStreet = m_aItem.m_aPrivStreet = rUserOpt.GetStreet();
376 m_aItem.m_aCompCountry = m_aItem.m_aPrivCountry = rUserOpt.GetCountry();
377 m_aItem.m_aCompZip = m_aItem.m_aPrivZip= rUserOpt.GetZip();
378 m_aItem.m_aCompCity = m_aItem.m_aPrivCity = rUserOpt.GetCity();
379 m_aItem.m_aPrivTitle = rUserOpt.GetTitle();
380 m_aItem.m_aCompPosition = rUserOpt.GetPosition();
381 m_aItem.m_aPrivPhone = rUserOpt.GetTelephoneHome();
382 m_aItem.m_aCompPhone = rUserOpt.GetTelephoneWork();
383 m_aItem.m_aCompFax = m_aItem.m_aPrivFax = rUserOpt.GetFax();
384 m_aItem.m_aCompMail = m_aItem.m_aPrivMail = rUserOpt.GetEmail();
385 m_aItem.m_aCompState = m_aItem.m_aPrivState = rUserOpt.GetState();
386 m_aItem.m_bSynchron = true;
387 SetModified();
391 void SwLabCfgItem::Notify( const css::uno::Sequence< OUString >& ) {}
393 void SwLabCfgItem::ImplCommit()
395 Sequence<OUString> aNames = GetPropertyNames();
396 Sequence<Any> aValues(aNames.getLength());
397 Any* pValues = aValues.getArray();
399 for(int nProp = 0, nProperty = 0; nProp < aNames.getLength(); nProp++, nProperty++)
401 //to have a continuous switch an offset is added
402 if(nProp == 17 && !m_bIsLabel)
403 nProperty += 3;
404 switch(nProperty)
406 case 0: pValues[nProp] <<= m_aItem.m_bCont; break;// "Medium/Continuous",
407 case 1: pValues[nProp] <<= m_aItem.m_aMake; break;// "Medium/Brand",
408 case 2: pValues[nProp] <<= m_aItem.m_aType; break;// "Medium/Type",
409 case 3: pValues[nProp] <<= m_aItem.m_nCols; break;// "Format/Column",
410 case 4: pValues[nProp] <<= m_aItem.m_nRows; break;// "Format/Row",
411 case 5: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(m_aItem.m_lHDist));break;// "Format/HorizontalDistance",
412 case 6: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(m_aItem.m_lVDist));break;// "Format/VerticalDistance",
413 case 7: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(m_aItem.m_lWidth)); break;// "Format/Width",
414 case 8: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(m_aItem.m_lHeight)); break;// "Format/Height",
415 case 9: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(m_aItem.m_lLeft)); break;// "Format/LeftMargin",
416 case 10: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(m_aItem.m_lUpper)); break;// "Format/TopMargin",
417 case 11: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(m_aItem.m_lPWidth)); break;// "Format/Page Width",
418 case 12: pValues[nProp] <<= static_cast<sal_Int32>(convertTwipToMm100(m_aItem.m_lPHeight)); break;// "Format/PageHeight",
419 case 13: pValues[nProp] <<= m_aItem.m_bSynchron; break;// "Option/Synchronize",
420 case 14: pValues[nProp] <<= m_aItem.m_bPage; break;// "Option/Page",
421 case 15: pValues[nProp] <<= m_aItem.m_nCol; break;// "Option/Column",
422 case 16: pValues[nProp] <<= m_aItem.m_nRow; break;// "Option/Row"
423 case 17: pValues[nProp] <<= m_aItem.m_bAddr; break;// "Inscription/UseAddress",
424 case 18: pValues[nProp] <<= m_aItem.m_aWriting; break;// "Inscription/Address",
425 case 19: pValues[nProp] <<= m_aItem.m_sDBName; break;// "Inscription/Database"
426 case 20: pValues[nProp] <<= m_aItem.m_aPrivFirstName; break;// "PrivateAddress/FirstName",
427 case 21: pValues[nProp] <<= m_aItem.m_aPrivName; break;// "PrivateAddress/Name",
428 case 22: pValues[nProp] <<= m_aItem.m_aPrivShortCut; break;// "PrivateAddress/ShortCut",
429 case 23: pValues[nProp] <<= m_aItem.m_aPrivFirstName2; break;// "PrivateAddress/SecondFirstName",
430 case 24: pValues[nProp] <<= m_aItem.m_aPrivName2; break;// "PrivateAddress/SecondName",
431 case 25: pValues[nProp] <<= m_aItem.m_aPrivShortCut2; break;// "PrivateAddress/SecondShortCut",
432 case 26: pValues[nProp] <<= m_aItem.m_aPrivStreet; break;// "PrivateAddress/Street",
433 case 27: pValues[nProp] <<= m_aItem.m_aPrivZip; break;// "PrivateAddress/Zip",
434 case 28: pValues[nProp] <<= m_aItem.m_aPrivCity; break;// "PrivateAddress/City",
435 case 29: pValues[nProp] <<= m_aItem.m_aPrivCountry; break;// "PrivateAddress/Country",
436 case 30: pValues[nProp] <<= m_aItem.m_aPrivState; break;// "PrivateAddress/State",
437 case 31: pValues[nProp] <<= m_aItem.m_aPrivTitle; break;// "PrivateAddress/Title",
438 case 32: pValues[nProp] <<= m_aItem.m_aPrivProfession; break;// "PrivateAddress/Profession",
439 case 33: pValues[nProp] <<= m_aItem.m_aPrivPhone; break;// "PrivateAddress/Phone",
440 case 34: pValues[nProp] <<= m_aItem.m_aPrivMobile; break;// "PrivateAddress/Mobile",
441 case 35: pValues[nProp] <<= m_aItem.m_aPrivFax; break;// "PrivateAddress/Fax",
442 case 36: pValues[nProp] <<= m_aItem.m_aPrivWWW; break;// "PrivateAddress/WebAddress",
443 case 37: pValues[nProp] <<= m_aItem.m_aPrivMail; break;// "PrivateAddress/Email",
444 case 38: pValues[nProp] <<= m_aItem.m_aCompCompany; break;// "BusinessAddress/Company",
445 case 39: pValues[nProp] <<= m_aItem.m_aCompCompanyExt; break;// "BusinessAddress/CompanyExt",
446 case 40: pValues[nProp] <<= m_aItem.m_aCompSlogan; break;// "BusinessAddress/Slogan",
447 case 41: pValues[nProp] <<= m_aItem.m_aCompStreet; break;// "BusinessAddress/Street",
448 case 42: pValues[nProp] <<= m_aItem.m_aCompZip; break;// "BusinessAddress/Zip",
449 case 43: pValues[nProp] <<= m_aItem.m_aCompCity; break;// "BusinessAddress/City",
450 case 44: pValues[nProp] <<= m_aItem.m_aCompCountry; break;// "BusinessAddress/Country",
451 case 45: pValues[nProp] <<= m_aItem.m_aCompState; break;// "BusinessAddress/State",
452 case 46: pValues[nProp] <<= m_aItem.m_aCompPosition; break;// "BusinessAddress/Position",
453 case 47: pValues[nProp] <<= m_aItem.m_aCompPhone; break;// "BusinessAddress/Phone",
454 case 48: pValues[nProp] <<= m_aItem.m_aCompMobile; break;// "BusinessAddress/Mobile",
455 case 49: pValues[nProp] <<= m_aItem.m_aCompFax; break;// "BusinessAddress/Fax",
456 case 50: pValues[nProp] <<= m_aItem.m_aCompWWW; break;// "BusinessAddress/WebAddress",
457 case 51: pValues[nProp] <<= m_aItem.m_aCompMail; break;// "BusinessAddress/Email",
458 case 52: pValues[nProp] <<= m_aItem.m_sGlossaryGroup; break;// "AutoText/Group"
459 case 53: pValues[nProp] <<= m_aItem.m_sGlossaryBlockName; break;// "AutoText/Block"
462 PutProperties(aNames, aValues);
465 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */