diff options
Diffstat (limited to 'slideshow/source/engine/shapes/drawinglayeranimation.cxx')
-rw-r--r-- | slideshow/source/engine/shapes/drawinglayeranimation.cxx | 328 |
1 files changed, 164 insertions, 164 deletions
diff --git a/slideshow/source/engine/shapes/drawinglayeranimation.cxx b/slideshow/source/engine/shapes/drawinglayeranimation.cxx index c2aa3a695765..0ddbfc70b414 100644 --- a/slideshow/source/engine/shapes/drawinglayeranimation.cxx +++ b/slideshow/source/engine/shapes/drawinglayeranimation.cxx @@ -347,178 +347,178 @@ sal_uInt32 ActivityImpl::GetStepWidthLogic() const void ActivityImpl::ImpForceScrollTextAnimNodes() { - if(maVector.empty()) - { - // prepare values - sal_uInt32 nLoopTime; - double fZeroLogic, fOneLogic, fInitLogic, fDistanceLogic; - double fZeroLogicAlternate = 0.0, fOneLogicAlternate = 0.0; - double fZeroRelative, fOneRelative, fInitRelative; + if(!maVector.empty()) + return; - if(ScrollHorizontal()) + // prepare values + sal_uInt32 nLoopTime; + double fZeroLogic, fOneLogic, fInitLogic, fDistanceLogic; + double fZeroLogicAlternate = 0.0, fOneLogicAlternate = 0.0; + double fZeroRelative, fOneRelative, fInitRelative; + + if(ScrollHorizontal()) + { + if(DoAlternate()) { - if(DoAlternate()) + if(maPaintRectangleLogic.GetWidth() > + maScrollRectangleLogic.GetWidth()) { - if(maPaintRectangleLogic.GetWidth() > - maScrollRectangleLogic.GetWidth()) - { - fZeroLogicAlternate = maScrollRectangleLogic.Right() - maPaintRectangleLogic.GetWidth(); - fOneLogicAlternate = maScrollRectangleLogic.Left(); - } - else - { - fZeroLogicAlternate = maScrollRectangleLogic.Left(); - fOneLogicAlternate = maScrollRectangleLogic.Right() - maPaintRectangleLogic.GetWidth(); - } + fZeroLogicAlternate = maScrollRectangleLogic.Right() - maPaintRectangleLogic.GetWidth(); + fOneLogicAlternate = maScrollRectangleLogic.Left(); + } + else + { + fZeroLogicAlternate = maScrollRectangleLogic.Left(); + fOneLogicAlternate = maScrollRectangleLogic.Right() - maPaintRectangleLogic.GetWidth(); } - - fZeroLogic = maScrollRectangleLogic.Left() - maPaintRectangleLogic.GetWidth(); - fOneLogic = maScrollRectangleLogic.Right(); - fInitLogic = maPaintRectangleLogic.Left(); } - else + + fZeroLogic = maScrollRectangleLogic.Left() - maPaintRectangleLogic.GetWidth(); + fOneLogic = maScrollRectangleLogic.Right(); + fInitLogic = maPaintRectangleLogic.Left(); + } + else + { + if(DoAlternate()) { - if(DoAlternate()) + if(maPaintRectangleLogic.GetHeight() > maScrollRectangleLogic.GetHeight()) { - if(maPaintRectangleLogic.GetHeight() > maScrollRectangleLogic.GetHeight()) - { - fZeroLogicAlternate = maScrollRectangleLogic.Bottom() - maPaintRectangleLogic.GetHeight(); - fOneLogicAlternate = maScrollRectangleLogic.Top(); - } - else - { - fZeroLogicAlternate = maScrollRectangleLogic.Top(); - fOneLogicAlternate = maScrollRectangleLogic.Bottom() - maPaintRectangleLogic.GetHeight(); - } + fZeroLogicAlternate = maScrollRectangleLogic.Bottom() - maPaintRectangleLogic.GetHeight(); + fOneLogicAlternate = maScrollRectangleLogic.Top(); + } + else + { + fZeroLogicAlternate = maScrollRectangleLogic.Top(); + fOneLogicAlternate = maScrollRectangleLogic.Bottom() - maPaintRectangleLogic.GetHeight(); } - - fZeroLogic = maScrollRectangleLogic.Top() - maPaintRectangleLogic.GetHeight(); - fOneLogic = maScrollRectangleLogic.Bottom(); - fInitLogic = maPaintRectangleLogic.Top(); } - fDistanceLogic = fOneLogic - fZeroLogic; - fInitRelative = (fInitLogic - fZeroLogic) / fDistanceLogic; + fZeroLogic = maScrollRectangleLogic.Top() - maPaintRectangleLogic.GetHeight(); + fOneLogic = maScrollRectangleLogic.Bottom(); + fInitLogic = maPaintRectangleLogic.Top(); + } - if(DoAlternate()) + fDistanceLogic = fOneLogic - fZeroLogic; + fInitRelative = (fInitLogic - fZeroLogic) / fDistanceLogic; + + if(DoAlternate()) + { + fZeroRelative = + (fZeroLogicAlternate - fZeroLogic) / fDistanceLogic; + fOneRelative = + (fOneLogicAlternate - fZeroLogic) / fDistanceLogic; + } + else + { + fZeroRelative = 0.0; + fOneRelative = 1.0; + } + + if(mbVisibleWhenStarted) + { + double fRelativeStartValue, fRelativeEndValue,fRelativeDistance; + + if(DoScrollForward()) { - fZeroRelative = - (fZeroLogicAlternate - fZeroLogic) / fDistanceLogic; - fOneRelative = - (fOneLogicAlternate - fZeroLogic) / fDistanceLogic; + fRelativeStartValue = fInitRelative; + fRelativeEndValue = fOneRelative; + fRelativeDistance = fRelativeEndValue - fRelativeStartValue; } else { - fZeroRelative = 0.0; - fOneRelative = 1.0; + fRelativeStartValue = fInitRelative; + fRelativeEndValue = fZeroRelative; + fRelativeDistance = fRelativeStartValue - fRelativeEndValue; } - if(mbVisibleWhenStarted) - { - double fRelativeStartValue, fRelativeEndValue,fRelativeDistance; + const double fNumberSteps = + (fRelativeDistance * fDistanceLogic) / GetStepWidthLogic(); + nLoopTime = FRound(fNumberSteps * mnFrequency); - if(DoScrollForward()) - { - fRelativeStartValue = fInitRelative; - fRelativeEndValue = fOneRelative; - fRelativeDistance = fRelativeEndValue - fRelativeStartValue; - } - else - { - fRelativeStartValue = fInitRelative; - fRelativeEndValue = fZeroRelative; - fRelativeDistance = fRelativeStartValue - fRelativeEndValue; - } + // init loop + ScrollTextAnimNode aInitNode( + nLoopTime, 1, + fRelativeStartValue, fRelativeEndValue, + mnFrequency, false); + maVector.push_back(aInitNode); + } - const double fNumberSteps = - (fRelativeDistance * fDistanceLogic) / GetStepWidthLogic(); - nLoopTime = FRound(fNumberSteps * mnFrequency); + // prepare main loop values + { + double fRelativeStartValue, fRelativeEndValue, fRelativeDistance; - // init loop - ScrollTextAnimNode aInitNode( - nLoopTime, 1, - fRelativeStartValue, fRelativeEndValue, - mnFrequency, false); - maVector.push_back(aInitNode); + if(DoScrollForward()) + { + fRelativeStartValue = fZeroRelative; + fRelativeEndValue = fOneRelative; + fRelativeDistance = fRelativeEndValue - fRelativeStartValue; } - - // prepare main loop values + else { - double fRelativeStartValue, fRelativeEndValue, fRelativeDistance; - - if(DoScrollForward()) - { - fRelativeStartValue = fZeroRelative; - fRelativeEndValue = fOneRelative; - fRelativeDistance = fRelativeEndValue - fRelativeStartValue; - } - else - { - fRelativeStartValue = fOneRelative; - fRelativeEndValue = fZeroRelative; - fRelativeDistance = fRelativeStartValue - fRelativeEndValue; - } + fRelativeStartValue = fOneRelative; + fRelativeEndValue = fZeroRelative; + fRelativeDistance = fRelativeStartValue - fRelativeEndValue; + } - const double fNumberSteps = - (fRelativeDistance * fDistanceLogic) / GetStepWidthLogic(); - nLoopTime = FRound(fNumberSteps * mnFrequency); + const double fNumberSteps = + (fRelativeDistance * fDistanceLogic) / GetStepWidthLogic(); + nLoopTime = FRound(fNumberSteps * mnFrequency); - if(0 == mnRepeat) - { - if(!DoScrollIn()) - { - // endless main loop - ScrollTextAnimNode aMainNode( - nLoopTime, 0, - fRelativeStartValue, fRelativeEndValue, - mnFrequency, DoAlternate()); - maVector.push_back(aMainNode); - } - } - else + if(0 == mnRepeat) + { + if(!DoScrollIn()) { - sal_uInt32 nNumRepeat(mnRepeat); - - if(DoAlternate() && (nNumRepeat + 1) % 2L) - nNumRepeat += 1; - - // ending main loop + // endless main loop ScrollTextAnimNode aMainNode( - nLoopTime, nNumRepeat, + nLoopTime, 0, fRelativeStartValue, fRelativeEndValue, mnFrequency, DoAlternate()); maVector.push_back(aMainNode); } } - - if(mbVisibleWhenStopped) + else { - double fRelativeStartValue, fRelativeEndValue, fRelativeDistance; - - if(DoScrollForward()) - { - fRelativeStartValue = fZeroRelative; - fRelativeEndValue = fInitRelative; - fRelativeDistance = fRelativeEndValue - fRelativeStartValue; - } - else - { - fRelativeStartValue = fOneRelative; - fRelativeEndValue = fInitRelative; - fRelativeDistance = fRelativeStartValue - fRelativeEndValue; - } + sal_uInt32 nNumRepeat(mnRepeat); - const double fNumberSteps = - (fRelativeDistance * fDistanceLogic) / GetStepWidthLogic(); - nLoopTime = FRound(fNumberSteps * mnFrequency); + if(DoAlternate() && (nNumRepeat + 1) % 2L) + nNumRepeat += 1; - // exit loop - ScrollTextAnimNode aExitNode( - nLoopTime, 1, - fRelativeStartValue, fRelativeEndValue, mnFrequency, false); - maVector.push_back(aExitNode); + // ending main loop + ScrollTextAnimNode aMainNode( + nLoopTime, nNumRepeat, + fRelativeStartValue, fRelativeEndValue, + mnFrequency, DoAlternate()); + maVector.push_back(aMainNode); } } + + if(!mbVisibleWhenStopped) + return; + + double fRelativeStartValue, fRelativeEndValue, fRelativeDistance; + + if(DoScrollForward()) + { + fRelativeStartValue = fZeroRelative; + fRelativeEndValue = fInitRelative; + fRelativeDistance = fRelativeEndValue - fRelativeStartValue; + } + else + { + fRelativeStartValue = fOneRelative; + fRelativeEndValue = fInitRelative; + fRelativeDistance = fRelativeStartValue - fRelativeEndValue; + } + + const double fNumberSteps = + (fRelativeDistance * fDistanceLogic) / GetStepWidthLogic(); + nLoopTime = FRound(fNumberSteps * mnFrequency); + + // exit loop + ScrollTextAnimNode aExitNode( + nLoopTime, 1, + fRelativeStartValue, fRelativeEndValue, mnFrequency, false); + maVector.push_back(aExitNode); } ScrollTextAnimNode* ActivityImpl::ImpGetScrollTextAnimNode( @@ -849,37 +849,37 @@ bool ActivityImpl::enableAnimations() void ActivityImpl::dispose() { - if( !mbIsDisposed ) - { - end(); - - // only remove subset here, since end() is called on slide end - // (and we must not spoil the slide preview bitmap with scroll - // text) - maShapeAttrLayer.reset(); - if( mpDrawShape ) - { - // TODO(Q3): Doing this manually, instead of using - // ShapeSubset. This is because of lifetime issues - // (ShapeSubset generates circular references to parent - // shape) - DrawShapeSharedPtr pParent( mpParentDrawShape.lock() ); - if( pParent ) - maContext.mpSubsettableShapeManager->revokeSubset( - pParent, - mpDrawShape ); - } + if( mbIsDisposed ) + return; - mpMetaFile.reset(); - mpDrawShape.reset(); - mpParentDrawShape.reset(); - mpWakeupEvent.reset(); - maContext.dispose(); - mbIsDisposed = true; + end(); - maContext.mpSubsettableShapeManager->removeIntrinsicAnimationHandler( - mpListener ); + // only remove subset here, since end() is called on slide end + // (and we must not spoil the slide preview bitmap with scroll + // text) + maShapeAttrLayer.reset(); + if( mpDrawShape ) + { + // TODO(Q3): Doing this manually, instead of using + // ShapeSubset. This is because of lifetime issues + // (ShapeSubset generates circular references to parent + // shape) + DrawShapeSharedPtr pParent( mpParentDrawShape.lock() ); + if( pParent ) + maContext.mpSubsettableShapeManager->revokeSubset( + pParent, + mpDrawShape ); } + + mpMetaFile.reset(); + mpDrawShape.reset(); + mpParentDrawShape.reset(); + mpWakeupEvent.reset(); + maContext.dispose(); + mbIsDisposed = true; + + maContext.mpSubsettableShapeManager->removeIntrinsicAnimationHandler( + mpListener ); } double ActivityImpl::calcTimeLag() const |