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