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_svx.hxx" 26 #include <tools/string.hxx> 27 28 #include <svx/dialogs.hrc> 29 #include "svx/rulritem.hxx" 30 #include <com/sun/star/awt/Rectangle.hpp> 31 #include <com/sun/star/frame/status/LeftRightMargin.hpp> 32 #include <com/sun/star/frame/status/UpperLowerMargin.hpp> 33 34 //------------------------------------------------------------------------ 35 36 TYPEINIT1_AUTOFACTORY(SvxPagePosSizeItem, SfxPoolItem); 37 TYPEINIT1_AUTOFACTORY(SvxLongLRSpaceItem, SfxPoolItem); 38 TYPEINIT1_AUTOFACTORY(SvxLongULSpaceItem, SfxPoolItem); 39 TYPEINIT1(SvxColumnItem, SfxPoolItem); 40 TYPEINIT1(SvxObjectItem, SfxPoolItem); 41 42 //------------------------------------------------------------------------ 43 44 int SvxLongLRSpaceItem::operator==( const SfxPoolItem& rCmp) const 45 { 46 return SfxPoolItem::operator==(rCmp) && 47 lLeft==((const SvxLongLRSpaceItem &)rCmp).lLeft && 48 lRight==((const SvxLongLRSpaceItem &)rCmp).lRight; 49 } 50 51 52 //------------------------------------------------------------------------ 53 54 String SvxLongLRSpaceItem::GetValueText() const 55 { 56 return String(); 57 } 58 59 #define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L)) 60 #define MM100_TO_TWIP(MM100) ((MM100) >= 0 ? (((MM100)*72L+63L)/127L) : (((MM100)*72L-63L)/127L)) 61 62 sal_Bool SvxLongLRSpaceItem::QueryValue( ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const 63 { 64 sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS); 65 nMemberId &= ~CONVERT_TWIPS; 66 67 sal_Int32 nVal; 68 switch( nMemberId ) 69 { 70 case 0: 71 { 72 ::com::sun::star::frame::status::LeftRightMargin aLeftRightMargin; 73 aLeftRightMargin.Left = bConvert ? TWIP_TO_MM100( lLeft ) : lLeft; 74 aLeftRightMargin.Right = bConvert ? TWIP_TO_MM100( lRight ) : lRight; 75 rVal <<= aLeftRightMargin; 76 return sal_True; 77 } 78 79 case MID_LEFT: nVal = lLeft; break; 80 case MID_RIGHT: nVal = lRight; break; 81 default: DBG_ERROR("Wrong MemberId!"); return sal_False; 82 } 83 84 if ( bConvert ) 85 nVal = TWIP_TO_MM100( nVal ); 86 87 rVal <<= nVal; 88 return sal_True; 89 } 90 91 // ----------------------------------------------------------------------- 92 sal_Bool SvxLongLRSpaceItem::PutValue( const ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) 93 { 94 sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS); 95 nMemberId &= ~CONVERT_TWIPS; 96 97 sal_Int32 nVal = 0; 98 if ( nMemberId == 0 ) 99 { 100 ::com::sun::star::frame::status::LeftRightMargin aLeftRightMargin; 101 if ( rVal >>= aLeftRightMargin ) 102 { 103 lLeft = bConvert ? MM100_TO_TWIP( aLeftRightMargin.Left ) : aLeftRightMargin.Left; 104 lRight = bConvert ? MM100_TO_TWIP( aLeftRightMargin.Right ) : aLeftRightMargin.Right; 105 return sal_True; 106 } 107 } 108 else if ( rVal >>= nVal ) 109 { 110 if ( bConvert ) 111 nVal = MM100_TO_TWIP( nVal ); 112 113 switch( nMemberId ) 114 { 115 case MID_LEFT: lLeft = nVal; break; 116 case MID_RIGHT: lRight = nVal; break; 117 default: DBG_ERROR("Wrong MemberId!"); return sal_False; 118 } 119 120 return sal_True; 121 } 122 123 return sal_False; 124 } 125 126 //------------------------------------------------------------------------ 127 128 SfxItemPresentation SvxLongLRSpaceItem::GetPresentation 129 ( 130 SfxItemPresentation /*ePres*/, 131 SfxMapUnit /*eCoreUnit*/, 132 SfxMapUnit /*ePresUnit*/, 133 String& /*rText*/, const IntlWrapper * 134 ) const 135 { 136 137 return SFX_ITEM_PRESENTATION_NONE; 138 } 139 140 //------------------------------------------------------------------------ 141 142 SfxPoolItem* SvxLongLRSpaceItem::Clone(SfxItemPool *) const 143 { 144 return new SvxLongLRSpaceItem(*this); 145 } 146 147 //------------------------------------------------------------------------ 148 149 SvxLongLRSpaceItem::SvxLongLRSpaceItem(long lL, long lR, sal_uInt16 nId) 150 : SfxPoolItem(nId), 151 lLeft(lL), 152 lRight(lR) 153 {} 154 155 //------------------------------------------------------------------------ 156 157 SvxLongLRSpaceItem::SvxLongLRSpaceItem() : 158 SfxPoolItem( 0 ), 159 lLeft( 0 ), 160 lRight( 0 ) 161 {} 162 163 //------------------------------------------------------------------------ 164 165 SvxLongLRSpaceItem::SvxLongLRSpaceItem(const SvxLongLRSpaceItem &rCpy) 166 : SfxPoolItem(rCpy), 167 lLeft(rCpy.lLeft), 168 lRight(rCpy.lRight) 169 {} 170 171 //------------------------------------------------------------------------ 172 173 int SvxLongULSpaceItem::operator==( const SfxPoolItem& rCmp) const 174 { 175 return SfxPoolItem::operator==(rCmp) && 176 lLeft==((const SvxLongULSpaceItem &)rCmp).lLeft && 177 lRight==((const SvxLongULSpaceItem &)rCmp).lRight; 178 } 179 180 181 //------------------------------------------------------------------------ 182 183 String SvxLongULSpaceItem::GetValueText() const 184 { 185 return String(); 186 } 187 188 sal_Bool SvxLongULSpaceItem::QueryValue( ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const 189 { 190 sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS); 191 nMemberId &= ~CONVERT_TWIPS; 192 193 sal_Int32 nVal; 194 switch( nMemberId ) 195 { 196 case 0: 197 { 198 ::com::sun::star::frame::status::UpperLowerMargin aUpperLowerMargin; 199 aUpperLowerMargin.Upper = bConvert ? TWIP_TO_MM100( lLeft ) : lLeft; 200 aUpperLowerMargin.Lower = bConvert ? TWIP_TO_MM100( lRight ) : lRight; 201 rVal <<= aUpperLowerMargin; 202 return sal_True; 203 } 204 205 case MID_UPPER: nVal = lLeft; break; 206 case MID_LOWER: nVal = lRight; break; 207 default: DBG_ERROR("Wrong MemberId!"); return sal_False; 208 } 209 210 if ( bConvert ) 211 nVal = TWIP_TO_MM100( nVal ); 212 213 rVal <<= nVal; 214 return sal_True; 215 } 216 217 // ----------------------------------------------------------------------- 218 sal_Bool SvxLongULSpaceItem::PutValue( const ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) 219 { 220 sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS); 221 nMemberId &= ~CONVERT_TWIPS; 222 223 sal_Int32 nVal = 0; 224 if ( nMemberId == 0 ) 225 { 226 ::com::sun::star::frame::status::UpperLowerMargin aUpperLowerMargin; 227 if ( rVal >>= aUpperLowerMargin ) 228 { 229 lLeft = bConvert ? MM100_TO_TWIP( aUpperLowerMargin.Upper ) : aUpperLowerMargin.Upper; 230 lRight = bConvert ? MM100_TO_TWIP( aUpperLowerMargin.Lower ) : aUpperLowerMargin.Lower; 231 return sal_True; 232 } 233 } 234 else if ( rVal >>= nVal ) 235 { 236 if ( bConvert ) 237 nVal = MM100_TO_TWIP( nVal ); 238 239 switch( nMemberId ) 240 { 241 case MID_UPPER: lLeft = nVal; break; 242 case MID_LOWER: lRight = nVal; break; 243 default: DBG_ERROR("Wrong MemberId!"); return sal_False; 244 } 245 246 return sal_True; 247 } 248 249 return sal_False; 250 } 251 252 //------------------------------------------------------------------------ 253 254 SfxItemPresentation SvxLongULSpaceItem::GetPresentation 255 ( 256 SfxItemPresentation /*ePres*/, 257 SfxMapUnit /*eCoreUnit*/, 258 SfxMapUnit /*ePresUnit*/, 259 String& /*rText*/, const IntlWrapper * 260 ) const 261 { 262 return SFX_ITEM_PRESENTATION_NONE; 263 } 264 265 //------------------------------------------------------------------------ 266 267 SfxPoolItem* SvxLongULSpaceItem::Clone(SfxItemPool *) const 268 { 269 return new SvxLongULSpaceItem(*this); 270 } 271 272 //------------------------------------------------------------------------ 273 274 SvxLongULSpaceItem::SvxLongULSpaceItem(long lL, long lR, sal_uInt16 nId) 275 : SfxPoolItem(nId), 276 lLeft(lL), 277 lRight(lR) 278 {} 279 280 //------------------------------------------------------------------------ 281 282 SvxLongULSpaceItem::SvxLongULSpaceItem(const SvxLongULSpaceItem &rCpy) 283 : SfxPoolItem(rCpy), 284 lLeft(rCpy.lLeft), 285 lRight(rCpy.lRight) 286 {} 287 288 //------------------------------------------------------------------------ 289 290 SvxLongULSpaceItem::SvxLongULSpaceItem() : 291 SfxPoolItem( 0 ), 292 lLeft( 0 ), 293 lRight( 0 ) 294 {} 295 296 //------------------------------------------------------------------------ 297 298 int SvxPagePosSizeItem::operator==( const SfxPoolItem& rCmp) const 299 { 300 return SfxPoolItem::operator==(rCmp) && 301 aPos == ((const SvxPagePosSizeItem &)rCmp).aPos && 302 lWidth == ((const SvxPagePosSizeItem &)rCmp).lWidth && 303 lHeight == ((const SvxPagePosSizeItem &)rCmp).lHeight; 304 } 305 306 sal_Bool SvxPagePosSizeItem::QueryValue( ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const 307 { 308 nMemberId &= ~CONVERT_TWIPS; 309 310 sal_Int32 nVal; 311 switch ( nMemberId ) 312 { 313 case 0 : 314 { 315 com::sun::star::awt::Rectangle aPagePosSize; 316 aPagePosSize.X = aPos.X(); 317 aPagePosSize.Y = aPos.Y(); 318 aPagePosSize.Width = lWidth; 319 aPagePosSize.Height = lHeight; 320 rVal <<= aPagePosSize; 321 return sal_True; 322 } 323 324 case MID_X: nVal = aPos.X(); break; 325 case MID_Y: nVal = aPos.Y(); break; 326 case MID_WIDTH: nVal = lWidth; break; 327 case MID_HEIGHT: nVal = lHeight; break; 328 329 default: DBG_ERROR("Wrong MemberId!"); return sal_False; 330 } 331 332 rVal <<= nVal; 333 return sal_True; 334 } 335 336 sal_Bool SvxPagePosSizeItem::PutValue( const ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) 337 { 338 nMemberId &= ~CONVERT_TWIPS; 339 340 sal_Int32 nVal = 0; 341 if ( nMemberId == 0 ) 342 { 343 com::sun::star::awt::Rectangle aPagePosSize; 344 if ( rVal >>= aPagePosSize ) 345 { 346 aPos.X() = aPagePosSize.X; 347 aPos.Y() = aPagePosSize.Y; 348 lWidth = aPagePosSize.Width; 349 lHeight = aPagePosSize.Height; 350 return sal_True; 351 } 352 else 353 return sal_False; 354 } 355 else if ( rVal >>= nVal ) 356 { 357 switch ( nMemberId ) 358 { 359 case MID_X: aPos.X() = nVal; break; 360 case MID_Y: aPos.Y() = nVal; break; 361 case MID_WIDTH: lWidth = nVal; break; 362 case MID_HEIGHT: lHeight = nVal; break; 363 364 default: DBG_ERROR("Wrong MemberId!"); return sal_False; 365 } 366 367 return sal_True; 368 } 369 370 return sal_False; 371 } 372 373 //------------------------------------------------------------------------ 374 375 String SvxPagePosSizeItem::GetValueText() const 376 { 377 return String(); 378 } 379 380 //------------------------------------------------------------------------ 381 382 SfxItemPresentation SvxPagePosSizeItem::GetPresentation 383 ( 384 SfxItemPresentation /*ePres*/, 385 SfxMapUnit /*eCoreUnit*/, 386 SfxMapUnit /*ePresUnit*/, 387 String& /*rText*/, const IntlWrapper * 388 ) const 389 { 390 return SFX_ITEM_PRESENTATION_NONE; 391 } 392 393 //------------------------------------------------------------------------ 394 395 SfxPoolItem* SvxPagePosSizeItem::Clone(SfxItemPool *) const 396 { 397 return new SvxPagePosSizeItem(*this); 398 } 399 400 //------------------------------------------------------------------------ 401 402 SvxPagePosSizeItem::SvxPagePosSizeItem(const Point &rP, long lW, long lH) 403 : SfxPoolItem(SID_RULER_PAGE_POS), 404 aPos(rP), 405 lWidth(lW), 406 lHeight(lH) 407 {} 408 409 //------------------------------------------------------------------------ 410 411 SvxPagePosSizeItem::SvxPagePosSizeItem(const SvxPagePosSizeItem &rCpy) 412 : SfxPoolItem(rCpy), 413 aPos(rCpy.aPos), 414 lWidth(rCpy.lWidth), 415 lHeight(rCpy.lHeight) 416 {} 417 418 //------------------------------------------------------------------------ 419 420 SvxPagePosSizeItem::SvxPagePosSizeItem() 421 : SfxPoolItem( 0 ), 422 aPos( 0, 0 ), 423 lWidth( 0 ), 424 lHeight( 0 ) 425 {} 426 427 //------------------------------------------------------------------------ 428 429 void SvxColumnItem::DeleteAndDestroyColumns() 430 { 431 for( sal_uInt16 i = aColumns.Count(); i>0; ) 432 { 433 SvxColumnDescription *pTmp = (SvxColumnDescription *)aColumns[--i]; 434 aColumns.Remove( i ); 435 delete pTmp; 436 } 437 } 438 439 //------------------------------------------------------------------------ 440 441 int SvxColumnItem::operator==(const SfxPoolItem& rCmp) const 442 { 443 if(!SfxPoolItem::operator==(rCmp) || 444 nActColumn != ((const SvxColumnItem&)rCmp).nActColumn || 445 nLeft != ((const SvxColumnItem&)rCmp).nLeft || 446 nRight != ((const SvxColumnItem&)rCmp).nRight || 447 bTable != ((const SvxColumnItem&)rCmp).bTable || 448 Count() != ((const SvxColumnItem&)rCmp).Count()) 449 return sal_False; 450 451 const sal_uInt16 nCount = ((const SvxColumnItem&)rCmp).Count(); 452 for(sal_uInt16 i = 0; i < nCount;++i) { 453 #if OSL_DEBUG_LEVEL > 1 454 SvxColumnDescription *p1, *p2; 455 p1 = (SvxColumnDescription *)aColumns[i]; 456 p2 = (SvxColumnDescription *)((const SvxColumnItem&)rCmp).aColumns[i]; 457 #endif 458 if( (*this)[i] != ((const SvxColumnItem&)rCmp)[i] ) 459 return sal_False; 460 } 461 return sal_True; 462 } 463 464 //------------------------------------------------------------------------ 465 466 String SvxColumnItem::GetValueText() const 467 { 468 return String(); 469 } 470 471 //------------------------------------------------------------------------ 472 473 SfxItemPresentation SvxColumnItem::GetPresentation 474 ( 475 SfxItemPresentation /*ePres*/, 476 SfxMapUnit /*eCoreUnit*/, 477 SfxMapUnit /*ePresUnit*/, 478 String& /*rText*/, const IntlWrapper * 479 ) const 480 { 481 return SFX_ITEM_PRESENTATION_NONE; 482 } 483 484 //------------------------------------------------------------------------ 485 486 SfxPoolItem* SvxColumnItem::Clone( SfxItemPool * ) const 487 { 488 return new SvxColumnItem(*this); 489 } 490 491 //------------------------------------------------------------------------ 492 493 SvxColumnItem::SvxColumnItem( sal_uInt16 nAct ) : 494 495 SfxPoolItem( SID_RULER_BORDERS ), 496 497 nLeft ( 0 ), 498 nRight ( 0 ), 499 nActColumn ( nAct ), 500 bTable ( sal_False ), 501 bOrtho (sal_True ) 502 503 { 504 } 505 506 //------------------------------------------------------------------------ 507 508 SvxColumnItem::SvxColumnItem( sal_uInt16 nActCol, sal_uInt16 left, sal_uInt16 right ) : 509 510 SfxPoolItem( SID_RULER_BORDERS ), 511 512 nLeft ( left ), 513 nRight ( right ), 514 nActColumn ( nActCol ), 515 bTable ( sal_True ), 516 bOrtho ( sal_True ) 517 { 518 } 519 520 //------------------------------------------------------------------------ 521 522 SvxColumnItem::SvxColumnItem( const SvxColumnItem& rCopy ) : 523 524 SfxPoolItem( rCopy ), 525 526 aColumns ( (sal_uInt8)rCopy.Count() ), 527 nLeft ( rCopy.nLeft ), 528 nRight ( rCopy.nRight ), 529 nActColumn( rCopy.nActColumn ), 530 bTable ( rCopy.bTable ), 531 bOrtho ( rCopy.bOrtho ) 532 533 { 534 const sal_uInt16 nCount = rCopy.Count(); 535 536 for ( sal_uInt16 i = 0; i < nCount; ++i ) 537 Append( rCopy[i] ); 538 } 539 540 //------------------------------------------------------------------------ 541 542 SvxColumnItem::~SvxColumnItem() 543 { 544 DeleteAndDestroyColumns(); 545 } 546 547 //------------------------------------------------------------------------ 548 549 const SvxColumnItem &SvxColumnItem::operator=(const SvxColumnItem &rCopy) 550 { 551 nLeft = rCopy.nLeft; 552 nRight = rCopy.nRight; 553 bTable = rCopy.bTable; 554 nActColumn = rCopy.nActColumn; 555 DeleteAndDestroyColumns(); 556 const sal_uInt16 nCount = rCopy.Count(); 557 for(sal_uInt16 i = 0; i < nCount;++i) 558 Insert(rCopy[i], i); 559 return *this; 560 } 561 562 //------------------------------------------------------------------------ 563 564 sal_Bool SvxColumnItem::CalcOrtho() const 565 { 566 const sal_uInt16 nCount = Count(); 567 DBG_ASSERT(nCount >= 2, "keine Spalten"); 568 if(nCount < 2) 569 return sal_False; 570 571 long nColWidth = (*this)[0].GetWidth(); 572 for(sal_uInt16 i = 1; i < nCount; ++i) { 573 if( (*this)[i].GetWidth() != nColWidth) 574 return sal_False; 575 } 576 //!! Breite Trenner 577 return sal_True; 578 } 579 580 //------------------------------------------------------------------------ 581 582 long SvxColumnItem::GetVisibleRight() const 583 { 584 sal_uInt16 nIdx = 0; 585 586 for ( sal_uInt16 i = 0; i < nActColumn; ++i ) 587 { 588 if ( (*this)[i].bVisible ) 589 ++nIdx; 590 } 591 return (*this)[nIdx].nEnd; 592 } 593 594 sal_Bool SvxColumnItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const 595 { 596 nMemberId &= ~CONVERT_TWIPS; 597 switch ( nMemberId ) 598 { 599 case MID_COLUMNARRAY: 600 { 601 return sal_False; 602 } 603 case MID_RIGHT: rVal <<= nRight; break; 604 case MID_LEFT: rVal <<= nLeft; break; 605 case MID_ORTHO: rVal <<= (sal_Bool) bOrtho; break; 606 case MID_ACTUAL: rVal <<= (sal_Int32) nActColumn; break; 607 case MID_TABLE: rVal <<= (sal_Bool) bTable; break; 608 default: DBG_ERROR("Wrong MemberId!"); return sal_False; 609 } 610 611 return sal_True; 612 } 613 614 sal_Bool SvxColumnItem::PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) 615 { 616 nMemberId &= ~CONVERT_TWIPS; 617 sal_Int32 nVal = 0; 618 switch ( nMemberId ) 619 { 620 case MID_COLUMNARRAY: 621 { 622 return sal_False; 623 } 624 case MID_RIGHT: rVal >>= nRight; break; 625 case MID_LEFT: rVal >>= nLeft; break; 626 case MID_ORTHO: rVal >>= nVal; bOrtho = (sal_Bool) nVal; break; 627 case MID_ACTUAL: rVal >>= nVal; nActColumn = (sal_uInt16) nVal; break; 628 case MID_TABLE: rVal >>= nVal; bTable = (sal_Bool) nVal; break; 629 default: DBG_ERROR("Wrong MemberId!"); return sal_False; 630 } 631 632 return sal_True; 633 } 634 635 //------------------------------------------------------------------------ 636 637 int SvxObjectItem::operator==( const SfxPoolItem& rCmp ) const 638 { 639 return SfxPoolItem::operator==(rCmp) && 640 nStartX == ((const SvxObjectItem&)rCmp).nStartX && 641 nEndX == ((const SvxObjectItem&)rCmp).nEndX && 642 nStartY == ((const SvxObjectItem&)rCmp).nStartY && 643 nEndY == ((const SvxObjectItem&)rCmp).nEndY && 644 bLimits == ((const SvxObjectItem&)rCmp).bLimits; 645 } 646 647 //------------------------------------------------------------------------ 648 649 String SvxObjectItem::GetValueText() const 650 { 651 return String(); 652 } 653 654 //------------------------------------------------------------------------ 655 656 SfxItemPresentation SvxObjectItem::GetPresentation 657 ( 658 SfxItemPresentation /*ePres*/, 659 SfxMapUnit /*eCoreUnit*/, 660 SfxMapUnit /*ePresUnit*/, 661 String& /*rText*/, const IntlWrapper * 662 ) const 663 { 664 return SFX_ITEM_PRESENTATION_NONE; 665 } 666 667 //------------------------------------------------------------------------ 668 669 SfxPoolItem* SvxObjectItem::Clone(SfxItemPool *) const 670 { 671 return new SvxObjectItem(*this); 672 } 673 674 //------------------------------------------------------------------------ 675 676 SvxObjectItem::SvxObjectItem( long nSX, long nEX, 677 long nSY, long nEY, sal_Bool limits ) : 678 679 SfxPoolItem( SID_RULER_OBJECT ), 680 681 nStartX ( nSX ), 682 nEndX ( nEX ), 683 nStartY ( nSY ), 684 nEndY ( nEY ), 685 bLimits ( limits ) 686 687 { 688 } 689 690 //------------------------------------------------------------------------ 691 692 SvxObjectItem::SvxObjectItem( const SvxObjectItem& rCopy ) : 693 694 SfxPoolItem( rCopy ), 695 696 nStartX ( rCopy.nStartX ), 697 nEndX ( rCopy.nEndX ), 698 nStartY ( rCopy.nStartY ), 699 nEndY ( rCopy.nEndY ), 700 bLimits ( rCopy.bLimits ) 701 702 { 703 } 704 705 sal_Bool SvxObjectItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const 706 { 707 nMemberId &= ~CONVERT_TWIPS; 708 switch ( nMemberId ) 709 { 710 case MID_START_X : rVal <<= nStartX; break; 711 case MID_START_Y : rVal <<= nStartY; break; 712 case MID_END_X : rVal <<= nEndX; break; 713 case MID_END_Y : rVal <<= nEndY; break; 714 case MID_LIMIT : rVal <<= bLimits; break; 715 default: 716 DBG_ERROR( "Wrong MemberId" ); 717 return sal_False; 718 } 719 720 return sal_True; 721 } 722 723 sal_Bool SvxObjectItem::PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) 724 { 725 nMemberId &= ~CONVERT_TWIPS; 726 sal_Bool bRet=sal_False; 727 switch ( nMemberId ) 728 { 729 case MID_START_X : bRet = (rVal >>= nStartX); break; 730 case MID_START_Y : bRet = (rVal >>= nStartY); break; 731 case MID_END_X : bRet = (rVal >>= nEndX); break; 732 case MID_END_Y : bRet = (rVal >>= nEndY); break; 733 case MID_LIMIT : bRet = (rVal >>= bLimits); break; 734 default: DBG_ERROR( "Wrong MemberId" ); 735 } 736 737 return bRet; 738 } 739 740