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_svl.hxx"
26 #include <com/sun/star/uno/Any.hxx>
27 #include <tools/stream.hxx>
28 #include <svl/cintitem.hxx>
29
30 //============================================================================
31 //
32 // class CntByteItem
33 //
34 //============================================================================
35
36 DBG_NAME(CntByteItem)
37
38 //============================================================================
39 TYPEINIT1_AUTOFACTORY(CntByteItem, SfxPoolItem);
40
41 //============================================================================
CntByteItem(sal_uInt16 which,SvStream & rStream)42 CntByteItem::CntByteItem(sal_uInt16 which, SvStream & rStream):
43 SfxPoolItem(which)
44 {
45 DBG_CTOR(CntByteItem, 0);
46 rStream >> m_nValue;
47 }
48
49 //============================================================================
50 // virtual
operator ==(const SfxPoolItem & rItem) const51 int CntByteItem::operator ==(const SfxPoolItem & rItem) const
52 {
53 DBG_CHKTHIS(CntByteItem, 0);
54 DBG_ASSERT(rItem.ISA(CntByteItem),
55 "CntByteItem::operator ==(): Bad type");
56 return m_nValue == SAL_STATIC_CAST(const CntByteItem *, &rItem)->m_nValue;
57 }
58
59 //============================================================================
60 // virtual
Compare(const SfxPoolItem & rWith) const61 int CntByteItem::Compare(const SfxPoolItem & rWith) const
62 {
63 DBG_CHKTHIS(CntByteItem, 0);
64 DBG_ASSERT(rWith.ISA(CntByteItem), "CntByteItem::Compare(): Bad type");
65 return SAL_STATIC_CAST(const CntByteItem *, &rWith)->m_nValue < m_nValue ?
66 -1 :
67 SAL_STATIC_CAST(const CntByteItem *, &rWith)->m_nValue
68 == m_nValue ?
69 0 : 1;
70 }
71
72 //============================================================================
73 // virtual
GetPresentation(SfxItemPresentation,SfxMapUnit,SfxMapUnit,XubString & rText,const IntlWrapper *) const74 SfxItemPresentation CntByteItem::GetPresentation(SfxItemPresentation,
75 SfxMapUnit, SfxMapUnit,
76 XubString & rText,
77 const IntlWrapper *) const
78 {
79 DBG_CHKTHIS(CntByteItem, 0);
80 rText = XubString::CreateFromInt32(m_nValue);
81 return SFX_ITEM_PRESENTATION_NAMELESS;
82 }
83
84 //============================================================================
85 // virtual
QueryValue(com::sun::star::uno::Any & rVal,sal_uInt8) const86 sal_Bool CntByteItem::QueryValue(com::sun::star::uno::Any& rVal,sal_uInt8) const
87 {
88 sal_Int8 nValue = m_nValue;
89 rVal <<= nValue;
90 return sal_True;
91 }
92
93 //============================================================================
94 // virtual
PutValue(const com::sun::star::uno::Any & rVal,sal_uInt8)95 sal_Bool CntByteItem::PutValue(const com::sun::star::uno::Any& rVal,sal_uInt8)
96 {
97 sal_Int8 nValue = sal_Int8();
98 if (rVal >>= nValue)
99 {
100 m_nValue = nValue;
101 return sal_True;
102 }
103
104 DBG_ERROR( "CntByteItem::PutValue - Wrong type!" );
105 return sal_False;
106 }
107
108 //============================================================================
109 // virtual
Create(SvStream & rStream,sal_uInt16) const110 SfxPoolItem * CntByteItem::Create(SvStream & rStream, sal_uInt16) const
111 {
112 DBG_CHKTHIS(CntByteItem, 0);
113 short nTheValue = 0;
114 rStream >> nTheValue;
115 return new CntByteItem(Which(), sal_uInt8(nTheValue));
116 }
117
118 //============================================================================
119 // virtual
Store(SvStream & rStream,sal_uInt16) const120 SvStream & CntByteItem::Store(SvStream & rStream, sal_uInt16) const
121 {
122 DBG_CHKTHIS(CntByteItem, 0);
123 rStream << short(m_nValue);
124 return rStream;
125 }
126
127 //============================================================================
128 // virtual
Clone(SfxItemPool *) const129 SfxPoolItem * CntByteItem::Clone(SfxItemPool *) const
130 {
131 DBG_CHKTHIS(CntByteItem, 0);
132 return new CntByteItem(*this);
133 }
134
135 //============================================================================
136 // virtual
GetMin() const137 sal_uInt8 CntByteItem::GetMin() const
138 {
139 DBG_CHKTHIS(CntByteItem, 0);
140 return 0;
141 }
142
143 //============================================================================
144 // virtual
GetMax() const145 sal_uInt8 CntByteItem::GetMax() const
146 {
147 DBG_CHKTHIS(CntByteItem, 0);
148 return 255;
149 }
150
151 //============================================================================
152 // virtual
GetUnit() const153 SfxFieldUnit CntByteItem::GetUnit() const
154 {
155 DBG_CHKTHIS(CntByteItem, 0);
156 return SFX_FUNIT_NONE;
157 }
158
159 //============================================================================
160 //
161 // class CntUInt16Item
162 //
163 //============================================================================
164
165 DBG_NAME(CntUInt16Item);
166
167 //============================================================================
168 TYPEINIT1_AUTOFACTORY(CntUInt16Item, SfxPoolItem);
169
170 //============================================================================
CntUInt16Item(sal_uInt16 which,SvStream & rStream)171 CntUInt16Item::CntUInt16Item(sal_uInt16 which, SvStream & rStream) :
172 SfxPoolItem(which)
173 {
174 DBG_CTOR(CntUInt16Item, 0);
175 sal_uInt16 nTheValue = 0;
176 rStream >> nTheValue;
177 m_nValue = nTheValue;
178 }
179
180 //============================================================================
181 // virtual
operator ==(const SfxPoolItem & rItem) const182 int CntUInt16Item::operator ==(const SfxPoolItem & rItem) const
183 {
184 DBG_CHKTHIS(CntUInt16Item, 0);
185 DBG_ASSERT(rItem.ISA(CntUInt16Item),
186 "CntUInt16Item::operator ==(): Bad type");
187 return m_nValue == SAL_STATIC_CAST(const CntUInt16Item *, &rItem)->
188 m_nValue;
189 }
190
191 //============================================================================
192 // virtual
Compare(const SfxPoolItem & rWith) const193 int CntUInt16Item::Compare(const SfxPoolItem & rWith) const
194 {
195 DBG_CHKTHIS(CntUInt16Item, 0);
196 DBG_ASSERT(rWith.ISA(CntUInt16Item),
197 "CntUInt16Item::Compare(): Bad type");
198 return SAL_STATIC_CAST(const CntUInt16Item *, &rWith)->m_nValue
199 < m_nValue ?
200 -1 :
201 SAL_STATIC_CAST(const CntUInt16Item *, &rWith)->m_nValue
202 == m_nValue ?
203 0 : 1;
204 }
205
206 //============================================================================
207 // virtual
GetPresentation(SfxItemPresentation,SfxMapUnit,SfxMapUnit,XubString & rText,const IntlWrapper *) const208 SfxItemPresentation CntUInt16Item::GetPresentation(SfxItemPresentation,
209 SfxMapUnit, SfxMapUnit,
210 XubString & rText,
211 const IntlWrapper *)
212 const
213 {
214 DBG_CHKTHIS(CntUInt16Item, 0);
215 rText = XubString::CreateFromInt32(m_nValue);
216 return SFX_ITEM_PRESENTATION_NAMELESS;
217 }
218
219 //============================================================================
220 // virtual
QueryValue(com::sun::star::uno::Any & rVal,sal_uInt8) const221 sal_Bool CntUInt16Item::QueryValue(com::sun::star::uno::Any& rVal,sal_uInt8) const
222 {
223 sal_Int32 nValue = m_nValue;
224 rVal <<= nValue;
225 return sal_True;
226 }
227
228 //============================================================================
229 // virtual
PutValue(const com::sun::star::uno::Any & rVal,sal_uInt8)230 sal_Bool CntUInt16Item::PutValue(const com::sun::star::uno::Any& rVal,sal_uInt8)
231 {
232 sal_Int32 nValue = 0;
233 if (rVal >>= nValue)
234 {
235 DBG_ASSERT( nValue <= USHRT_MAX, "Overflow in UInt16 value!");
236 m_nValue = (sal_uInt16)nValue;
237 return sal_True;
238 }
239
240 DBG_ERROR( "CntUInt16Item::PutValue - Wrong type!" );
241 return sal_False;
242 }
243
244 //============================================================================
245 // virtual
Create(SvStream & rStream,sal_uInt16) const246 SfxPoolItem * CntUInt16Item::Create(SvStream & rStream, sal_uInt16) const
247 {
248 DBG_CHKTHIS(CntUInt16Item, 0);
249 return new CntUInt16Item(Which(), rStream);
250 }
251
252 //============================================================================
253 // virtual
Store(SvStream & rStream,sal_uInt16) const254 SvStream & CntUInt16Item::Store(SvStream &rStream, sal_uInt16) const
255 {
256 DBG_CHKTHIS(CntUInt16Item, 0);
257 rStream << sal_uInt16(m_nValue);
258 return rStream;
259 }
260
261 //============================================================================
262 // virtual
Clone(SfxItemPool *) const263 SfxPoolItem * CntUInt16Item::Clone(SfxItemPool *) const
264 {
265 DBG_CHKTHIS(CntUInt16Item, 0);
266 return new CntUInt16Item(*this);
267 }
268
269 //============================================================================
270 // virtual
GetMin() const271 sal_uInt16 CntUInt16Item::GetMin() const
272 {
273 DBG_CHKTHIS(CntUInt16Item, 0);
274 return 0;
275 }
276
277 //============================================================================
278 // virtual
GetMax() const279 sal_uInt16 CntUInt16Item::GetMax() const
280 {
281 DBG_CHKTHIS(CntUInt16Item, 0);
282 return 65535;
283 }
284
285 //============================================================================
286 // virtual
GetUnit() const287 SfxFieldUnit CntUInt16Item::GetUnit() const
288 {
289 DBG_CHKTHIS(CntUInt16Item, 0);
290 return SFX_FUNIT_NONE;
291 }
292
293 //============================================================================
294 //
295 // class CntInt32Item
296 //
297 //============================================================================
298
299 DBG_NAME(CntInt32Item);
300
301 //============================================================================
302 TYPEINIT1_AUTOFACTORY(CntInt32Item, SfxPoolItem);
303
304 //============================================================================
CntInt32Item(sal_uInt16 which,SvStream & rStream)305 CntInt32Item::CntInt32Item(sal_uInt16 which, SvStream & rStream) :
306 SfxPoolItem(which)
307 {
308 DBG_CTOR(CntInt32Item, 0);
309 long nTheValue = 0;
310 rStream >> nTheValue;
311 m_nValue = nTheValue;
312 }
313
314 //============================================================================
315 // virtual
operator ==(const SfxPoolItem & rItem) const316 int CntInt32Item::operator ==(const SfxPoolItem & rItem) const
317 {
318 DBG_CHKTHIS(CntInt32Item, 0);
319 DBG_ASSERT(rItem.ISA(CntInt32Item),
320 "CntInt32Item::operator ==(): Bad type");
321 return m_nValue == SAL_STATIC_CAST(const CntInt32Item *, &rItem)->
322 m_nValue;
323 }
324
325 //============================================================================
326 // virtual
Compare(const SfxPoolItem & rWith) const327 int CntInt32Item::Compare(const SfxPoolItem & rWith) const
328 {
329 DBG_CHKTHIS(CntInt32Item, 0);
330 DBG_ASSERT(rWith.ISA(CntInt32Item), "CntInt32Item::Compare(): Bad type");
331 return SAL_STATIC_CAST(const CntInt32Item *, &rWith)->m_nValue
332 < m_nValue ?
333 -1 :
334 SAL_STATIC_CAST(const CntInt32Item *, &rWith)->m_nValue
335 == m_nValue ?
336 0 : 1;
337 }
338
339 //============================================================================
340 // virtual
GetPresentation(SfxItemPresentation,SfxMapUnit,SfxMapUnit,XubString & rText,const IntlWrapper *) const341 SfxItemPresentation CntInt32Item::GetPresentation(SfxItemPresentation,
342 SfxMapUnit, SfxMapUnit,
343 XubString & rText,
344 const IntlWrapper *) const
345 {
346 DBG_CHKTHIS(CntInt32Item, 0);
347 rText = XubString::CreateFromInt32(m_nValue);
348 return SFX_ITEM_PRESENTATION_NAMELESS;
349 }
350
351 //============================================================================
352 // virtual
QueryValue(com::sun::star::uno::Any & rVal,sal_uInt8) const353 sal_Bool CntInt32Item::QueryValue(com::sun::star::uno::Any& rVal,sal_uInt8) const
354 {
355 sal_Int32 nValue = m_nValue;
356 rVal <<= nValue;
357 return sal_True;
358 }
359
360 //============================================================================
361 // virtual
PutValue(const com::sun::star::uno::Any & rVal,sal_uInt8)362 sal_Bool CntInt32Item::PutValue(const com::sun::star::uno::Any& rVal,sal_uInt8)
363 {
364 sal_Int32 nValue = 0;
365 if (rVal >>= nValue)
366 {
367 m_nValue = nValue;
368 return sal_True;
369 }
370
371 DBG_ERROR( "CntInt32Item::PutValue - Wrong type!" );
372 return sal_False;
373 }
374
375 //============================================================================
376 // virtual
Create(SvStream & rStream,sal_uInt16) const377 SfxPoolItem * CntInt32Item::Create(SvStream & rStream, sal_uInt16) const
378 {
379 DBG_CHKTHIS(CntInt32Item, 0);
380 return new CntInt32Item(Which(), rStream);
381 }
382
383 //============================================================================
384 // virtual
Store(SvStream & rStream,sal_uInt16) const385 SvStream & CntInt32Item::Store(SvStream &rStream, sal_uInt16) const
386 {
387 DBG_CHKTHIS(CntInt32Item, 0);
388 rStream << long(m_nValue);
389 return rStream;
390 }
391
392 //============================================================================
393 // virtual
Clone(SfxItemPool *) const394 SfxPoolItem * CntInt32Item::Clone(SfxItemPool *) const
395 {
396 DBG_CHKTHIS(CntInt32Item, 0);
397 return new CntInt32Item(*this);
398 }
399
400 //============================================================================
401 // virtual
GetMin() const402 sal_Int32 CntInt32Item::GetMin() const
403 {
404 DBG_CHKTHIS(CntInt32Item, 0);
405 return sal_Int32(0x80000000);
406 }
407
408 //============================================================================
409 // virtual
GetMax() const410 sal_Int32 CntInt32Item::GetMax() const
411 {
412 DBG_CHKTHIS(CntInt32Item, 0);
413 return 0x7FFFFFFF;
414 }
415
416 //============================================================================
417 // virtual
GetUnit() const418 SfxFieldUnit CntInt32Item::GetUnit() const
419 {
420 DBG_CHKTHIS(CntInt32Item, 0);
421 return SFX_FUNIT_NONE;
422 }
423
424 //============================================================================
425 //
426 // class CntUInt32Item
427 //
428 //============================================================================
429
430 DBG_NAME(CntUInt32Item);
431
432 //============================================================================
433 TYPEINIT1_AUTOFACTORY(CntUInt32Item, SfxPoolItem);
434
435 //============================================================================
CntUInt32Item(sal_uInt16 which,SvStream & rStream)436 CntUInt32Item::CntUInt32Item(sal_uInt16 which, SvStream & rStream) :
437 SfxPoolItem(which)
438 {
439 DBG_CTOR(CntUInt32Item, 0);
440 sal_uInt32 nTheValue = 0;
441 rStream >> nTheValue;
442 m_nValue = nTheValue;
443 }
444
445 //============================================================================
446 // virtual
operator ==(const SfxPoolItem & rItem) const447 int CntUInt32Item::operator ==(const SfxPoolItem & rItem) const
448 {
449 DBG_CHKTHIS(CntUInt32Item, 0);
450 DBG_ASSERT(rItem.ISA(CntUInt32Item),
451 "CntUInt32Item::operator ==(): Bad type");
452 return m_nValue == SAL_STATIC_CAST(const CntUInt32Item *, &rItem)->
453 m_nValue;
454 }
455
456 //============================================================================
457 // virtual
Compare(const SfxPoolItem & rWith) const458 int CntUInt32Item::Compare(const SfxPoolItem & rWith) const
459 {
460 DBG_CHKTHIS(CntUInt32Item, 0);
461 DBG_ASSERT(rWith.ISA(CntUInt32Item),
462 "CntUInt32Item::operator ==(): Bad type");
463 return SAL_STATIC_CAST(const CntUInt32Item *, &rWith)->m_nValue
464 < m_nValue ?
465 -1 :
466 SAL_STATIC_CAST(const CntUInt32Item *, &rWith)->m_nValue
467 == m_nValue ?
468 0 : 1;
469 }
470
471 //============================================================================
472 // virtual
GetPresentation(SfxItemPresentation,SfxMapUnit,SfxMapUnit,XubString & rText,const IntlWrapper *) const473 SfxItemPresentation CntUInt32Item::GetPresentation(SfxItemPresentation,
474 SfxMapUnit, SfxMapUnit,
475 XubString & rText,
476 const IntlWrapper *)
477 const
478 {
479 DBG_CHKTHIS(CntUInt32Item, 0);
480 rText = XubString::CreateFromInt64(m_nValue);
481 return SFX_ITEM_PRESENTATION_NAMELESS;
482 }
483
484 //============================================================================
485 // virtual
QueryValue(com::sun::star::uno::Any & rVal,sal_uInt8) const486 sal_Bool CntUInt32Item::QueryValue(com::sun::star::uno::Any& rVal,sal_uInt8) const
487 {
488 sal_Int32 nValue = m_nValue;
489 DBG_ASSERT( nValue>=0, "Overflow in UInt32 value!");
490 rVal <<= nValue;
491 return sal_True;
492 }
493
494 //============================================================================
495 // virtual
PutValue(const com::sun::star::uno::Any & rVal,sal_uInt8)496 sal_Bool CntUInt32Item::PutValue(const com::sun::star::uno::Any& rVal,sal_uInt8)
497 {
498 sal_Int32 nValue = 0;
499 if (rVal >>= nValue)
500 {
501 DBG_ASSERT( nValue>=0, "Overflow in UInt32 value!");
502 m_nValue = nValue;
503 return sal_True;
504 }
505
506 DBG_ERROR( "CntUInt32Item::PutValue - Wrong type!" );
507 return sal_False;
508 }
509
510 //============================================================================
511 // virtual
Create(SvStream & rStream,sal_uInt16) const512 SfxPoolItem * CntUInt32Item::Create(SvStream & rStream, sal_uInt16) const
513 {
514 DBG_CHKTHIS(CntUInt32Item, 0);
515 return new CntUInt32Item(Which(), rStream);
516 }
517
518 //============================================================================
519 // virtual
Store(SvStream & rStream,sal_uInt16) const520 SvStream & CntUInt32Item::Store(SvStream &rStream, sal_uInt16) const
521 {
522 DBG_CHKTHIS(CntUInt32Item, 0);
523 rStream << static_cast<sal_uInt32>(m_nValue);
524 return rStream;
525 }
526
527 //============================================================================
528 // virtual
Clone(SfxItemPool *) const529 SfxPoolItem * CntUInt32Item::Clone(SfxItemPool *) const
530 {
531 DBG_CHKTHIS(CntUInt32Item, 0);
532 return new CntUInt32Item(*this);
533 }
534
535 //============================================================================
536 // virtual
GetMin() const537 sal_uInt32 CntUInt32Item::GetMin() const
538 {
539 DBG_CHKTHIS(CntUInt32Item, 0);
540 return 0;
541 }
542
543 //============================================================================
544 // virtual
GetMax() const545 sal_uInt32 CntUInt32Item::GetMax() const
546 {
547 DBG_CHKTHIS(CntUInt32Item, 0);
548 return 0xFFFFFFFF;
549 }
550
551 //============================================================================
552 // virtual
GetUnit() const553 SfxFieldUnit CntUInt32Item::GetUnit() const
554 {
555 DBG_CHKTHIS(CntUInt32Item, 0);
556 return SFX_FUNIT_NONE;
557 }
558
559