LCOV - code coverage report
Current view: top level - cui/source/tabpages - textanim.cxx (source / functions) Hit Total Coverage
Test: commit c8344322a7af75b84dd3ca8f78b05543a976dfd5 Lines: 0 333 0.0 %
Date: 2015-06-13 12:38:46 Functions: 0 23 0.0 %
Legend: Lines: hit not hit

          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 <sfx2/app.hxx>
      21             : #include <sfx2/module.hxx>
      22             : 
      23             : #include <cuires.hrc>
      24             : #include <svx/dialogs.hrc>
      25             : 
      26             : #include "textanim.hxx"
      27             : #include "textattr.hxx"
      28             : #include <dialmgr.hxx>
      29             : #include "svx/dlgutil.hxx"
      30             : 
      31             : const sal_uInt16 SvxTextAnimationPage::pRanges[] =
      32             : {
      33             :     SDRATTR_TEXT_ANIKIND,
      34             :     SDRATTR_TEXT_ANIAMOUNT,
      35             :     0
      36             : };
      37             : 
      38             : /*************************************************************************
      39             : |*
      40             : |* constructor of the tab dialog: adds pages to the dialog
      41             : |*
      42             : \************************************************************************/
      43             : 
      44           0 : SvxTextTabDialog::SvxTextTabDialog( vcl::Window* pParent,
      45             :                                 const SfxItemSet* pAttr,
      46             :                                 const SdrView* pSdrView ) :
      47             :         SfxTabDialog        ( pParent
      48             :                               ,"TextDialog"
      49             :                               ,"cui/ui/textdialog.ui"
      50             :                               , pAttr ),
      51           0 :         pView               ( pSdrView )
      52             : {
      53           0 :     m_nTextId = AddTabPage( "RID_SVXPAGE_TEXTATTR", SvxTextAttrPage::Create, 0);
      54           0 :     m_nTextAnimId = AddTabPage( "RID_SVXPAGE_TEXTANIMATION", SvxTextAnimationPage::Create, 0);
      55           0 : }
      56             : 
      57             : /*************************************************************************
      58             : |*
      59             : |* PageCreated()
      60             : |*
      61             : \************************************************************************/
      62             : 
      63           0 : void SvxTextTabDialog::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
      64             : {
      65           0 :     if (nId == m_nTextId)
      66             :         {
      67           0 :             static_cast<SvxTextAttrPage&>(rPage).SetView( pView );
      68           0 :             static_cast<SvxTextAttrPage&>(rPage).Construct();
      69             :         }
      70           0 : }
      71             : 
      72             : 
      73             : /*************************************************************************
      74             : |*
      75             : |* Page
      76             : |*
      77             : \************************************************************************/
      78             : 
      79           0 : SvxTextAnimationPage::SvxTextAnimationPage( vcl::Window* pWindow, const SfxItemSet& rInAttrs ) :
      80             :                 SfxTabPage      ( pWindow
      81             :                                   ,"TextAnimation"
      82             :                                   ,"cui/ui/textanimtabpage.ui"
      83             :                                   ,&rInAttrs ),
      84             :                 rOutAttrs       ( rInAttrs ),
      85           0 :                 eAniKind        ( SDRTEXTANI_NONE )
      86             : {
      87           0 :     get(m_pLbEffect, "LB_EFFECT");
      88           0 :     get(m_pBoxDirection,"boxDIRECTION");
      89           0 :     get(m_pBtnUp, "BTN_UP");
      90           0 :     get(m_pBtnLeft, "BTN_LEFT");
      91           0 :     get(m_pBtnRight, "BTN_RIGHT");
      92           0 :     get(m_pBtnDown, "BTN_DOWN");
      93             : 
      94           0 :     get(m_pFlProperties, "FL_PROPERTIES");
      95           0 :     get(m_pTsbStartInside, "TSB_START_INSIDE");
      96           0 :     get(m_pTsbStopInside, "TSB_STOP_INSIDE");
      97             : 
      98           0 :     get(m_pBoxCount, "boxCOUNT");
      99           0 :     get(m_pTsbEndless,"TSB_ENDLESS");
     100           0 :     get(m_pNumFldCount,"NUM_FLD_COUNT");
     101             : 
     102           0 :     get(m_pTsbPixel, "TSB_PIXEL");
     103           0 :     get(m_pMtrFldAmount, "MTR_FLD_AMOUNT");
     104             : 
     105           0 :     get(m_pTsbAuto, "TSB_AUTO");
     106           0 :     get(m_pMtrFldDelay, "MTR_FLD_DELAY");
     107             : 
     108           0 :     eFUnit = GetModuleFieldUnit( rInAttrs );
     109           0 :     SfxItemPool* pPool = rOutAttrs.GetPool();
     110             :     DBG_ASSERT( pPool, "Wo ist der Pool" );
     111           0 :     eUnit = pPool->GetMetric( SDRATTR_TEXT_LEFTDIST );
     112             : 
     113           0 :     m_pLbEffect->SetSelectHdl( LINK( this, SvxTextAnimationPage, SelectEffectHdl_Impl ) );
     114           0 :     m_pTsbEndless->SetClickHdl( LINK( this, SvxTextAnimationPage, ClickEndlessHdl_Impl ) );
     115           0 :     m_pTsbAuto->SetClickHdl( LINK( this, SvxTextAnimationPage, ClickAutoHdl_Impl ) );
     116           0 :     m_pTsbPixel->SetClickHdl( LINK( this, SvxTextAnimationPage, ClickPixelHdl_Impl ) );
     117             : 
     118           0 :     Link<> aLink( LINK( this, SvxTextAnimationPage, ClickDirectionHdl_Impl ) );
     119           0 :     m_pBtnUp->SetClickHdl( aLink );
     120           0 :     m_pBtnLeft->SetClickHdl( aLink );
     121           0 :     m_pBtnRight->SetClickHdl( aLink );
     122           0 :     m_pBtnDown->SetClickHdl( aLink );
     123           0 : }
     124             : 
     125           0 : SvxTextAnimationPage::~SvxTextAnimationPage()
     126             : {
     127           0 :     disposeOnce();
     128           0 : }
     129             : 
     130           0 : void SvxTextAnimationPage::dispose()
     131             : {
     132           0 :     m_pLbEffect.clear();
     133           0 :     m_pBoxDirection.clear();
     134           0 :     m_pBtnUp.clear();
     135           0 :     m_pBtnLeft.clear();
     136           0 :     m_pBtnRight.clear();
     137           0 :     m_pBtnDown.clear();
     138           0 :     m_pFlProperties.clear();
     139           0 :     m_pTsbStartInside.clear();
     140           0 :     m_pTsbStopInside.clear();
     141           0 :     m_pBoxCount.clear();
     142           0 :     m_pTsbEndless.clear();
     143           0 :     m_pNumFldCount.clear();
     144           0 :     m_pTsbPixel.clear();
     145           0 :     m_pMtrFldAmount.clear();
     146           0 :     m_pTsbAuto.clear();
     147           0 :     m_pMtrFldDelay.clear();
     148           0 :     SfxTabPage::dispose();
     149           0 : }
     150             : 
     151             : /*************************************************************************
     152             : |*
     153             : |* reads the passed item set
     154             : |*
     155             : \************************************************************************/
     156             : 
     157           0 : void SvxTextAnimationPage::Reset( const SfxItemSet* rAttrs )
     158             : {
     159           0 :     const SfxItemPool* pPool = rAttrs->GetPool();
     160             : 
     161             :     // animation type
     162           0 :     const SfxPoolItem* pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIKIND );
     163             : 
     164           0 :     if( !pItem )
     165           0 :         pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIKIND );
     166           0 :     if( pItem )
     167             :     {
     168           0 :         eAniKind = static_cast<const SdrTextAniKindItem*>(pItem)->GetValue();
     169           0 :         m_pLbEffect->SelectEntryPos( sal::static_int_cast< sal_Int32 >(eAniKind) );
     170             :     }
     171             :     else
     172           0 :         m_pLbEffect->SetNoSelection();
     173           0 :     m_pLbEffect->SaveValue();
     174             : 
     175             :     // animation direction
     176           0 :     pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIDIRECTION );
     177           0 :     if( !pItem )
     178           0 :         pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIDIRECTION );
     179           0 :     if( pItem )
     180             :     {
     181           0 :         SdrTextAniDirection eValue = static_cast<const SdrTextAniDirectionItem*>(pItem)->GetValue();
     182           0 :         SelectDirection( eValue );
     183             :     }
     184             :     else
     185             :     {
     186           0 :         m_pBtnUp->Check( false );
     187           0 :         m_pBtnLeft->Check( false );
     188           0 :         m_pBtnRight->Check( false );
     189           0 :         m_pBtnDown->Check( false );
     190             :     }
     191           0 :     m_pBtnUp->SaveValue();
     192           0 :     m_pBtnLeft->SaveValue();
     193           0 :     m_pBtnRight->SaveValue();
     194           0 :     m_pBtnDown->SaveValue();
     195             : 
     196             :     // Start inside
     197           0 :     pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANISTARTINSIDE );
     198           0 :     if( !pItem )
     199           0 :         pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANISTARTINSIDE );
     200           0 :     if( pItem )
     201             :     {
     202           0 :         m_pTsbStartInside->EnableTriState( false );
     203           0 :         bool bValue = static_cast<const SdrTextAniStartInsideItem*>(pItem)->GetValue();
     204           0 :         if( bValue )
     205           0 :             m_pTsbStartInside->SetState( TRISTATE_TRUE );
     206             :         else
     207           0 :             m_pTsbStartInside->SetState( TRISTATE_FALSE );
     208             :     }
     209             :     else
     210           0 :         m_pTsbStartInside->SetState( TRISTATE_INDET );
     211           0 :     m_pTsbStartInside->SaveValue();
     212             : 
     213             :     // Stop inside
     214           0 :     pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANISTOPINSIDE );
     215           0 :     if( !pItem )
     216           0 :         pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANISTOPINSIDE );
     217           0 :     if( pItem )
     218             :     {
     219           0 :         m_pTsbStopInside->EnableTriState( false );
     220           0 :         bool bValue = static_cast<const SdrTextAniStopInsideItem*>(pItem)->GetValue();
     221           0 :         if( bValue )
     222           0 :             m_pTsbStopInside->SetState( TRISTATE_TRUE );
     223             :         else
     224           0 :             m_pTsbStopInside->SetState( TRISTATE_FALSE );
     225             :     }
     226             :     else
     227           0 :         m_pTsbStopInside->SetState( TRISTATE_INDET );
     228           0 :     m_pTsbStopInside->SaveValue();
     229             : 
     230             :     // quantity
     231           0 :     pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANICOUNT );
     232           0 :     if( !pItem )
     233           0 :         pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANICOUNT );
     234           0 :     if( pItem )
     235             :     {
     236           0 :         m_pTsbEndless->EnableTriState( false );
     237           0 :         long nValue = (long) static_cast<const SdrTextAniCountItem*>(pItem)->GetValue();
     238           0 :         m_pNumFldCount->SetValue( nValue );
     239           0 :         if( nValue == 0 )
     240             :         {
     241           0 :             if( eAniKind == SDRTEXTANI_SLIDE )
     242             :             {
     243           0 :                 m_pTsbEndless->SetState( TRISTATE_FALSE );
     244           0 :                 m_pTsbEndless->Enable( false );
     245             :             }
     246             :             else
     247             :             {
     248           0 :                 m_pTsbEndless->SetState( TRISTATE_TRUE );
     249           0 :                 m_pNumFldCount->SetEmptyFieldValue();
     250             :             }
     251             :         }
     252             :         else
     253           0 :             m_pTsbEndless->SetState( TRISTATE_FALSE );
     254             :     }
     255             :     else
     256             :     {
     257           0 :         m_pNumFldCount->SetEmptyFieldValue();
     258           0 :         m_pTsbEndless->SetState( TRISTATE_INDET );
     259             :     }
     260           0 :     m_pTsbEndless->SaveValue();
     261           0 :     m_pNumFldCount->SaveValue();
     262             : 
     263             :     // delay
     264           0 :     pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIDELAY );
     265           0 :     if( !pItem )
     266           0 :         pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIDELAY );
     267           0 :     if( pItem )
     268             :     {
     269           0 :         m_pTsbAuto->EnableTriState( false );
     270           0 :         long nValue = (long) static_cast<const SdrTextAniDelayItem*>(pItem)->GetValue();
     271           0 :         m_pMtrFldDelay->SetValue( nValue );
     272           0 :         if( nValue == 0 )
     273             :         {
     274           0 :             m_pTsbAuto->SetState( TRISTATE_TRUE );
     275           0 :             m_pMtrFldDelay->SetEmptyFieldValue();
     276             :         }
     277             :         else
     278           0 :             m_pTsbAuto->SetState( TRISTATE_FALSE );
     279             :     }
     280             :     else
     281             :     {
     282           0 :         m_pMtrFldDelay->SetEmptyFieldValue();
     283           0 :         m_pTsbAuto->SetState( TRISTATE_INDET );
     284             :     }
     285           0 :     m_pTsbAuto->SaveValue();
     286           0 :     m_pMtrFldDelay->SaveValue();
     287             : 
     288             :     // step size
     289           0 :     pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIAMOUNT );
     290           0 :     if( !pItem )
     291           0 :         pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIAMOUNT );
     292           0 :     if( pItem )
     293             :     {
     294           0 :         m_pTsbPixel->EnableTriState( false );
     295           0 :         long nValue = (long) static_cast<const SdrTextAniAmountItem*>(pItem)->GetValue();
     296           0 :         if( nValue <= 0 )
     297             :         {
     298           0 :             m_pTsbPixel->SetState( TRISTATE_TRUE );
     299           0 :             nValue = -nValue;
     300           0 :             if( nValue == 0 )
     301           0 :                 nValue++;
     302           0 :             m_pMtrFldAmount->SetUnit( FUNIT_CUSTOM );
     303           0 :             m_pMtrFldAmount->SetDecimalDigits( 0 );
     304             : 
     305           0 :             m_pMtrFldAmount->SetSpinSize( 1 );
     306           0 :             m_pMtrFldAmount->SetMin( 1 );
     307           0 :             m_pMtrFldAmount->SetFirst( 1 );
     308           0 :             m_pMtrFldAmount->SetMax( 100 );
     309           0 :             m_pMtrFldAmount->SetLast( 100 );
     310             : 
     311           0 :             m_pMtrFldAmount->SetValue( nValue );
     312             :         }
     313             :         else
     314             :         {
     315           0 :             m_pTsbPixel->SetState( TRISTATE_FALSE );
     316           0 :             m_pMtrFldAmount->SetUnit( eFUnit );
     317           0 :             m_pMtrFldAmount->SetDecimalDigits( 2 );
     318             : 
     319           0 :             m_pMtrFldAmount->SetSpinSize( 10 );
     320           0 :             m_pMtrFldAmount->SetMin( 1 );
     321           0 :             m_pMtrFldAmount->SetFirst( 1 );
     322           0 :             m_pMtrFldAmount->SetMax( 10000 );
     323           0 :             m_pMtrFldAmount->SetLast( 10000 );
     324             : 
     325           0 :             SetMetricValue( *m_pMtrFldAmount, nValue, eUnit );
     326             :         }
     327             :     }
     328             :     else
     329             :     {
     330           0 :         m_pMtrFldAmount->Disable();
     331           0 :         m_pMtrFldAmount->SetEmptyFieldValue();
     332           0 :         m_pTsbPixel->SetState( TRISTATE_INDET );
     333             :     }
     334           0 :     m_pTsbPixel->SaveValue();
     335           0 :     m_pMtrFldAmount->SaveValue();
     336             : 
     337             : 
     338           0 :     SelectEffectHdl_Impl( NULL );
     339           0 :     ClickEndlessHdl_Impl( NULL );
     340           0 :     ClickAutoHdl_Impl( NULL );
     341             :     //ClickPixelHdl_Impl( NULL );
     342           0 : }
     343             : 
     344             : /*************************************************************************
     345             : |*
     346             : |* fills the passed item set with dialog box attributes
     347             : |*
     348             : \************************************************************************/
     349             : 
     350           0 : bool SvxTextAnimationPage::FillItemSet( SfxItemSet* rAttrs)
     351             : {
     352           0 :     bool bModified = false;
     353             :     sal_Int32 nPos;
     354             :     TriState eState;
     355             : 
     356             :     // animation type
     357           0 :     nPos = m_pLbEffect->GetSelectEntryPos();
     358           0 :     if( nPos != LISTBOX_ENTRY_NOTFOUND &&
     359           0 :         m_pLbEffect->IsValueChangedFromSaved() )
     360             :     {
     361           0 :         rAttrs->Put( SdrTextAniKindItem( (SdrTextAniKind) nPos ) );
     362           0 :         bModified = true;
     363             :     }
     364             : 
     365             :     // animation direction
     366           0 :     if( m_pBtnUp->IsValueChangedFromSaved() ||
     367           0 :         m_pBtnLeft->IsValueChangedFromSaved() ||
     368           0 :         m_pBtnRight->IsValueChangedFromSaved() ||
     369           0 :         m_pBtnDown->IsValueChangedFromSaved() )
     370             :     {
     371           0 :         SdrTextAniDirection eValue = (SdrTextAniDirection) GetSelectedDirection();
     372           0 :         rAttrs->Put( SdrTextAniDirectionItem( eValue ) );
     373           0 :         bModified = true;
     374             :     }
     375             : 
     376             :     // Start inside
     377           0 :     eState = m_pTsbStartInside->GetState();
     378           0 :     if( m_pTsbStartInside->IsValueChangedFromSaved() )
     379             :     {
     380           0 :         rAttrs->Put( SdrTextAniStartInsideItem( TRISTATE_TRUE == eState ) );
     381           0 :         bModified = true;
     382             :     }
     383             : 
     384             :     // Stop inside
     385           0 :     eState = m_pTsbStopInside->GetState();
     386           0 :     if( m_pTsbStopInside->IsValueChangedFromSaved() )
     387             :     {
     388           0 :         rAttrs->Put( SdrTextAniStopInsideItem( TRISTATE_TRUE == eState ) );
     389           0 :         bModified = true;
     390             :     }
     391             : 
     392             :     // quantity
     393           0 :     eState = m_pTsbEndless->GetState();
     394           0 :     OUString aStr = m_pNumFldCount->GetText();
     395           0 :     if( m_pTsbEndless->IsValueChangedFromSaved() ||
     396           0 :         m_pNumFldCount->IsValueChangedFromSaved() )
     397             :     {
     398           0 :         sal_Int64 nValue = 0;
     399           0 :         if( eState == TRISTATE_TRUE /*#89844#*/ && m_pTsbEndless->IsEnabled())
     400           0 :             bModified = true;
     401             :         else
     402             :         {
     403           0 :             if( m_pNumFldCount->IsValueChangedFromSaved() )
     404             :             {
     405           0 :                 nValue = m_pNumFldCount->GetValue();
     406           0 :                 bModified = true;
     407             :             }
     408             :         }
     409           0 :         if( bModified )
     410           0 :             rAttrs->Put( SdrTextAniCountItem( (sal_uInt16) nValue ) );
     411             :     }
     412             : 
     413             :     // delay
     414           0 :     eState = m_pTsbAuto->GetState();
     415           0 :     aStr = m_pMtrFldDelay->GetText();
     416           0 :     if( m_pTsbAuto->IsValueChangedFromSaved() ||
     417           0 :         m_pMtrFldDelay->IsValueChangedFromSaved() )
     418             :     {
     419           0 :         sal_Int64 nValue = 0;
     420           0 :         if( eState == TRISTATE_TRUE )
     421           0 :             bModified = true;
     422             :         else
     423             :         {
     424           0 :             if( m_pMtrFldDelay->IsValueChangedFromSaved() )
     425             :             {
     426           0 :                 nValue = m_pMtrFldDelay->GetValue();
     427           0 :                 bModified = true;
     428             :             }
     429             :         }
     430           0 :         if( bModified )
     431           0 :             rAttrs->Put( SdrTextAniDelayItem( (sal_uInt16) nValue ) );
     432             :     }
     433             : 
     434             :     // step size
     435           0 :     eState = m_pTsbPixel->GetState();
     436           0 :     aStr = m_pMtrFldAmount->GetText();
     437           0 :     if( m_pTsbPixel->IsValueChangedFromSaved() ||
     438           0 :         m_pMtrFldAmount->IsValueChangedFromSaved() )
     439             :     {
     440           0 :         sal_Int64 nValue = 0;
     441           0 :         if( eState == TRISTATE_TRUE )
     442             :         {
     443           0 :             nValue = m_pMtrFldAmount->GetValue();
     444           0 :             nValue = -nValue;
     445             :         }
     446             :         else
     447             :         {
     448           0 :             nValue = GetCoreValue( *m_pMtrFldAmount, eUnit );
     449             :         }
     450           0 :         rAttrs->Put( SdrTextAniAmountItem( (sal_Int16) nValue ) );
     451             : 
     452           0 :         bModified = true;
     453             :     }
     454             : 
     455           0 :     return bModified;
     456             : }
     457             : 
     458             : /*************************************************************************
     459             : |*
     460             : |* creates the page
     461             : |*
     462             : \************************************************************************/
     463             : 
     464           0 : VclPtr<SfxTabPage> SvxTextAnimationPage::Create( vcl::Window* pWindow,
     465             :                                                  const SfxItemSet* rAttrs )
     466             : {
     467           0 :     return VclPtr<SvxTextAnimationPage>::Create( pWindow, *rAttrs );
     468             : }
     469             : 
     470           0 : IMPL_LINK_NOARG(SvxTextAnimationPage, SelectEffectHdl_Impl)
     471             : {
     472           0 :     sal_Int32 nPos = m_pLbEffect->GetSelectEntryPos();
     473           0 :     if( nPos != LISTBOX_ENTRY_NOTFOUND )
     474             :     {
     475           0 :         eAniKind = (SdrTextAniKind) nPos;
     476           0 :         switch( eAniKind )
     477             :         {
     478             :             case SDRTEXTANI_NONE:
     479             :             {
     480           0 :                 m_pBoxDirection->Disable();
     481           0 :                 m_pFlProperties->Disable();
     482             :             }
     483           0 :             break;
     484             : 
     485             :             case SDRTEXTANI_BLINK:
     486             :             case SDRTEXTANI_SCROLL:
     487             :             case SDRTEXTANI_ALTERNATE:
     488             :             case SDRTEXTANI_SLIDE:
     489             :             {
     490           0 :                 m_pFlProperties->Enable();
     491           0 :                 if( eAniKind == SDRTEXTANI_SLIDE )
     492             :                 {
     493           0 :                     m_pTsbStartInside->Disable();
     494           0 :                     m_pTsbStopInside->Disable();
     495           0 :                     m_pTsbEndless->Disable();
     496           0 :                     m_pNumFldCount->Enable();
     497           0 :                     m_pNumFldCount->SetValue( m_pNumFldCount->GetValue() );
     498             :                 }
     499             :                 else
     500             :                 {
     501           0 :                     m_pTsbStartInside->Enable();
     502           0 :                     m_pTsbStopInside->Enable();
     503           0 :                     m_pTsbEndless->Enable();
     504           0 :                     ClickEndlessHdl_Impl( NULL );
     505             :                 }
     506             : 
     507           0 :                 m_pTsbAuto->Enable();
     508           0 :                 ClickAutoHdl_Impl( NULL );
     509             : 
     510           0 :                 if( eAniKind == SDRTEXTANI_BLINK )
     511             :                 {
     512           0 :                     m_pBoxDirection->Disable();
     513           0 :                     m_pBoxCount->Disable();
     514             :                 }
     515             :                 else
     516             :                 {
     517           0 :                     m_pBoxDirection->Enable();
     518           0 :                     m_pBoxCount->Enable();
     519             :                 }
     520             :             }
     521           0 :             break;
     522             :         }
     523             : 
     524             :     }
     525           0 :     return 0L;
     526             : }
     527             : 
     528           0 : IMPL_LINK_NOARG(SvxTextAnimationPage, ClickEndlessHdl_Impl)
     529             : {
     530             : 
     531           0 :     if( eAniKind != SDRTEXTANI_SLIDE )
     532             :     {
     533           0 :         TriState eState = m_pTsbEndless->GetState();
     534           0 :         if( eState != TRISTATE_FALSE )
     535             :         {
     536           0 :             m_pNumFldCount->Disable();
     537           0 :             m_pNumFldCount->SetEmptyFieldValue();
     538             :         }
     539             :         else
     540             :         {
     541           0 :             m_pNumFldCount->Enable();
     542           0 :             m_pNumFldCount->SetValue( m_pNumFldCount->GetValue() );
     543             :         }
     544             :     }
     545           0 :     return 0L;
     546             : }
     547             : 
     548           0 : IMPL_LINK_NOARG(SvxTextAnimationPage, ClickAutoHdl_Impl)
     549             : {
     550           0 :     TriState eState = m_pTsbAuto->GetState();
     551           0 :     if( eState != TRISTATE_FALSE )
     552             :     {
     553           0 :         m_pMtrFldDelay->Disable();
     554           0 :         m_pMtrFldDelay->SetEmptyFieldValue();
     555             :     }
     556             :     else
     557             :     {
     558           0 :         m_pMtrFldDelay->Enable();
     559           0 :         m_pMtrFldDelay->SetValue( m_pMtrFldDelay->GetValue() );
     560             :     }
     561             : 
     562           0 :     return 0L;
     563             : }
     564             : 
     565           0 : IMPL_LINK_NOARG(SvxTextAnimationPage, ClickPixelHdl_Impl)
     566             : {
     567           0 :     TriState eState = m_pTsbPixel->GetState();
     568           0 :     if( eState == TRISTATE_TRUE )
     569             :     {
     570           0 :         sal_Int64 nValue = m_pMtrFldAmount->GetValue() / 10;
     571           0 :         m_pMtrFldAmount->Enable();
     572           0 :         m_pMtrFldAmount->SetUnit( FUNIT_CUSTOM );
     573             :         //SetFieldUnit( aMtrFldAmount, FUNIT_CUSTOM );
     574           0 :         m_pMtrFldAmount->SetDecimalDigits( 0 );
     575             : 
     576           0 :         m_pMtrFldAmount->SetSpinSize( 1 );
     577           0 :         m_pMtrFldAmount->SetMin( 1 );
     578           0 :         m_pMtrFldAmount->SetFirst( 1 );
     579           0 :         m_pMtrFldAmount->SetMax( 100 );
     580           0 :         m_pMtrFldAmount->SetLast( 100 );
     581             : 
     582           0 :         m_pMtrFldAmount->SetValue( nValue );
     583             :     }
     584           0 :     else if( eState == TRISTATE_FALSE )
     585             :     {
     586           0 :         sal_Int64 nValue = m_pMtrFldAmount->GetValue() * 10;
     587           0 :         m_pMtrFldAmount->Enable();
     588           0 :         m_pMtrFldAmount->SetUnit( eFUnit );
     589             :         //SetFieldUnit( aMtrFldAmount, eFUnit );
     590           0 :         m_pMtrFldAmount->SetDecimalDigits( 2 );
     591             : 
     592           0 :         m_pMtrFldAmount->SetSpinSize( 10 );
     593           0 :         m_pMtrFldAmount->SetMin( 1 );
     594           0 :         m_pMtrFldAmount->SetFirst( 1 );
     595           0 :         m_pMtrFldAmount->SetMax( 10000 );
     596           0 :         m_pMtrFldAmount->SetLast( 10000 );
     597             : 
     598           0 :         m_pMtrFldAmount->SetValue( nValue );
     599             :     }
     600             : 
     601           0 :     return 0L;
     602             : }
     603             : 
     604           0 : IMPL_LINK( SvxTextAnimationPage, ClickDirectionHdl_Impl, ImageButton *, pBtn )
     605             : {
     606           0 :     m_pBtnUp->Check( pBtn == m_pBtnUp );
     607           0 :     m_pBtnLeft->Check( pBtn == m_pBtnLeft );
     608           0 :     m_pBtnRight->Check( pBtn == m_pBtnRight );
     609           0 :     m_pBtnDown->Check( pBtn == m_pBtnDown );
     610             : 
     611           0 :     return 0L;
     612             : }
     613             : 
     614           0 : void SvxTextAnimationPage::SelectDirection( SdrTextAniDirection nValue )
     615             : {
     616           0 :     m_pBtnUp->Check( nValue == SDRTEXTANI_UP );
     617           0 :     m_pBtnLeft->Check( nValue == SDRTEXTANI_LEFT );
     618           0 :     m_pBtnRight->Check( nValue == SDRTEXTANI_RIGHT );
     619           0 :     m_pBtnDown->Check( nValue == SDRTEXTANI_DOWN );
     620           0 : }
     621             : 
     622           0 : sal_uInt16 SvxTextAnimationPage::GetSelectedDirection()
     623             : {
     624           0 :     sal_uInt16 nValue = 0;
     625             : 
     626           0 :     if( m_pBtnUp->IsChecked() )
     627           0 :         nValue = SDRTEXTANI_UP;
     628           0 :     else if( m_pBtnLeft->IsChecked() )
     629           0 :         nValue = SDRTEXTANI_LEFT;
     630           0 :     else if( m_pBtnRight->IsChecked() )
     631           0 :         nValue = SDRTEXTANI_RIGHT;
     632           0 :     else if( m_pBtnDown->IsChecked() )
     633           0 :         nValue = SDRTEXTANI_DOWN;
     634             : 
     635           0 :     return nValue;
     636           0 : }
     637             : 
     638             : 
     639             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.11