summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2005-10-11 07:45:15 +0000
committerOliver Bolte <obo@openoffice.org>2005-10-11 07:45:15 +0000
commitc6b0c7feac2d36a651703202cc187439d1f57007 (patch)
tree15cbf0d946af8d4895063134ed3700d3dc83c471
parent07598784a296b0cb9139e99a8cb4ad6085c678fe (diff)
INTEGRATION: CWS presfixes08 (1.4.10); FILE MERGED
2005/08/08 11:14:37 dbo 1.4.10.1: #i45197# end() Issue number: Submitted by: Reviewed by:
-rw-r--r--slideshow/source/engine/animationnodes/setactivity.hxx236
1 files changed, 124 insertions, 112 deletions
diff --git a/slideshow/source/engine/animationnodes/setactivity.hxx b/slideshow/source/engine/animationnodes/setactivity.hxx
index 58c70c04b565..4bc71fcd60e7 100644
--- a/slideshow/source/engine/animationnodes/setactivity.hxx
+++ b/slideshow/source/engine/animationnodes/setactivity.hxx
@@ -4,9 +4,9 @@
*
* $RCSfile: setactivity.hxx,v $
*
- * $Revision: 1.5 $
+ * $Revision: 1.6 $
*
- * last change: $Author: rt $ $Date: 2005-09-07 20:47:13 $
+ * last change: $Author: obo $ $Date: 2005-10-11 08:45:15 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -32,123 +32,135 @@
* MA 02111-1307 USA
*
************************************************************************/
-
-#ifndef _SLIDESHOW_SETACTIVITY_HXX
-#define _SLIDESHOW_SETACTIVITY_HXX
+#ifndef INCLUDED_SLIDESHOW_SETACTIVITY_HXX
+#define INCLUDED_SLIDESHOW_SETACTIVITY_HXX
// must be first
-#include <canvas/debug.hxx>
-#include <canvas/verbosetrace.hxx>
+#include "canvas/debug.hxx"
+#include "canvas/verbosetrace.hxx"
+#include "animationactivity.hxx"
+#include "animation.hxx"
+#include "animatableshape.hxx"
+#include "shapeattributelayer.hxx"
+#include "activitiesfactory.hxx"
+
+namespace presentation {
+namespace internal {
+
+/** Templated setter for animation values
+
+ This template class implements the AnimationActivity
+ interface, but only the perform() and
+ setAttributeLayer() methods are functional. To be used for set animations.
+
+ @see AnimationSetNode.
+*/
+template <class AnimationT>
+class SetActivity : public AnimationActivity
+{
+public:
+ typedef ::boost::shared_ptr< AnimationT > AnimationSharedPtrT;
+ typedef typename AnimationT::ValueType ValueT;
+
+ SetActivity( const ActivitiesFactory::CommonParameters& rParms,
+ const AnimationSharedPtrT& rAnimation,
+ const ValueT& rToValue )
+ : mpAnimation( rAnimation ),
+ mpShape(),
+ mpAttributeLayer(),
+ mpEndEvent( rParms.mpEndEvent ),
+ mrEventQueue( rParms.mrEventQueue ),
+ maToValue( rToValue ),
+ mbIsActive(true)
+ {
+ ENSURE_AND_THROW( mpAnimation.get(), "Invalid animation" );
+ }
-#include <animationactivity.hxx>
-#include <animation.hxx>
-#include <animatableshape.hxx>
-#include <shapeattributelayer.hxx>
-#include <activitiesfactory.hxx>
+ virtual void dispose()
+ {
+ mbIsActive = false;
+ mpAnimation.reset();
+ mpShape.reset();
+ mpAttributeLayer.reset();
+ // discharge end event:
+ if (mpEndEvent && mpEndEvent->isCharged())
+ mpEndEvent->dispose();
+ mpEndEvent.reset();
+ }
+ virtual double calcTimeLag() const
+ {
+ return 0.0;
+ }
-namespace presentation
-{
- namespace internal
+ virtual bool perform()
{
- /** Templated setter for animation values
-
- This template class implements the AnimationActivity
- interface, but only the perform() and
- setAttributeLayer() methods are functional. To be used
- for set animations, see AnimationSetNode.
- */
- template< class AnimationT > class SetActivity : public AnimationActivity
- {
- public:
- typedef ::boost::shared_ptr< AnimationT > AnimationSharedPtrT;
- typedef typename AnimationT::ValueType ValueT;
-
- SetActivity( const ActivitiesFactory::CommonParameters& rParms,
- const AnimationSharedPtrT& rAnimation,
- const ValueT& rToValue ) :
- mpAnimation( rAnimation ),
- mpShape(),
- mpAttributeLayer(),
- mpEndEvent( rParms.mpEndEvent ),
- mrEventQueue( rParms.mrEventQueue ),
- maToValue( rToValue )
- {
- ENSURE_AND_THROW( mpAnimation.get(),
- "SetActivity::SetActivity(): Invalid animation");
- }
-
- virtual void dispose()
- {
- mpAnimation.reset();
- mpShape.reset();
- mpAttributeLayer.reset();
- }
-
- virtual double calcTimeLag() const
- {
- return 0.0;
- }
-
- virtual bool perform()
- {
- if( !mpAnimation.get() || !mpAttributeLayer.get() || !mpShape.get() )
- return false;
-
- mpAnimation->start( mpShape,
- mpAttributeLayer );
- (*mpAnimation)(maToValue);
- mpAnimation->end();
-
- // fire end event, if any
- if( mpEndEvent.get() )
- mrEventQueue.addEvent( mpEndEvent );
-
- return false; // we're going inactive immediately
- }
-
- virtual bool isActive() const
- {
- return false;
- }
-
- virtual bool needsScreenUpdate() const
- {
- return true;
- }
-
- virtual void dequeued()
- {
- }
-
- virtual void setTargets( const AnimatableShapeSharedPtr& rShape,
- const ShapeAttributeLayerSharedPtr& rAttrLayer )
- {
- ENSURE_AND_THROW( rShape.get(),
- "SetActivity::setTargets(): Invalid shape" );
- ENSURE_AND_THROW( rAttrLayer.get(),
- "SetActivity::setTargets(): Invalid attribute layer" );
-
- mpShape = rShape;
- mpAttributeLayer = rAttrLayer;
- }
-
- private:
- AnimationSharedPtrT mpAnimation;
- AnimatableShapeSharedPtr mpShape;
- ShapeAttributeLayerSharedPtr mpAttributeLayer;
- EventSharedPtr mpEndEvent;
- EventQueue& mrEventQueue;
- ValueT maToValue;
- };
-
- template< class AnimationT > AnimationActivitySharedPtr makeSetActivity( const ActivitiesFactory::CommonParameters& rParms,
- const ::boost::shared_ptr< AnimationT >& rAnimation,
- const typename AnimationT::ValueType& rToValue )
- {
- return AnimationActivitySharedPtr( new SetActivity< AnimationT >(rParms,rAnimation,rToValue) );
+ if (! isActive())
+ return false;
+ // we're going inactive immediately:
+ mbIsActive = false;
+
+ if (mpAnimation && mpAttributeLayer && mpShape) {
+ mpAnimation->start( mpShape, mpAttributeLayer );
+ (*mpAnimation)(maToValue);
+ mpAnimation->end();
}
+ // fire end event, if any
+ if (mpEndEvent)
+ mrEventQueue.addEvent( mpEndEvent );
+
+ return false; // don't reinsert
}
+
+ virtual bool isActive() const
+ {
+ return mbIsActive;
+ }
+
+ virtual bool needsScreenUpdate() const
+ {
+ return true;
+ }
+
+ virtual void dequeued()
+ {
+ }
+
+ virtual void end()
+ {
+ perform();
+ }
+
+ virtual void setTargets( const AnimatableShapeSharedPtr& rShape,
+ const ShapeAttributeLayerSharedPtr& rAttrLayer )
+ {
+ ENSURE_AND_THROW( rShape.get(), "Invalid shape" );
+ ENSURE_AND_THROW( rAttrLayer.get(), "Invalid attribute layer" );
+
+ mpShape = rShape;
+ mpAttributeLayer = rAttrLayer;
+ }
+
+private:
+ AnimationSharedPtrT mpAnimation;
+ AnimatableShapeSharedPtr mpShape;
+ ShapeAttributeLayerSharedPtr mpAttributeLayer;
+ EventSharedPtr mpEndEvent;
+ EventQueue& mrEventQueue;
+ ValueT maToValue;
+ bool mbIsActive;
+};
+
+template <class AnimationT> AnimationActivitySharedPtr makeSetActivity(
+ const ActivitiesFactory::CommonParameters& rParms,
+ const ::boost::shared_ptr< AnimationT >& rAnimation,
+ const typename AnimationT::ValueType& rToValue )
+{
+ return AnimationActivitySharedPtr(
+ new SetActivity<AnimationT>(rParms,rAnimation,rToValue) );
}
-#endif /* _SLIDESHOW_SETACTIVITY_HXX */
+} // namespace internal
+} // namespace presentation
+
+#endif /* INCLUDED_SLIDESHOW_SETACTIVITY_HXX */