41 class IntrinsicAnimationActivity :
public Activity
62 IntrinsicAnimationActivity(
const SlideShowContext& rContext,
65 ::std::vector<double>&& rTimeouts,
66 ::std::size_t nNumLoops );
67 IntrinsicAnimationActivity(
const IntrinsicAnimationActivity&) =
delete;
68 IntrinsicAnimationActivity& operator=(
const IntrinsicAnimationActivity&) =
delete;
70 virtual void dispose()
override;
71 virtual double calcTimeLag()
const override;
72 virtual bool perform()
override;
73 virtual bool isActive()
const override;
74 virtual void dequeued()
override;
75 virtual void end()
override;
77 bool enableAnimations();
92 class IntrinsicAnimationListener :
public IntrinsicAnimationEventHandler
95 explicit IntrinsicAnimationListener( IntrinsicAnimationActivity& rActivity ) :
98 IntrinsicAnimationListener(
const IntrinsicAnimationListener&) =
delete;
99 IntrinsicAnimationListener& operator=(
const IntrinsicAnimationListener&) =
delete;
103 virtual bool enableAnimations()
override {
return mrActivity.enableAnimations(); }
104 virtual bool disableAnimations()
override {
mrActivity.end();
return true; }
111 IntrinsicAnimationActivity::IntrinsicAnimationActivity(
const SlideShowContext& rContext,
114 ::std::vector<double>&& rTimeouts,
115 ::std::size_t nNumLoops ) :
127 "IntrinsicAnimationActivity::IntrinsicAnimationActivity(): Invalid shape manager" );
129 "IntrinsicAnimationActivity::IntrinsicAnimationActivity(): Invalid draw shape" );
131 "IntrinsicAnimationActivity::IntrinsicAnimationActivity(): Invalid wakeup event" );
133 "IntrinsicAnimationActivity::IntrinsicAnimationActivity(): Empty timeout vector" );
135 maContext.mpSubsettableShapeManager->addIntrinsicAnimationHandler(
139 void IntrinsicAnimationActivity::dispose()
152 maContext.mpSubsettableShapeManager->removeIntrinsicAnimationHandler(
156 double IntrinsicAnimationActivity::calcTimeLag()
const
161 bool IntrinsicAnimationActivity::perform()
175 const ::std::size_t nNumFrames(
maTimeouts.size());
184 pDrawShape->setIntrinsicAnimationFrame(nNumFrames - 1);
185 maContext.mpSubsettableShapeManager->notifyShapeUpdate( pDrawShape );
192 ::std::size_t nNewIndex = 0;
194 pDrawShape->setIntrinsicAnimationFrame(
mnCurrIndex );
203 maContext.mpSubsettableShapeManager->notifyShapeUpdate( pDrawShape );
210 bool IntrinsicAnimationActivity::isActive()
const
215 void IntrinsicAnimationActivity::dequeued()
220 void IntrinsicAnimationActivity::end()
226 bool IntrinsicAnimationActivity::enableAnimations()
229 return maContext.mrActivitiesQueue.addActivity( std::dynamic_pointer_cast<Activity>(shared_from_this()) );
238 ::std::vector<double>&& rTimeouts,
239 sal_uInt32 nNumLoops)
241 return std::make_shared<IntrinsicAnimationActivity>(rContext,
244 std::move(rTimeouts),
#define ENSURE_OR_THROW(c, m)
::std::size_t mnCurrIndex
::std::vector< double > maTimeouts
IntrinsicAnimationEventHandlerSharedPtr mpListener
WakeupEventSharedPtr mpWakeupEvent
std::weak_ptr< DrawShape > mpDrawShape
::std::size_t mnLoopCount
IntrinsicAnimationActivity & mrActivity
SlideShowContext maContext
std::shared_ptr< T > make_shared(Args &&... args)
ActivitySharedPtr createIntrinsicAnimationActivity(const SlideShowContext &rContext, const DrawShapeSharedPtr &rDrawShape, const WakeupEventSharedPtr &rWakeupEvent, ::std::vector< double > &&rTimeouts, sal_uInt32 nNumLoops)
Create an IntrinsicAnimationActivity.
::std::shared_ptr< Activity > ActivitySharedPtr
::std::shared_ptr< DrawShape > DrawShapeSharedPtr
::std::shared_ptr< IntrinsicAnimationEventHandler > IntrinsicAnimationEventHandlerSharedPtr
::std::shared_ptr< WakeupEvent > WakeupEventSharedPtr
Common arguments for slideshow objects.