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_cui.hxx" 26 27 // include --------------------------------------------------------------- 28 #include <sfx2/app.hxx> 29 #include <sfx2/module.hxx> 30 #include <tools/shl.hxx> 31 32 #include <cuires.hrc> 33 #include <svx/dialogs.hrc> 34 35 #ifndef _SVX_TEXTANIM_CXX 36 #define _SVX_TEXTANIM_CXX 37 #endif 38 #include "textanim.hxx" 39 #include "textanim.hrc" 40 #include "textattr.hxx" 41 #include <dialmgr.hxx> 42 #include "svx/dlgutil.hxx" 43 44 static sal_uInt16 pRanges[] = 45 { 46 SDRATTR_TEXT_ANIKIND, 47 SDRATTR_TEXT_ANIAMOUNT, 48 0 49 }; 50 51 /************************************************************************* 52 |* 53 |* Konstruktor des Tab-Dialogs: Fuegt die Seiten zum Dialog hinzu 54 |* 55 \************************************************************************/ 56 57 __EXPORT SvxTextTabDialog::SvxTextTabDialog( Window* pParent, 58 const SfxItemSet* pAttr, 59 const SdrView* pSdrView ) : 60 SfxTabDialog ( pParent, CUI_RES( RID_SVXDLG_TEXT ), pAttr ), 61 rOutAttrs ( *pAttr ), 62 pView ( pSdrView ) 63 { 64 FreeResource(); 65 66 AddTabPage( RID_SVXPAGE_TEXTATTR, SvxTextAttrPage::Create, 0); 67 AddTabPage( RID_SVXPAGE_TEXTANIMATION, SvxTextAnimationPage::Create, 0); 68 } 69 70 /************************************************************************* 71 |* 72 |* PageCreated() 73 |* 74 \************************************************************************/ 75 76 void __EXPORT SvxTextTabDialog::PageCreated( sal_uInt16 nId, SfxTabPage &rPage ) 77 { 78 switch( nId ) 79 { 80 case RID_SVXPAGE_TEXTATTR: 81 { 82 ( (SvxTextAttrPage&) rPage ).SetView( pView ); 83 ( (SvxTextAttrPage&) rPage ).Construct(); 84 } 85 break; 86 87 case RID_SVXPAGE_TEXTANIMATION: 88 break; 89 90 default: 91 break; 92 } 93 } 94 95 96 /************************************************************************* 97 |* 98 |* Page 99 |* 100 \************************************************************************/ 101 102 SvxTextAnimationPage::SvxTextAnimationPage( Window* pWindow, const SfxItemSet& rInAttrs ) : 103 SfxTabPage ( pWindow, CUI_RES( RID_SVXPAGE_TEXTANIMATION ), 104 rInAttrs ), 105 aFlEffect ( this, CUI_RES(FL_EFFECT)), 106 aFtEffects ( this, CUI_RES(FT_EFFECTS)), 107 aLbEffect ( this, CUI_RES( LB_EFFECT ) ), 108 //aCtlEffect ( this, CUI_RES( CTL_EFFECT ) ), 109 aFtDirection ( this, CUI_RES(FT_DIRECTION) ), 110 aBtnUp ( this, CUI_RES( BTN_UP ) ), 111 aBtnLeft ( this, CUI_RES( BTN_LEFT ) ), 112 aBtnRight ( this, CUI_RES( BTN_RIGHT ) ), 113 aBtnDown ( this, CUI_RES( BTN_DOWN ) ), 114 115 aFlProperties ( this, CUI_RES(FL_PROPERTIES)), 116 aTsbStartInside ( this, CUI_RES( TSB_START_INSIDE ) ), 117 aTsbStopInside ( this, CUI_RES( TSB_STOP_INSIDE ) ), 118 119 aFtCount ( this, CUI_RES(FT_COUNT)), 120 aTsbEndless ( this, CUI_RES( TSB_ENDLESS ) ), 121 aNumFldCount ( this, CUI_RES( NUM_FLD_COUNT ) ), 122 123 aFtAmount ( this, CUI_RES(FT_AMOUNT)), 124 aTsbPixel ( this, CUI_RES( TSB_PIXEL ) ), 125 aMtrFldAmount ( this, CUI_RES( MTR_FLD_AMOUNT ) ), 126 127 aFtDelay ( this, CUI_RES(FT_DELAY)), 128 aTsbAuto ( this, CUI_RES( TSB_AUTO ) ), 129 aMtrFldDelay ( this, CUI_RES( MTR_FLD_DELAY ) ), 130 131 rOutAttrs ( rInAttrs ), 132 eAniKind ( SDRTEXTANI_NONE ) 133 { 134 FreeResource(); 135 136 eFUnit = GetModuleFieldUnit( rInAttrs ); 137 SfxItemPool* pPool = rOutAttrs.GetPool(); 138 DBG_ASSERT( pPool, "Wo ist der Pool" ); 139 eUnit = pPool->GetMetric( SDRATTR_TEXT_LEFTDIST ); 140 141 Construct(); 142 143 aLbEffect.SetSelectHdl( 144 LINK( this, SvxTextAnimationPage, SelectEffectHdl_Impl ) ); 145 aTsbEndless.SetClickHdl( 146 LINK( this, SvxTextAnimationPage, ClickEndlessHdl_Impl ) ); 147 aTsbAuto.SetClickHdl( 148 LINK( this, SvxTextAnimationPage, ClickAutoHdl_Impl ) ); 149 aTsbPixel.SetClickHdl( 150 LINK( this, SvxTextAnimationPage, ClickPixelHdl_Impl ) ); 151 152 Link aLink( LINK( this, SvxTextAnimationPage, ClickDirectionHdl_Impl ) ); 153 aBtnUp.SetClickHdl( aLink ); 154 aBtnLeft.SetClickHdl( aLink ); 155 aBtnRight.SetClickHdl( aLink ); 156 aBtnDown.SetClickHdl( aLink ); 157 158 aNumFldCount.SetAccessibleRelationLabeledBy( &aTsbEndless ); 159 aMtrFldAmount.SetAccessibleRelationLabeledBy( &aTsbPixel ); 160 aMtrFldDelay.SetAccessibleRelationLabeledBy( &aTsbAuto ); 161 162 aBtnUp.SetAccessibleRelationLabeledBy( &aFtDirection ); 163 aBtnLeft.SetAccessibleRelationLabeledBy( &aFtDirection ); 164 aBtnRight.SetAccessibleRelationLabeledBy( &aFtDirection ); 165 aBtnDown.SetAccessibleRelationLabeledBy( &aFtDirection ); 166 167 aBtnUp.SetAccessibleRelationMemberOf( &aFlEffect ); 168 aBtnLeft.SetAccessibleRelationMemberOf( &aFlEffect ); 169 aBtnRight.SetAccessibleRelationMemberOf( &aFlEffect ); 170 aBtnDown.SetAccessibleRelationMemberOf( &aFlEffect ); 171 172 aTsbEndless.SetAccessibleRelationLabeledBy( &aFtCount ); 173 aTsbPixel.SetAccessibleRelationLabeledBy( &aFtAmount ); 174 aTsbAuto.SetAccessibleRelationLabeledBy( &aFtDelay ); 175 } 176 177 /************************************************************************* 178 |* 179 |* Dtor 180 |* 181 \************************************************************************/ 182 183 SvxTextAnimationPage::~SvxTextAnimationPage() 184 { 185 } 186 187 /************************************************************************* 188 |* 189 |* Liest uebergebenen Item-Set 190 |* 191 \************************************************************************/ 192 193 void __EXPORT SvxTextAnimationPage::Reset( const SfxItemSet& rAttrs ) 194 { 195 const SfxItemPool* pPool = rAttrs.GetPool(); 196 197 // Animationstyp 198 const SfxPoolItem* pItem = GetItem( rAttrs, SDRATTR_TEXT_ANIKIND ); 199 200 if( !pItem ) 201 pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIKIND ); 202 if( pItem ) 203 { 204 eAniKind = ( ( const SdrTextAniKindItem* )pItem )->GetValue(); 205 aLbEffect.SelectEntryPos( sal::static_int_cast< sal_uInt16 >(eAniKind) ); 206 } 207 else 208 aLbEffect.SetNoSelection(); 209 aLbEffect.SaveValue(); 210 211 // Animationsrichtung 212 pItem = GetItem( rAttrs, SDRATTR_TEXT_ANIDIRECTION ); 213 if( !pItem ) 214 pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIDIRECTION ); 215 if( pItem ) 216 { 217 SdrTextAniDirection eValue = ( ( const SdrTextAniDirectionItem* )pItem )->GetValue(); 218 SelectDirection( eValue ); 219 } 220 else 221 { 222 aBtnUp.Check( sal_False ); 223 aBtnLeft.Check( sal_False ); 224 aBtnRight.Check( sal_False ); 225 aBtnDown.Check( sal_False ); 226 } 227 aBtnUp.SaveValue(); 228 aBtnLeft.SaveValue(); 229 aBtnRight.SaveValue(); 230 aBtnDown.SaveValue(); 231 232 // Start inside 233 pItem = GetItem( rAttrs, SDRATTR_TEXT_ANISTARTINSIDE ); 234 if( !pItem ) 235 pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANISTARTINSIDE ); 236 if( pItem ) 237 { 238 aTsbStartInside.EnableTriState( sal_False ); 239 sal_Bool bValue = ( ( const SdrTextAniStartInsideItem* )pItem )->GetValue(); 240 if( bValue ) 241 aTsbStartInside.SetState( STATE_CHECK ); 242 else 243 aTsbStartInside.SetState( STATE_NOCHECK ); 244 } 245 else 246 aTsbStartInside.SetState( STATE_DONTKNOW ); 247 aTsbStartInside.SaveValue(); 248 249 // Stop inside 250 pItem = GetItem( rAttrs, SDRATTR_TEXT_ANISTOPINSIDE ); 251 if( !pItem ) 252 pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANISTOPINSIDE ); 253 if( pItem ) 254 { 255 aTsbStopInside.EnableTriState( sal_False ); 256 sal_Bool bValue = ( ( const SdrTextAniStopInsideItem* )pItem )->GetValue(); 257 if( bValue ) 258 aTsbStopInside.SetState( STATE_CHECK ); 259 else 260 aTsbStopInside.SetState( STATE_NOCHECK ); 261 } 262 else 263 aTsbStopInside.SetState( STATE_DONTKNOW ); 264 aTsbStopInside.SaveValue(); 265 266 // Anzahl 267 pItem = GetItem( rAttrs, SDRATTR_TEXT_ANICOUNT ); 268 if( !pItem ) 269 pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANICOUNT ); 270 if( pItem ) 271 { 272 aTsbEndless.EnableTriState( sal_False ); 273 long nValue = (long) ( ( const SdrTextAniCountItem* )pItem )->GetValue(); 274 aNumFldCount.SetValue( nValue ); 275 if( nValue == 0 ) 276 { 277 if( eAniKind == SDRTEXTANI_SLIDE ) 278 { 279 aTsbEndless.SetState( STATE_NOCHECK ); 280 aTsbEndless.Enable( sal_False ); 281 } 282 else 283 { 284 aTsbEndless.SetState( STATE_CHECK ); 285 aNumFldCount.SetEmptyFieldValue(); 286 } 287 } 288 else 289 aTsbEndless.SetState( STATE_NOCHECK ); 290 } 291 else 292 { 293 aNumFldCount.SetEmptyFieldValue(); 294 aTsbEndless.SetState( STATE_DONTKNOW ); 295 } 296 aTsbEndless.SaveValue(); 297 aNumFldCount.SaveValue(); 298 299 // Verzoegerung 300 pItem = GetItem( rAttrs, SDRATTR_TEXT_ANIDELAY ); 301 if( !pItem ) 302 pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIDELAY ); 303 if( pItem ) 304 { 305 aTsbAuto.EnableTriState( sal_False ); 306 long nValue = (long) ( ( const SdrTextAniDelayItem* )pItem )->GetValue(); 307 aMtrFldDelay.SetValue( nValue ); 308 if( nValue == 0 ) 309 { 310 aTsbAuto.SetState( STATE_CHECK ); 311 aMtrFldDelay.SetEmptyFieldValue(); 312 } 313 else 314 aTsbAuto.SetState( STATE_NOCHECK ); 315 } 316 else 317 { 318 aMtrFldDelay.SetEmptyFieldValue(); 319 aTsbAuto.SetState( STATE_DONTKNOW ); 320 } 321 aTsbAuto.SaveValue(); 322 aMtrFldDelay.SaveValue(); 323 324 // Schrittweite 325 pItem = GetItem( rAttrs, SDRATTR_TEXT_ANIAMOUNT ); 326 if( !pItem ) 327 pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIAMOUNT ); 328 if( pItem ) 329 { 330 aTsbPixel.EnableTriState( sal_False ); 331 long nValue = (long) ( ( const SdrTextAniAmountItem* )pItem )->GetValue(); 332 if( nValue <= 0 ) 333 { 334 aTsbPixel.SetState( STATE_CHECK ); 335 nValue = -nValue; 336 if( nValue == 0 ) 337 nValue++; 338 aMtrFldAmount.SetUnit( FUNIT_CUSTOM ); 339 aMtrFldAmount.SetDecimalDigits( 0 ); 340 341 aMtrFldAmount.SetSpinSize( 1 ); 342 aMtrFldAmount.SetMin( 1 ); 343 aMtrFldAmount.SetFirst( 1 ); 344 aMtrFldAmount.SetMax( 100 ); 345 aMtrFldAmount.SetLast( 100 ); 346 347 aMtrFldAmount.SetValue( nValue ); 348 } 349 else 350 { 351 aTsbPixel.SetState( STATE_NOCHECK ); 352 aMtrFldAmount.SetUnit( eFUnit ); 353 aMtrFldAmount.SetDecimalDigits( 2 ); 354 355 aMtrFldAmount.SetSpinSize( 10 ); 356 aMtrFldAmount.SetMin( 1 ); 357 aMtrFldAmount.SetFirst( 1 ); 358 aMtrFldAmount.SetMax( 10000 ); 359 aMtrFldAmount.SetLast( 10000 ); 360 361 SetMetricValue( aMtrFldAmount, nValue, eUnit ); 362 } 363 } 364 else 365 { 366 aMtrFldAmount.Disable(); 367 aMtrFldAmount.SetEmptyFieldValue(); 368 aTsbPixel.SetState( STATE_DONTKNOW ); 369 } 370 aTsbPixel.SaveValue(); 371 aMtrFldAmount.SaveValue(); 372 373 374 SelectEffectHdl_Impl( NULL ); 375 ClickEndlessHdl_Impl( NULL ); 376 ClickAutoHdl_Impl( NULL ); 377 //ClickPixelHdl_Impl( NULL ); 378 } 379 380 /************************************************************************* 381 |* 382 |* Fuellt uebergebenen Item-Set mit Dialogbox-Attributen 383 |* 384 \************************************************************************/ 385 386 sal_Bool SvxTextAnimationPage::FillItemSet( SfxItemSet& rAttrs) 387 { 388 sal_Bool bModified = sal_False; 389 sal_uInt16 nPos; 390 TriState eState; 391 392 // Animationstyp 393 nPos = aLbEffect.GetSelectEntryPos(); 394 if( nPos != LISTBOX_ENTRY_NOTFOUND && 395 nPos != aLbEffect.GetSavedValue() ) 396 { 397 rAttrs.Put( SdrTextAniKindItem( (SdrTextAniKind) nPos ) ); 398 bModified = sal_True; 399 } 400 401 // Animationsrichtung 402 if( aBtnUp.GetSavedValue() != aBtnUp.IsChecked() || 403 aBtnLeft.GetSavedValue() != aBtnLeft.IsChecked() || 404 aBtnRight.GetSavedValue() != aBtnRight.IsChecked() || 405 aBtnDown.GetSavedValue() != aBtnDown.IsChecked() ) 406 { 407 SdrTextAniDirection eValue = (SdrTextAniDirection) GetSelectedDirection(); 408 rAttrs.Put( SdrTextAniDirectionItem( eValue ) ); 409 bModified = sal_True; 410 } 411 412 // Start inside 413 eState = aTsbStartInside.GetState(); 414 if( eState != aTsbStartInside.GetSavedValue() ) 415 { 416 rAttrs.Put( SdrTextAniStartInsideItem( (sal_Bool) STATE_CHECK == eState ) ); 417 bModified = sal_True; 418 } 419 420 // Stop inside 421 eState = aTsbStopInside.GetState(); 422 if( eState != aTsbStopInside.GetSavedValue() ) 423 { 424 rAttrs.Put( SdrTextAniStopInsideItem( (sal_Bool) STATE_CHECK == eState ) ); 425 bModified = sal_True; 426 } 427 428 // Anzahl 429 eState = aTsbEndless.GetState(); 430 String aStr = aNumFldCount.GetText(); 431 if( eState != aTsbEndless.GetSavedValue() || 432 aStr != aNumFldCount.GetSavedValue() ) 433 { 434 sal_Int64 nValue = 0; 435 if( eState == STATE_CHECK /*#89844#*/ && aTsbEndless.IsEnabled()) 436 bModified = sal_True; 437 else 438 { 439 if( aStr != aNumFldCount.GetSavedValue() ) 440 { 441 nValue = aNumFldCount.GetValue(); 442 bModified = sal_True; 443 } 444 } 445 if( bModified ) 446 rAttrs.Put( SdrTextAniCountItem( (sal_uInt16) nValue ) ); 447 } 448 449 // Verzoegerung 450 eState = aTsbAuto.GetState(); 451 aStr = aMtrFldDelay.GetText(); 452 if( eState != aTsbAuto.GetSavedValue() || 453 aStr != aMtrFldDelay.GetSavedValue() ) 454 { 455 sal_Int64 nValue = 0; 456 if( eState == STATE_CHECK ) 457 bModified = sal_True; 458 else 459 { 460 if( aStr != aMtrFldDelay.GetSavedValue() ) 461 { 462 nValue = aMtrFldDelay.GetValue(); 463 bModified = sal_True; 464 } 465 } 466 if( bModified ) 467 rAttrs.Put( SdrTextAniDelayItem( (sal_uInt16) nValue ) ); 468 } 469 470 // Schrittweite 471 eState = aTsbPixel.GetState(); 472 aStr = aMtrFldAmount.GetText(); 473 if( eState != aTsbPixel.GetSavedValue() || 474 aStr != aMtrFldAmount.GetSavedValue() ) 475 { 476 sal_Int64 nValue = 0; 477 if( eState == STATE_CHECK ) 478 { 479 nValue = aMtrFldAmount.GetValue(); 480 nValue = -nValue; 481 } 482 else 483 { 484 nValue = GetCoreValue( aMtrFldAmount, eUnit ); 485 } 486 rAttrs.Put( SdrTextAniAmountItem( (sal_Int16) nValue ) ); 487 488 bModified = sal_True; 489 } 490 491 return( bModified ); 492 } 493 494 /************************************************************************* 495 |* 496 |* 497 |* 498 \************************************************************************/ 499 500 void SvxTextAnimationPage::Construct() 501 { 502 } 503 504 /************************************************************************* 505 |* 506 |* 507 |* 508 \************************************************************************/ 509 510 sal_uInt16* SvxTextAnimationPage::GetRanges() 511 { 512 return( pRanges ); 513 } 514 515 /************************************************************************* 516 |* 517 |* Erzeugt die Seite 518 |* 519 \************************************************************************/ 520 521 SfxTabPage* SvxTextAnimationPage::Create( Window* pWindow, 522 const SfxItemSet& rAttrs ) 523 { 524 return( new SvxTextAnimationPage( pWindow, rAttrs ) ); 525 } 526 527 /************************************************************************* 528 |* 529 |* 530 |* 531 \************************************************************************/ 532 533 IMPL_LINK( SvxTextAnimationPage, SelectEffectHdl_Impl, void *, EMPTYARG ) 534 { 535 sal_uInt16 nPos = aLbEffect.GetSelectEntryPos(); 536 if( nPos != LISTBOX_ENTRY_NOTFOUND ) 537 { 538 eAniKind = (SdrTextAniKind) nPos; 539 switch( eAniKind ) 540 { 541 case SDRTEXTANI_NONE: 542 { 543 aFtDirection.Disable(); 544 aBtnUp.Disable(); 545 aBtnLeft.Disable(); 546 aBtnRight.Disable(); 547 aBtnDown.Disable(); 548 aTsbStartInside.Disable(); 549 aTsbStopInside.Disable(); 550 551 aTsbEndless.Disable(); 552 aNumFldCount.Disable(); 553 aFtCount.Disable(); 554 555 aTsbAuto.Disable(); 556 aMtrFldDelay.Disable(); 557 aFtDelay.Disable(); 558 559 aTsbPixel.Disable(); 560 aMtrFldAmount.Disable(); 561 aFtAmount.Disable(); 562 } 563 break; 564 565 case SDRTEXTANI_BLINK: 566 case SDRTEXTANI_SCROLL: 567 case SDRTEXTANI_ALTERNATE: 568 case SDRTEXTANI_SLIDE: 569 { 570 if( eAniKind == SDRTEXTANI_SLIDE ) 571 { 572 aTsbStartInside.Disable(); 573 aTsbStopInside.Disable(); 574 575 aTsbEndless.Disable(); 576 aNumFldCount.Enable(); 577 aNumFldCount.SetValue( aNumFldCount.GetValue() ); 578 } 579 else 580 { 581 aTsbStartInside.Enable(); 582 aTsbStopInside.Enable(); 583 584 aTsbEndless.Enable(); 585 ClickEndlessHdl_Impl( NULL ); 586 } 587 aFtCount.Enable(); 588 589 aTsbAuto.Enable(); 590 aFtDelay.Enable(); 591 ClickAutoHdl_Impl( NULL ); 592 593 if( eAniKind == SDRTEXTANI_BLINK ) 594 { 595 aFtDirection.Disable(); 596 aBtnUp.Disable(); 597 aBtnLeft.Disable(); 598 aBtnRight.Disable(); 599 aBtnDown.Disable(); 600 601 aTsbPixel.Disable(); 602 aMtrFldAmount.Disable(); 603 aFtAmount.Disable(); 604 } 605 else 606 { 607 aFtDirection.Enable(); 608 aBtnUp.Enable(); 609 aBtnLeft.Enable(); 610 aBtnRight.Enable(); 611 aBtnDown.Enable(); 612 613 aTsbPixel.Enable(); 614 aMtrFldAmount.Enable(); 615 aFtAmount.Enable(); 616 } 617 } 618 break; 619 } 620 621 } 622 return( 0L ); 623 } 624 625 /************************************************************************* 626 |* 627 |* 628 |* 629 \************************************************************************/ 630 631 IMPL_LINK( SvxTextAnimationPage, ClickEndlessHdl_Impl, void *, EMPTYARG ) 632 { 633 634 if( eAniKind != SDRTEXTANI_SLIDE ) 635 { 636 TriState eState = aTsbEndless.GetState(); 637 if( eState != STATE_NOCHECK ) 638 { 639 aNumFldCount.Disable(); 640 aNumFldCount.SetEmptyFieldValue(); 641 } 642 else 643 { 644 aNumFldCount.Enable(); 645 aNumFldCount.SetValue( aNumFldCount.GetValue() ); 646 } 647 } 648 return( 0L ); 649 } 650 651 /************************************************************************* 652 |* 653 |* 654 |* 655 \************************************************************************/ 656 657 IMPL_LINK( SvxTextAnimationPage, ClickAutoHdl_Impl, void *, EMPTYARG ) 658 { 659 TriState eState = aTsbAuto.GetState(); 660 if( eState != STATE_NOCHECK ) 661 { 662 aMtrFldDelay.Disable(); 663 aMtrFldDelay.SetEmptyFieldValue(); 664 } 665 else 666 { 667 aMtrFldDelay.Enable(); 668 aMtrFldDelay.SetValue( aMtrFldDelay.GetValue() ); 669 } 670 671 return( 0L ); 672 } 673 674 /************************************************************************* 675 |* 676 |* 677 |* 678 \************************************************************************/ 679 680 IMPL_LINK( SvxTextAnimationPage, ClickPixelHdl_Impl, void *, EMPTYARG ) 681 { 682 TriState eState = aTsbPixel.GetState(); 683 if( eState == STATE_CHECK ) 684 { 685 sal_Int64 nValue = aMtrFldAmount.GetValue() / 10; 686 aMtrFldAmount.Enable(); 687 aMtrFldAmount.SetUnit( FUNIT_CUSTOM ); 688 //SetFieldUnit( aMtrFldAmount, FUNIT_CUSTOM ); 689 aMtrFldAmount.SetDecimalDigits( 0 ); 690 691 aMtrFldAmount.SetSpinSize( 1 ); 692 aMtrFldAmount.SetMin( 1 ); 693 aMtrFldAmount.SetFirst( 1 ); 694 aMtrFldAmount.SetMax( 100 ); 695 aMtrFldAmount.SetLast( 100 ); 696 697 aMtrFldAmount.SetValue( nValue ); 698 } 699 else if( eState == STATE_NOCHECK ) 700 { 701 sal_Int64 nValue = aMtrFldAmount.GetValue() * 10; 702 aMtrFldAmount.Enable(); 703 aMtrFldAmount.SetUnit( eFUnit ); 704 //SetFieldUnit( aMtrFldAmount, eFUnit ); 705 aMtrFldAmount.SetDecimalDigits( 2 ); 706 707 aMtrFldAmount.SetSpinSize( 10 ); 708 aMtrFldAmount.SetMin( 1 ); 709 aMtrFldAmount.SetFirst( 1 ); 710 aMtrFldAmount.SetMax( 10000 ); 711 aMtrFldAmount.SetLast( 10000 ); 712 713 aMtrFldAmount.SetValue( nValue ); 714 } 715 716 return( 0L ); 717 } 718 719 /************************************************************************* 720 |* 721 |* 722 |* 723 \************************************************************************/ 724 725 IMPL_LINK( SvxTextAnimationPage, ClickDirectionHdl_Impl, ImageButton *, pBtn ) 726 { 727 aBtnUp.Check( pBtn == &aBtnUp ); 728 aBtnLeft.Check( pBtn == &aBtnLeft ); 729 aBtnRight.Check( pBtn == &aBtnRight ); 730 aBtnDown.Check( pBtn == &aBtnDown ); 731 732 return( 0L ); 733 } 734 735 /************************************************************************* 736 |* 737 |* 738 |* 739 \************************************************************************/ 740 741 void SvxTextAnimationPage::SelectDirection( SdrTextAniDirection nValue ) 742 { 743 aBtnUp.Check( nValue == SDRTEXTANI_UP ); 744 aBtnLeft.Check( nValue == SDRTEXTANI_LEFT ); 745 aBtnRight.Check( nValue == SDRTEXTANI_RIGHT ); 746 aBtnDown.Check( nValue == SDRTEXTANI_DOWN ); 747 } 748 749 /************************************************************************* 750 |* 751 |* 752 |* 753 \************************************************************************/ 754 755 sal_uInt16 SvxTextAnimationPage::GetSelectedDirection() 756 { 757 sal_uInt16 nValue = 0; 758 759 if( aBtnUp.IsChecked() ) 760 nValue = SDRTEXTANI_UP; 761 else if( aBtnLeft.IsChecked() ) 762 nValue = SDRTEXTANI_LEFT; 763 else if( aBtnRight.IsChecked() ) 764 nValue = SDRTEXTANI_RIGHT; 765 else if( aBtnDown.IsChecked() ) 766 nValue = SDRTEXTANI_DOWN; 767 768 return( nValue ); 769 } 770 771 772