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