Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
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/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
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 .
18 : */
19 :
20 : #include <svx/dialogs.hrc>
21 : #include "svx/rulritem.hxx"
22 : #include <tools/mapunit.hxx>
23 : #include <com/sun/star/awt/Rectangle.hpp>
24 : #include <com/sun/star/frame/status/LeftRightMargin.hpp>
25 : #include <com/sun/star/frame/status/UpperLowerMargin.hpp>
26 :
27 2642 : TYPEINIT1_AUTOFACTORY(SvxPagePosSizeItem, SfxPoolItem);
28 8664 : TYPEINIT1_AUTOFACTORY(SvxLongLRSpaceItem, SfxPoolItem);
29 8654 : TYPEINIT1_AUTOFACTORY(SvxLongULSpaceItem, SfxPoolItem);
30 856 : TYPEINIT1(SvxColumnItem, SfxPoolItem);
31 56 : TYPEINIT1(SvxObjectItem, SfxPoolItem);
32 :
33 : /* SvxLongLRSpaceItem */
34 :
35 214 : bool SvxLongLRSpaceItem::operator==( const SfxPoolItem& rCmp) const
36 : {
37 428 : return SfxPoolItem::operator==(rCmp) &&
38 428 : mlLeft == static_cast<const SvxLongLRSpaceItem &>(rCmp).mlLeft &&
39 428 : mlRight == static_cast<const SvxLongLRSpaceItem &>(rCmp).mlRight;
40 : }
41 :
42 0 : OUString SvxLongLRSpaceItem::GetValueText() const
43 : {
44 0 : return OUString();
45 : }
46 :
47 0 : bool SvxLongLRSpaceItem::QueryValue( ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const
48 : {
49 0 : bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
50 0 : nMemberId &= ~CONVERT_TWIPS;
51 :
52 : sal_Int32 nVal;
53 0 : switch( nMemberId )
54 : {
55 : case 0:
56 : {
57 0 : ::com::sun::star::frame::status::LeftRightMargin aLeftRightMargin;
58 0 : aLeftRightMargin.Left = bConvert ? convertTwipToMm100( mlLeft ) : mlLeft;
59 0 : aLeftRightMargin.Right = bConvert ? convertTwipToMm100( mlRight ) : mlRight;
60 0 : rVal <<= aLeftRightMargin;
61 0 : return true;
62 : }
63 :
64 : case MID_LEFT:
65 0 : nVal = mlLeft;
66 0 : break;
67 : case MID_RIGHT:
68 0 : nVal = mlRight;
69 0 : break;
70 : default:
71 : OSL_FAIL("Wrong MemberId!");
72 0 : return false;
73 : }
74 :
75 0 : if ( bConvert )
76 0 : nVal = convertTwipToMm100( nVal );
77 :
78 0 : rVal <<= nVal;
79 0 : return true;
80 : }
81 :
82 0 : bool SvxLongLRSpaceItem::PutValue( const ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId )
83 : {
84 0 : bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
85 0 : nMemberId &= ~CONVERT_TWIPS;
86 :
87 0 : sal_Int32 nVal = 0;
88 0 : if ( nMemberId == 0 )
89 : {
90 0 : ::com::sun::star::frame::status::LeftRightMargin aLeftRightMargin;
91 0 : if ( rVal >>= aLeftRightMargin )
92 : {
93 0 : mlLeft = bConvert ? convertMm100ToTwip(aLeftRightMargin.Left) : aLeftRightMargin.Left;
94 0 : mlRight = bConvert ? convertMm100ToTwip(aLeftRightMargin.Right) : aLeftRightMargin.Right;
95 0 : return true;
96 : }
97 : }
98 0 : else if ( rVal >>= nVal )
99 : {
100 0 : if ( bConvert )
101 0 : nVal = convertMm100ToTwip( nVal );
102 :
103 0 : switch( nMemberId )
104 : {
105 : case MID_LEFT:
106 0 : mlLeft = nVal;
107 0 : break;
108 : case MID_RIGHT:
109 0 : mlRight = nVal;
110 0 : break;
111 : default:
112 : OSL_FAIL("Wrong MemberId!");
113 0 : return false;
114 : }
115 :
116 0 : return true;
117 : }
118 :
119 0 : return false;
120 : }
121 :
122 0 : bool SvxLongLRSpaceItem::GetPresentation(
123 : SfxItemPresentation /*ePres*/,
124 : SfxMapUnit /*eCoreUnit*/,
125 : SfxMapUnit /*ePresUnit*/,
126 : OUString& /*rText*/,
127 : const IntlWrapper* /*pWrapper*/) const
128 : {
129 0 : return false;
130 : }
131 :
132 3764 : SfxPoolItem* SvxLongLRSpaceItem::Clone(SfxItemPool *) const
133 : {
134 3764 : return new SvxLongLRSpaceItem(*this);
135 : }
136 :
137 1892 : SvxLongLRSpaceItem::SvxLongLRSpaceItem(long lLeft, long lRight, sal_uInt16 nId) :
138 : SfxPoolItem (nId),
139 : mlLeft (lLeft),
140 1892 : mlRight (lRight)
141 1892 : {}
142 :
143 0 : SvxLongLRSpaceItem::SvxLongLRSpaceItem() :
144 : SfxPoolItem (0),
145 : mlLeft (0),
146 0 : mlRight (0)
147 0 : {}
148 :
149 3953 : SvxLongLRSpaceItem::SvxLongLRSpaceItem(const SvxLongLRSpaceItem &rCpy) :
150 : SfxPoolItem (rCpy),
151 : mlLeft (rCpy.mlLeft),
152 3953 : mlRight (rCpy.mlRight)
153 3953 : {}
154 :
155 :
156 :
157 0 : void SvxLongLRSpaceItem::SetLeft(long lArgLeft)
158 : {
159 0 : mlLeft = lArgLeft;
160 0 : }
161 :
162 0 : void SvxLongLRSpaceItem::SetRight(long lArgRight)
163 : {
164 0 : mlRight = lArgRight;
165 0 : }
166 :
167 : /* SvxLongULSpaceItem */
168 :
169 212 : bool SvxLongULSpaceItem::operator==( const SfxPoolItem& rCmp) const
170 : {
171 424 : return SfxPoolItem::operator==(rCmp) &&
172 424 : mlLeft == static_cast<const SvxLongULSpaceItem&>(rCmp).mlLeft &&
173 424 : mlRight == static_cast<const SvxLongULSpaceItem&>(rCmp).mlRight;
174 : }
175 :
176 :
177 0 : OUString SvxLongULSpaceItem::GetValueText() const
178 : {
179 0 : return OUString();
180 : }
181 :
182 0 : bool SvxLongULSpaceItem::QueryValue( ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const
183 : {
184 0 : bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
185 0 : nMemberId &= ~CONVERT_TWIPS;
186 :
187 : sal_Int32 nVal;
188 0 : switch( nMemberId )
189 : {
190 : case 0:
191 : {
192 0 : ::com::sun::star::frame::status::UpperLowerMargin aUpperLowerMargin;
193 0 : aUpperLowerMargin.Upper = bConvert ? convertTwipToMm100( mlLeft ) : mlLeft;
194 0 : aUpperLowerMargin.Lower = bConvert ? convertTwipToMm100( mlRight ) : mlRight;
195 0 : rVal <<= aUpperLowerMargin;
196 0 : return true;
197 : }
198 :
199 : case MID_UPPER:
200 0 : nVal = mlLeft;
201 0 : break;
202 : case MID_LOWER:
203 0 : nVal = mlRight;
204 0 : break;
205 0 : default: OSL_FAIL("Wrong MemberId!"); return false;
206 : }
207 :
208 0 : if ( bConvert )
209 0 : nVal = convertTwipToMm100( nVal );
210 :
211 0 : rVal <<= nVal;
212 0 : return true;
213 : }
214 :
215 0 : bool SvxLongULSpaceItem::PutValue( const ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId )
216 : {
217 0 : bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
218 0 : nMemberId &= ~CONVERT_TWIPS;
219 :
220 0 : sal_Int32 nVal = 0;
221 0 : if ( nMemberId == 0 )
222 : {
223 0 : ::com::sun::star::frame::status::UpperLowerMargin aUpperLowerMargin;
224 0 : if ( rVal >>= aUpperLowerMargin )
225 : {
226 0 : mlLeft = bConvert ? convertMm100ToTwip( aUpperLowerMargin.Upper ) : aUpperLowerMargin.Upper;
227 0 : mlRight = bConvert ? convertMm100ToTwip( aUpperLowerMargin.Lower ) : aUpperLowerMargin.Lower;
228 0 : return true;
229 : }
230 : }
231 0 : else if ( rVal >>= nVal )
232 : {
233 0 : if ( bConvert )
234 0 : nVal = convertMm100ToTwip( nVal );
235 :
236 0 : switch( nMemberId )
237 : {
238 : case MID_UPPER:
239 0 : mlLeft = nVal;
240 0 : break;
241 : case MID_LOWER:
242 0 : mlRight = nVal;
243 0 : break;
244 : default:
245 : OSL_FAIL("Wrong MemberId!");
246 0 : return false;
247 : }
248 :
249 0 : return true;
250 : }
251 :
252 0 : return false;
253 : }
254 :
255 0 : bool SvxLongULSpaceItem::GetPresentation(
256 : SfxItemPresentation /*ePres*/,
257 : SfxMapUnit /*eCoreUnit*/,
258 : SfxMapUnit /*ePresUnit*/,
259 : OUString& /*rText*/,
260 : const IntlWrapper* /*pWrapper*/ ) const
261 : {
262 0 : return false;
263 : }
264 :
265 3762 : SfxPoolItem* SvxLongULSpaceItem::Clone(SfxItemPool *) const
266 : {
267 3762 : return new SvxLongULSpaceItem(*this);
268 : }
269 :
270 1892 : SvxLongULSpaceItem::SvxLongULSpaceItem(long lLeft, long lRight, sal_uInt16 nId) :
271 : SfxPoolItem (nId),
272 : mlLeft (lLeft),
273 1892 : mlRight (lRight)
274 1892 : {}
275 :
276 3951 : SvxLongULSpaceItem::SvxLongULSpaceItem(const SvxLongULSpaceItem &rCpy) :
277 : SfxPoolItem (rCpy),
278 : mlLeft (rCpy.mlLeft),
279 3951 : mlRight (rCpy.mlRight)
280 3951 : {}
281 :
282 0 : SvxLongULSpaceItem::SvxLongULSpaceItem() :
283 : SfxPoolItem (0),
284 : mlLeft (0),
285 0 : mlRight (0)
286 0 : {}
287 :
288 :
289 :
290 0 : void SvxLongULSpaceItem::SetUpper(long lArgLeft)
291 : {
292 0 : mlLeft = lArgLeft;
293 0 : }
294 :
295 0 : void SvxLongULSpaceItem::SetLower(long lArgRight)
296 : {
297 0 : mlRight = lArgRight;
298 0 : }
299 :
300 : /* SvxPagePosSizeItem */
301 :
302 28 : bool SvxPagePosSizeItem::operator==( const SfxPoolItem& rCmp) const
303 : {
304 56 : return SfxPoolItem::operator==(rCmp) &&
305 40 : aPos == static_cast<const SvxPagePosSizeItem &>(rCmp).aPos &&
306 52 : lWidth == static_cast<const SvxPagePosSizeItem &>(rCmp).lWidth &&
307 40 : lHeight == static_cast<const SvxPagePosSizeItem &>(rCmp).lHeight;
308 : }
309 :
310 0 : bool SvxPagePosSizeItem::QueryValue( ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const
311 : {
312 0 : nMemberId &= ~CONVERT_TWIPS;
313 :
314 : sal_Int32 nVal;
315 0 : switch ( nMemberId )
316 : {
317 : case 0 :
318 : {
319 0 : com::sun::star::awt::Rectangle aPagePosSize;
320 0 : aPagePosSize.X = aPos.X();
321 0 : aPagePosSize.Y = aPos.Y();
322 0 : aPagePosSize.Width = lWidth;
323 0 : aPagePosSize.Height = lHeight;
324 0 : rVal <<= aPagePosSize;
325 0 : return true;
326 : }
327 :
328 0 : case MID_X: nVal = aPos.X(); break;
329 0 : case MID_Y: nVal = aPos.Y(); break;
330 0 : case MID_WIDTH: nVal = lWidth; break;
331 0 : case MID_HEIGHT: nVal = lHeight; break;
332 :
333 0 : default: OSL_FAIL("Wrong MemberId!"); return false;
334 : }
335 :
336 0 : rVal <<= nVal;
337 0 : return true;
338 : }
339 :
340 0 : bool SvxPagePosSizeItem::PutValue( const ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId )
341 : {
342 0 : nMemberId &= ~CONVERT_TWIPS;
343 :
344 0 : sal_Int32 nVal = 0;
345 0 : if ( nMemberId == 0 )
346 : {
347 0 : com::sun::star::awt::Rectangle aPagePosSize;
348 0 : if ( rVal >>= aPagePosSize )
349 : {
350 0 : aPos.X() = aPagePosSize.X;
351 0 : aPos.Y() = aPagePosSize.Y;
352 0 : lWidth = aPagePosSize.Width;
353 0 : lHeight = aPagePosSize.Height;
354 0 : return true;
355 : }
356 : else
357 0 : return false;
358 : }
359 0 : else if ( rVal >>= nVal )
360 : {
361 0 : switch ( nMemberId )
362 : {
363 0 : case MID_X: aPos.X() = nVal; break;
364 0 : case MID_Y: aPos.Y() = nVal; break;
365 0 : case MID_WIDTH: lWidth = nVal; break;
366 0 : case MID_HEIGHT: lHeight = nVal; break;
367 :
368 0 : default: OSL_FAIL("Wrong MemberId!"); return false;
369 : }
370 :
371 0 : return true;
372 : }
373 :
374 0 : return false;
375 : }
376 :
377 0 : OUString SvxPagePosSizeItem::GetValueText() const
378 : {
379 0 : return OUString();
380 : }
381 :
382 0 : bool SvxPagePosSizeItem::GetPresentation(
383 : SfxItemPresentation /*ePres*/,
384 : SfxMapUnit /*eCoreUnit*/,
385 : SfxMapUnit /*ePresUnit*/,
386 : OUString& /*rText*/,
387 : const IntlWrapper* /*pWrapper*/ ) const
388 : {
389 0 : return false;
390 : }
391 :
392 624 : SfxPoolItem* SvxPagePosSizeItem::Clone(SfxItemPool *) const
393 : {
394 624 : return new SvxPagePosSizeItem(*this);
395 : }
396 :
397 216 : SvxPagePosSizeItem::SvxPagePosSizeItem(const Point &rP, long lW, long lH) :
398 : SfxPoolItem (SID_RULER_PAGE_POS),
399 : aPos (rP),
400 : lWidth (lW),
401 216 : lHeight (lH)
402 216 : {}
403 :
404 1018 : SvxPagePosSizeItem::SvxPagePosSizeItem(const SvxPagePosSizeItem &rCpy) :
405 : SfxPoolItem (rCpy),
406 : aPos (rCpy.aPos),
407 : lWidth (rCpy.lWidth),
408 1018 : lHeight (rCpy.lHeight)
409 1018 : {}
410 :
411 0 : SvxPagePosSizeItem::SvxPagePosSizeItem() :
412 : SfxPoolItem (0),
413 : aPos (0, 0),
414 : lWidth (0),
415 0 : lHeight (0)
416 0 : {}
417 :
418 : /* SvxColumnItem */
419 :
420 4 : bool SvxColumnItem::operator==(const SfxPoolItem& rCmp) const
421 : {
422 12 : if(!SfxPoolItem::operator==(rCmp) ||
423 8 : nActColumn != static_cast<const SvxColumnItem&>(rCmp).nActColumn ||
424 8 : nLeft != static_cast<const SvxColumnItem&>(rCmp).nLeft ||
425 8 : nRight != static_cast<const SvxColumnItem&>(rCmp).nRight ||
426 12 : bTable != static_cast<const SvxColumnItem&>(rCmp).bTable ||
427 4 : Count() != static_cast<const SvxColumnItem&>(rCmp).Count())
428 0 : return false;
429 :
430 4 : const sal_uInt16 nCount = static_cast<const SvxColumnItem&>(rCmp).Count();
431 12 : for(sal_uInt16 i = 0; i < nCount;++i)
432 : {
433 8 : if( (*this)[i] != static_cast<const SvxColumnItem&>(rCmp)[i] )
434 0 : return false;
435 : }
436 4 : return true;
437 : }
438 :
439 0 : SvxColumnItem::SvxColumnItem( sal_uInt16 nAct ) :
440 : SfxPoolItem (SID_RULER_BORDERS),
441 : nLeft (0),
442 : nRight (0),
443 : nActColumn (nAct),
444 : bTable (false),
445 0 : bOrtho (true)
446 :
447 0 : {}
448 :
449 8 : SvxColumnItem::SvxColumnItem( sal_uInt16 nActCol, sal_uInt16 left, sal_uInt16 right ) :
450 : SfxPoolItem (SID_RULER_BORDERS),
451 : nLeft (left),
452 : nRight (right),
453 : nActColumn (nActCol),
454 : bTable (true),
455 8 : bOrtho (true)
456 8 : {}
457 :
458 20 : SvxColumnItem::SvxColumnItem( const SvxColumnItem& rCopy ) :
459 : SfxPoolItem (rCopy),
460 : nLeft (rCopy.nLeft),
461 : nRight (rCopy.nRight),
462 : nActColumn (rCopy.nActColumn),
463 : bTable (rCopy.bTable),
464 20 : bOrtho (rCopy.bOrtho)
465 : {
466 20 : aColumns.resize(rCopy.aColumns.size());
467 20 : std::copy(rCopy.aColumns.begin(), rCopy.aColumns.end(), aColumns.begin());
468 20 : }
469 :
470 48 : SvxColumnItem::~SvxColumnItem()
471 48 : {}
472 :
473 0 : OUString SvxColumnItem::GetValueText() const
474 : {
475 0 : return OUString();
476 : }
477 :
478 0 : bool SvxColumnItem::GetPresentation(
479 : SfxItemPresentation /*ePres*/,
480 : SfxMapUnit /*eCoreUnit*/,
481 : SfxMapUnit /*ePresUnit*/,
482 : OUString& /*rText*/,
483 : const IntlWrapper* /*pWrapper*/ ) const
484 : {
485 0 : return false;
486 : }
487 :
488 16 : SfxPoolItem* SvxColumnItem::Clone(SfxItemPool* /*pPool*/) const
489 : {
490 16 : return new SvxColumnItem(*this);
491 : }
492 :
493 0 : const SvxColumnItem& SvxColumnItem::operator=(const SvxColumnItem& rCopy)
494 : {
495 0 : nLeft = rCopy.nLeft;
496 0 : nRight = rCopy.nRight;
497 0 : bTable = rCopy.bTable;
498 0 : nActColumn = rCopy.nActColumn;
499 0 : aColumns.resize(rCopy.aColumns.size());
500 :
501 0 : std::copy(rCopy.aColumns.begin(), rCopy.aColumns.end(), aColumns.begin());
502 :
503 0 : return *this;
504 : }
505 :
506 0 : bool SvxColumnItem::CalcOrtho() const
507 : {
508 0 : const sal_uInt16 nCount = Count();
509 : DBG_ASSERT(nCount >= 2, "no columns");
510 0 : if(nCount < 2)
511 0 : return false;
512 :
513 0 : long nColWidth = (*this)[0].GetWidth();
514 0 : for(sal_uInt16 i = 1; i < nCount; ++i) {
515 0 : if( (*this)[i].GetWidth() != nColWidth)
516 0 : return false;
517 : }
518 : //!! Wide divider
519 0 : return true;
520 : }
521 :
522 0 : bool SvxColumnItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const
523 : {
524 0 : nMemberId &= ~CONVERT_TWIPS;
525 0 : switch ( nMemberId )
526 : {
527 : case MID_COLUMNARRAY:
528 0 : return false;
529 : case MID_RIGHT:
530 0 : rVal <<= nRight;
531 0 : break;
532 : case MID_LEFT:
533 0 : rVal <<= nLeft;
534 0 : break;
535 : case MID_ORTHO:
536 0 : rVal <<= bOrtho;
537 0 : break;
538 : case MID_ACTUAL:
539 0 : rVal <<= (sal_Int32) nActColumn;
540 0 : break;
541 : case MID_TABLE:
542 0 : rVal <<= bTable;
543 0 : break;
544 : default:
545 : OSL_FAIL("Wrong MemberId!");
546 0 : return false;
547 : }
548 :
549 0 : return true;
550 : }
551 :
552 0 : bool SvxColumnItem::PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId )
553 : {
554 0 : nMemberId &= ~CONVERT_TWIPS;
555 0 : sal_Int32 nVal = 0;
556 0 : switch ( nMemberId )
557 : {
558 : case MID_COLUMNARRAY:
559 : {
560 0 : return false;
561 : }
562 : case MID_RIGHT:
563 0 : rVal >>= nRight;
564 0 : break;
565 : case MID_LEFT:
566 0 : rVal >>= nLeft;
567 0 : break;
568 : case MID_ORTHO:
569 0 : rVal >>= nVal;
570 0 : bOrtho = (bool) nVal;
571 0 : break;
572 : case MID_ACTUAL:
573 0 : rVal >>= nVal;
574 0 : nActColumn = (sal_uInt16) nVal;
575 0 : break;
576 : case MID_TABLE:
577 0 : rVal >>= nVal;
578 0 : bTable = (bool) nVal;
579 0 : break;
580 : default:
581 : OSL_FAIL("Wrong MemberId!");
582 0 : return false;
583 : }
584 :
585 0 : return true;
586 : }
587 :
588 170 : sal_uInt16 SvxColumnItem::Count() const
589 : {
590 170 : return aColumns.size();
591 : }
592 :
593 182 : SvxColumnDescription& SvxColumnItem::At(sal_uInt16 index)
594 : {
595 182 : return aColumns[index];
596 : }
597 :
598 18 : SvxColumnDescription& SvxColumnItem::GetActiveColumnDescription()
599 : {
600 18 : return aColumns[GetActColumn()];
601 : }
602 :
603 0 : SvxColumnDescription& SvxColumnItem::operator[](sal_uInt16 index)
604 : {
605 0 : return aColumns[index];
606 : }
607 :
608 16 : const SvxColumnDescription& SvxColumnItem::operator[](sal_uInt16 index) const
609 : {
610 16 : return aColumns[index];
611 : }
612 :
613 16 : void SvxColumnItem::Insert(const SvxColumnDescription &rDesc, sal_uInt16 nPos)
614 : {
615 16 : aColumns.insert(aColumns.begin() + nPos, rDesc);
616 16 : }
617 :
618 16 : void SvxColumnItem::Append(const SvxColumnDescription &rDesc)
619 : {
620 16 : Insert(rDesc, Count());
621 16 : }
622 :
623 0 : void SvxColumnItem::SetLeft(long left)
624 : {
625 0 : nLeft = left;
626 0 : }
627 :
628 0 : void SvxColumnItem::SetRight(long right)
629 : {
630 0 : nRight = right;
631 0 : }
632 :
633 :
634 0 : bool SvxColumnItem::IsFirstAct() const
635 : {
636 0 : return nActColumn == 0;
637 : }
638 :
639 0 : bool SvxColumnItem::IsLastAct() const
640 : {
641 0 : return nActColumn == Count() - 1;
642 : }
643 :
644 40 : SvxColumnDescription::SvxColumnDescription() :
645 : nStart (0),
646 : nEnd (0),
647 : bVisible (true),
648 : nEndMin (0),
649 40 : nEndMax (0)
650 40 : {}
651 :
652 24 : SvxColumnDescription::SvxColumnDescription(const SvxColumnDescription &rCopy) :
653 : nStart (rCopy.nStart),
654 : nEnd (rCopy.nEnd),
655 : bVisible (rCopy.bVisible),
656 : nEndMin (rCopy.nEndMin),
657 24 : nEndMax (rCopy.nEndMax)
658 24 : {}
659 :
660 0 : SvxColumnDescription::SvxColumnDescription(long start, long end, bool bVis) :
661 : nStart (start),
662 : nEnd (end),
663 : bVisible (bVis),
664 : nEndMin (0),
665 0 : nEndMax (0)
666 0 : {}
667 :
668 16 : SvxColumnDescription::SvxColumnDescription(long start, long end, long endMin, long endMax, bool bVis) :
669 : nStart (start),
670 : nEnd (end),
671 : bVisible (bVis),
672 : nEndMin (endMin),
673 16 : nEndMax (endMax)
674 16 : {}
675 :
676 8 : bool SvxColumnDescription::operator==(const SvxColumnDescription& rCmp) const
677 : {
678 8 : return nStart == rCmp.nStart
679 8 : && bVisible == rCmp.bVisible
680 8 : && nEnd == rCmp.nEnd
681 8 : && nEndMin == rCmp.nEndMin
682 16 : && nEndMax == rCmp.nEndMax;
683 : }
684 :
685 8 : bool SvxColumnDescription::operator!=(const SvxColumnDescription& rCmp) const
686 : {
687 8 : return !operator==(rCmp);
688 : }
689 :
690 0 : long SvxColumnDescription::GetWidth() const
691 : {
692 0 : return nEnd - nStart;
693 : }
694 :
695 : /* SvxColumnItem */
696 0 : void SvxColumnItem::SetOrtho(bool bVal)
697 : {
698 0 : bOrtho = bVal;
699 0 : }
700 :
701 18 : bool SvxColumnItem::IsConsistent() const
702 : {
703 18 : return nActColumn < aColumns.size();
704 : }
705 :
706 0 : bool SvxObjectItem::operator==( const SfxPoolItem& rCmp ) const
707 : {
708 0 : return SfxPoolItem::operator==(rCmp) &&
709 0 : nStartX == static_cast<const SvxObjectItem&>(rCmp).nStartX &&
710 0 : nEndX == static_cast<const SvxObjectItem&>(rCmp).nEndX &&
711 0 : nStartY == static_cast<const SvxObjectItem&>(rCmp).nStartY &&
712 0 : nEndY == static_cast<const SvxObjectItem&>(rCmp).nEndY &&
713 0 : bLimits == static_cast<const SvxObjectItem&>(rCmp).bLimits;
714 : }
715 :
716 0 : OUString SvxObjectItem::GetValueText() const
717 : {
718 0 : return OUString();
719 : }
720 :
721 0 : bool SvxObjectItem::GetPresentation(
722 : SfxItemPresentation /*ePres*/,
723 : SfxMapUnit /*eCoreUnit*/,
724 : SfxMapUnit /*ePresUnit*/,
725 : OUString& /*rText*/,
726 : const IntlWrapper* /*pWrapper*/ ) const
727 : {
728 0 : return false;
729 : }
730 :
731 0 : SfxPoolItem* SvxObjectItem::Clone(SfxItemPool *) const
732 : {
733 0 : return new SvxObjectItem(*this);
734 : }
735 :
736 0 : SvxObjectItem::SvxObjectItem( long nSX, long nEX,
737 : long nSY, long nEY, bool limits ) :
738 : SfxPoolItem (SID_RULER_OBJECT),
739 : nStartX (nSX),
740 : nEndX (nEX),
741 : nStartY (nSY),
742 : nEndY (nEY),
743 0 : bLimits (limits)
744 0 : {}
745 :
746 0 : SvxObjectItem::SvxObjectItem( const SvxObjectItem& rCopy ) :
747 : SfxPoolItem (rCopy),
748 : nStartX (rCopy.nStartX),
749 : nEndX (rCopy.nEndX),
750 : nStartY (rCopy.nStartY),
751 : nEndY (rCopy.nEndY),
752 0 : bLimits (rCopy.bLimits)
753 0 : {}
754 :
755 0 : bool SvxObjectItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const
756 : {
757 0 : nMemberId &= ~CONVERT_TWIPS;
758 0 : switch (nMemberId)
759 : {
760 : case MID_START_X:
761 0 : rVal <<= nStartX;
762 0 : break;
763 : case MID_START_Y:
764 0 : rVal <<= nStartY;
765 0 : break;
766 : case MID_END_X:
767 0 : rVal <<= nEndX;
768 0 : break;
769 : case MID_END_Y:
770 0 : rVal <<= nEndY;
771 0 : break;
772 : case MID_LIMIT:
773 0 : rVal <<= bLimits;
774 0 : break;
775 : default:
776 : OSL_FAIL( "Wrong MemberId" );
777 0 : return false;
778 : }
779 :
780 0 : return true;
781 : }
782 :
783 0 : bool SvxObjectItem::PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId )
784 : {
785 0 : nMemberId &= ~CONVERT_TWIPS;
786 0 : bool bRet = false;
787 0 : switch (nMemberId)
788 : {
789 : case MID_START_X:
790 0 : bRet = (rVal >>= nStartX);
791 0 : break;
792 : case MID_START_Y:
793 0 : bRet = (rVal >>= nStartY);
794 0 : break;
795 : case MID_END_X:
796 0 : bRet = (rVal >>= nEndX);
797 0 : break;
798 : case MID_END_Y:
799 0 : bRet = (rVal >>= nEndY);
800 0 : break;
801 : case MID_LIMIT:
802 0 : bRet = (rVal >>= bLimits);
803 0 : break;
804 : default: OSL_FAIL( "Wrong MemberId" );
805 : }
806 :
807 0 : return bRet;
808 : }
809 :
810 :
811 :
812 :
813 :
814 :
815 0 : void SvxObjectItem::SetStartX(long lValue)
816 : {
817 0 : nStartX = lValue;
818 0 : }
819 :
820 0 : void SvxObjectItem::SetEndX(long lValue)
821 : {
822 0 : nEndX = lValue;
823 0 : }
824 :
825 0 : void SvxObjectItem::SetStartY(long lValue)
826 : {
827 0 : nStartY = lValue;
828 0 : }
829 :
830 0 : void SvxObjectItem::SetEndY(long lValue)
831 : {
832 0 : nEndY = lValue;
833 0 : }
834 :
835 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|