incubator-ooo-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject [Bug 121164] AnimatedImages : StepTime is ignored
Date Fri, 05 Oct 2012 10:46:08 GMT
https://issues.apache.org/ooo/show_bug.cgi?id=121164

--- Comment #3 from Ariel Constenla-Haile <arielch@apache.org> ---
It turns out that the control peer actually calls the respective VCL class
(Throbber) to change the step time:

AnimatedImagesPeer::setProperty()

case BASEPROPERTY_STEP_TIME:
{
    sal_Int32 nStepTime( 0 );
    if ( i_value >>= nStepTime )
         pThrobber->setStepTime( nStepTime );
    break;
}

Unfortunately, Throbber::setStepTime() simply stores that value in a member
variable 

void  setStepTime( sal_Int32 nStepTime )  { mnStepTime = nStepTime; }

that member variable is never used to actually set the AutoTimer timeout: the
timeout is only set on the Throbber constructor, where the timeout value is set
to a default value of 100:

Throbber::Throbber( Window* i_parentWindow, WinBits i_style, const ImageSet
i_imageSet )
    :ImageControl( i_parentWindow, i_style )
    ,mbRepeat( sal_True )
    ,mnStepTime( 100 )
    ,mnCurStep( 0 )
    ,mnStepCount( 0 )
    ,meImageSet( i_imageSet )
{
    maWaitTimer.SetTimeout( mnStepTime );
    maWaitTimer.SetTimeoutHdl( LINK( this, Throbber, TimeOutHdl ) );

    SetScaleMode( ImageScaleMode::None );
    initImages();
}

Possible solutions:

a) make Throbber::setStepTime() update the AutoTimer's timeout, but what if the
Throbber is running (== the timer is active)?
b) reset the AutoTimer's timeout in Throbber::start(), that is, when the
animation is started; this will have the effect that setting the step time
while the animation is running will only take effect after it restarts
c) ....

-- 
You are receiving this mail because:
You are the assignee for the bug.

Mime
View raw message