diff options
author | Oliver Bolte <obo@openoffice.org> | 2005-10-11 07:46:59 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2005-10-11 07:46:59 +0000 |
commit | 7dc0532d5d9ea6d3f80be364a652944b18eddb77 (patch) | |
tree | be116346d45062a91d8f167a4dac7f05941a96d0 /slideshow | |
parent | cc753a9202643ae8252d8cb233b5c1bf854851fc (diff) |
INTEGRATION: CWS presfixes08 (1.2.36); FILE MERGED
2005/08/08 09:39:29 dbo 1.2.36.1: #i45197#
added end()
boost::optional
Issue number:
Submitted by:
Reviewed by:
Diffstat (limited to 'slideshow')
-rw-r--r-- | slideshow/source/inc/activitiesfactory.hxx | 613 |
1 files changed, 302 insertions, 311 deletions
diff --git a/slideshow/source/inc/activitiesfactory.hxx b/slideshow/source/inc/activitiesfactory.hxx index 13b98fb4a2c3..a7fdfca57558 100644 --- a/slideshow/source/inc/activitiesfactory.hxx +++ b/slideshow/source/inc/activitiesfactory.hxx @@ -4,9 +4,9 @@ * * $RCSfile: activitiesfactory.hxx,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: rt $ $Date: 2005-09-07 21:03:04 $ + * last change: $Author: obo $ $Date: 2005-10-11 08:46:59 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -33,318 +33,309 @@ * ************************************************************************/ -#ifndef _SLIDESHOW_ACTIVITIESFACTORY_HXX -#define _SLIDESHOW_ACTIVITIESFACTORY_HXX - -#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_ -#include <com/sun/star/uno/Reference.hxx> -#endif -#ifndef _COM_SUN_STAR_ANIMATIONS_XANIMATE_HPP_ -#include <com/sun/star/animations/XAnimate.hpp> -#endif -#ifndef _COM_SUN_STAR_ANIMATIONS_XANIMATECOLOR_HPP_ -#include <com/sun/star/animations/XAnimateColor.hpp> -#endif - -#ifndef _COMPHELPER_OPTIONALVALUE_HXX -#include <comphelper/optionalvalue.hxx> -#endif - -#include <animationactivity.hxx> -#include <activitiesqueue.hxx> -#include <event.hxx> -#include <eventqueue.hxx> -#include <shape.hxx> -#include <layermanager.hxx> - -#include <numberanimation.hxx> -#include <enumanimation.hxx> -#include <coloranimation.hxx> -#include <hslcoloranimation.hxx> -#include <stringanimation.hxx> -#include <boolanimation.hxx> -#include <pairanimation.hxx> - +#ifndef INCLUDED_SLIDESHOW_ACTIVITIESFACTORY_HXX +#define INCLUDED_SLIDESHOW_ACTIVITIESFACTORY_HXX + +#include "com/sun/star/animations/XAnimate.hpp" +#include "com/sun/star/animations/XAnimateColor.hpp" +#include "animationactivity.hxx" +#include "activitiesqueue.hxx" +#include "event.hxx" +#include "eventqueue.hxx" +#include "shape.hxx" +#include "layermanager.hxx" +#include "numberanimation.hxx" +#include "enumanimation.hxx" +#include "coloranimation.hxx" +#include "hslcoloranimation.hxx" +#include "stringanimation.hxx" +#include "boolanimation.hxx" +#include "pairanimation.hxx" +#include "boost/optional.hpp" +#include "boost/utility.hpp" // for boost::noncopyable /* Definition of ActivitiesFactory class */ -namespace presentation +namespace presentation { +namespace internal { + +class ActivitiesFactory : private ::boost::noncopyable { - namespace internal +public: + /// Collection of common factory parameters + struct CommonParameters { + CommonParameters( + const EventSharedPtr& rEndEvent, + EventQueue& rEventQueue, + ActivitiesQueue& rActivitiesQueue, + double nMinDuration, + sal_uInt32 nMinNumberOfFrames, + bool bAutoReverse, + ::boost::optional<double> const& aRepeats, + double nAcceleration, + double nDeceleration, + const ShapeSharedPtr& rShape, + const LayerManagerSharedPtr& rLayerManager ) + : mpEndEvent( rEndEvent ), + mrEventQueue( rEventQueue ), + mrActivitiesQueue( rActivitiesQueue ), + mnMinDuration( nMinDuration ), + mnMinNumberOfFrames( nMinNumberOfFrames ), + maRepeats( aRepeats ), + mnAcceleration( nAcceleration ), + mnDeceleration( nDeceleration ), + mpShape( rShape ), + mpLayerManager( rLayerManager ), + mbAutoReverse( bAutoReverse ) {} + + /// End event to fire when animation is over + EventSharedPtr mpEndEvent; + + /// Event queue to insert the end event into. + EventQueue& mrEventQueue; + /// Event queue to insert the end event into. + ActivitiesQueue& mrActivitiesQueue; + + /** Simple duration of the activity + + Specifies the minimal simple duration of the + activity (minimal, because mnMinNumberOfFrames + might prolongue the activity). According to SMIL, + this might also be indefinite, which for our + framework does not make much sense, though + (wouldn't have a clue, then, how to scale the + animation over time). + */ + double mnMinDuration; + + /** Minimal number of frames for this activity. + + This specifies the minimal number of frames this + activity will display per simple duration. If less + than this number are displayed until mnMinDuration + is over, the activity will be prolongued until + mnMinNumberOfFrames are rendered. + */ + sal_uInt32 mnMinNumberOfFrames; + + /** Number of repeats for the simple duration + + This specified the number of repeats. The + mnMinDuration times maRepeats yields the total + duration of this activity. If this value is + unspecified, the activity will repeat + indefinitely. + */ + ::boost::optional<double> const maRepeats; + + /// Fraction of simple time to accelerate animation + double mnAcceleration; + + /// Fraction of simple time to decelerate animation + double mnDeceleration; + + /// Shape, to get bounds from + ShapeSharedPtr mpShape; + + /// LayerManager, to get page size from + LayerManagerSharedPtr mpLayerManager; + + /// When true, activity is played reversed after mnDuration. + bool mbAutoReverse; + }; + + /** Create an activity from an XAnimate node. + + This method creates an animated activity from the + given XAnimate node, extracting all necessary + animation parameters from that. Note that due to the + animator parameter, the animation values must be + convertible to a double value. + + @param rParms + Factory parameter structure + + @param rAnimator + Animator sub-object + + @param xNode + The SMIL animation node to animate + */ + static AnimationActivitySharedPtr createAnimateActivity( + const CommonParameters& rParms, + const NumberAnimationSharedPtr& rAnimator, + const ::com::sun::star::uno::Reference< + ::com::sun::star::animations::XAnimate >& xNode ); + + /** Create an activity from an XAnimate node. + + This method creates an animated activity from the + given XAnimate node, extracting all necessary + animation parameters from that. Note that due to the + animator parameter, the animation values must be + convertible to a double value. + + @param rParms + Factory parameter structure + + @param rAnimator + Animator sub-object + + @param xNode + The SMIL animation node to animate + */ + static AnimationActivitySharedPtr createAnimateActivity( + const CommonParameters& rParms, + const EnumAnimationSharedPtr& rAnimator, + const ::com::sun::star::uno::Reference< + ::com::sun::star::animations::XAnimate >& xNode ); + + /** Create an activity from an XAnimate node. + + This method creates an animated activity from the + given XAnimate node, extracting all necessary + animation parameters from that. Note that due to the + animator parameter, the animation values must be + convertible to a color value. + + @param rParms + Factory parameter structure + + @param rAnimator + Animator sub-object + + @param xNode + The SMIL animation node to animate + */ + static AnimationActivitySharedPtr createAnimateActivity( + const CommonParameters& rParms, + const ColorAnimationSharedPtr& rAnimator, + const ::com::sun::star::uno::Reference< + ::com::sun::star::animations::XAnimate >& xNode ); + + /** Create an activity from an XAnimate node. + + This method creates an animated activity from the + given XAnimate node, extracting all necessary + animation parameters from that. Note that due to the + animator parameter, the animation values must be + convertible to a color value. + + @param rParms + Factory parameter structure + + @param rAnimator + Animator sub-object + + @param xNode + The SMIL animation node to animate + */ + static AnimationActivitySharedPtr createAnimateActivity( + const CommonParameters& rParms, + const HSLColorAnimationSharedPtr& rAnimator, + const ::com::sun::star::uno::Reference< + ::com::sun::star::animations::XAnimateColor >& xNode ); + + /** Create an activity from an XAnimate node. + + This method creates an animated activity from the + given XAnimate node, extracting all necessary + animation parameters from that. Note that due to the + animator parameter, the animation values must be + convertible to a pair of double values. + + @param rParms + Factory parameter structure + + @param rAnimator + Animator sub-object + + @param xNode + The SMIL animation node to animate + */ + static AnimationActivitySharedPtr createAnimateActivity( + const CommonParameters& rParms, + const PairAnimationSharedPtr& rAnimator, + const ::com::sun::star::uno::Reference< + ::com::sun::star::animations::XAnimate >& xNode ); + + /** Create an activity from an XAnimate node. + + This method creates an animated activity from the + given XAnimate node, extracting all necessary + animation parameters from that. Note that due to the + animator parameter, the animation values must be + convertible to a string. + + @param rParms + Factory parameter structure + + @param rAnimator + Animator sub-object + + @param xNode + The SMIL animation node to animate + */ + static AnimationActivitySharedPtr createAnimateActivity( + const CommonParameters& rParms, + const StringAnimationSharedPtr& rAnimator, + const ::com::sun::star::uno::Reference< + ::com::sun::star::animations::XAnimate >& xNode ); + + /** Create an activity from an XAnimate node. + + This method creates an animated activity from the + given XAnimate node, extracting all necessary + animation parameters from that. Note that due to the + animator parameter, the animation values must be + convertible to a bool value. + + @param rParms + Factory parameter structure + + @param rAnimator + Animator sub-object + + @param xNode + The SMIL animation node to animate + */ + static AnimationActivitySharedPtr createAnimateActivity( + const CommonParameters& rParms, + const BoolAnimationSharedPtr& rAnimator, + const ::com::sun::star::uno::Reference< + ::com::sun::star::animations::XAnimate >& xNode ); + + /** Create a simple activity for the given animator + + This method is suited to create activities for custom + animations, which need a simple double value and lasts + a given timespan. This activity always generates values + from the [0,1] range. + + @param rParms + Factory parameter structure + + @param rAnimator + Animator sub-object + + @param bDirectionForward + If true, the activity goes 'forward', i.e. from 0 to + 1. With false, the direction is reversed. + */ + static AnimationActivitySharedPtr createSimpleActivity( + const CommonParameters& rParms, + const NumberAnimationSharedPtr& rAnimator, + bool bDirectionForward ); + +private: + // default: constructor/destructor disabed + ActivitiesFactory(); + ~ActivitiesFactory(); +}; + +} // namespace internal +} // namespace presentation + +#endif /* INCLUDED_SLIDESHOW_ACTIVITIESFACTORY_HXX */ - class ActivitiesFactory - { - public: - /// Collection of common factory parameters - struct CommonParameters - { - CommonParameters( const EventSharedPtr& rEndEvent, - EventQueue& rEventQueue, - ActivitiesQueue& rActivitiesQueue, - double nMinDuration, - sal_uInt32 nMinNumberOfFrames, - bool bAutoReverse, - ::comphelper::OptionalValue<double> aRepeats, - double nAcceleration, - double nDeceleration, - const ShapeSharedPtr& rShape, - const LayerManagerSharedPtr& rLayerManager ) : - mpEndEvent( rEndEvent ), - mrEventQueue( rEventQueue ), - mrActivitiesQueue( rActivitiesQueue ), - mnMinDuration( nMinDuration ), - mnMinNumberOfFrames( nMinNumberOfFrames ), - maRepeats( aRepeats ), - mnAcceleration( nAcceleration ), - mnDeceleration( nDeceleration ), - mpShape( rShape ), - mpLayerManager( rLayerManager ), - mbAutoReverse( bAutoReverse ) - { - } - - /// End event to fire when animation is over - EventSharedPtr mpEndEvent; - - /// Event queue to insert the end event into. - EventQueue& mrEventQueue; - /// Event queue to insert the end event into. - ActivitiesQueue& mrActivitiesQueue; - - /** Simple duration of the activity - - Specifies the minimal simple duration of the - activity (minimal, because mnMinNumberOfFrames - might prolongue the activity). According to SMIL, - this might also be indefinite, which for our - framework does not make much sense, though - (wouldn't have a clue, then, how to scale the - animation over time). - */ - double mnMinDuration; - - /** Minimal number of frames for this activity. - - This specifies the minimal number of frames this - activity will display per simple duration. If less - than this number are displayed until mnMinDuration - is over, the activity will be prolongued until - mnMinNumberOfFrames are rendered. - */ - sal_uInt32 mnMinNumberOfFrames; - - /** Number of repeats for the simple duration - - This specified the number of repeats. The - mnMinDuration times maRepeats yields the total - duration of this activity. If this value is - unspecified, the activity will repeat - indefinitely. - */ - ::comphelper::OptionalValue<double> maRepeats; - - /// Fraction of simple time to accelerate animation - double mnAcceleration; - - /// Fraction of simple time to decelerate animation - double mnDeceleration; - - /// Shape, to get bounds from - ShapeSharedPtr mpShape; - - /// LayerManager, to get page size from - LayerManagerSharedPtr mpLayerManager; - - /// When true, activity is played reversed after mnDuration. - bool mbAutoReverse; - }; - - /** Create an activity from an XAnimate node. - - This method creates an animated activity from the - given XAnimate node, extracting all necessary - animation parameters from that. Note that due to the - animator parameter, the animation values must be - convertible to a double value. - - @param rParms - Factory parameter structure - - @param rAnimator - Animator sub-object - - @param xNode - The SMIL animation node to animate - */ - static AnimationActivitySharedPtr createAnimateActivity( const CommonParameters& rParms, - const NumberAnimationSharedPtr& rAnimator, - const ::com::sun::star::uno::Reference< - ::com::sun::star::animations::XAnimate >& xNode ); - - /** Create an activity from an XAnimate node. - - This method creates an animated activity from the - given XAnimate node, extracting all necessary - animation parameters from that. Note that due to the - animator parameter, the animation values must be - convertible to a double value. - - @param rParms - Factory parameter structure - - @param rAnimator - Animator sub-object - - @param xNode - The SMIL animation node to animate - */ - static AnimationActivitySharedPtr createAnimateActivity( const CommonParameters& rParms, - const EnumAnimationSharedPtr& rAnimator, - const ::com::sun::star::uno::Reference< - ::com::sun::star::animations::XAnimate >& xNode ); - - /** Create an activity from an XAnimate node. - - This method creates an animated activity from the - given XAnimate node, extracting all necessary - animation parameters from that. Note that due to the - animator parameter, the animation values must be - convertible to a color value. - - @param rParms - Factory parameter structure - - @param rAnimator - Animator sub-object - - @param xNode - The SMIL animation node to animate - */ - static AnimationActivitySharedPtr createAnimateActivity( const CommonParameters& rParms, - const ColorAnimationSharedPtr& rAnimator, - const ::com::sun::star::uno::Reference< - ::com::sun::star::animations::XAnimate >& xNode ); - - /** Create an activity from an XAnimate node. - - This method creates an animated activity from the - given XAnimate node, extracting all necessary - animation parameters from that. Note that due to the - animator parameter, the animation values must be - convertible to a color value. - - @param rParms - Factory parameter structure - - @param rAnimator - Animator sub-object - - @param xNode - The SMIL animation node to animate - */ - static AnimationActivitySharedPtr createAnimateActivity( const CommonParameters& rParms, - const HSLColorAnimationSharedPtr& rAnimator, - const ::com::sun::star::uno::Reference< - ::com::sun::star::animations::XAnimateColor >& xNode ); - - /** Create an activity from an XAnimate node. - - This method creates an animated activity from the - given XAnimate node, extracting all necessary - animation parameters from that. Note that due to the - animator parameter, the animation values must be - convertible to a pair of double values. - - @param rParms - Factory parameter structure - - @param rAnimator - Animator sub-object - - @param xNode - The SMIL animation node to animate - */ - static AnimationActivitySharedPtr createAnimateActivity( const CommonParameters& rParms, - const PairAnimationSharedPtr& rAnimator, - const ::com::sun::star::uno::Reference< - ::com::sun::star::animations::XAnimate >& xNode ); - - /** Create an activity from an XAnimate node. - - This method creates an animated activity from the - given XAnimate node, extracting all necessary - animation parameters from that. Note that due to the - animator parameter, the animation values must be - convertible to a string. - - @param rParms - Factory parameter structure - - @param rAnimator - Animator sub-object - - @param xNode - The SMIL animation node to animate - */ - static AnimationActivitySharedPtr createAnimateActivity( const CommonParameters& rParms, - const StringAnimationSharedPtr& rAnimator, - const ::com::sun::star::uno::Reference< - ::com::sun::star::animations::XAnimate >& xNode ); - - /** Create an activity from an XAnimate node. - - This method creates an animated activity from the - given XAnimate node, extracting all necessary - animation parameters from that. Note that due to the - animator parameter, the animation values must be - convertible to a bool value. - - @param rParms - Factory parameter structure - - @param rAnimator - Animator sub-object - - @param xNode - The SMIL animation node to animate - */ - static AnimationActivitySharedPtr createAnimateActivity( const CommonParameters& rParms, - const BoolAnimationSharedPtr& rAnimator, - const ::com::sun::star::uno::Reference< - ::com::sun::star::animations::XAnimate >& xNode ); - - /** Create a simple activity for the given animator - - This method is suited to create activities for custom - animations, which need a simple double value and lasts - a given timespan. This activity always generates values - from the [0,1] range. - - @param rParms - Factory parameter structure - - @param rAnimator - Animator sub-object - - @param bDirectionForward - If true, the activity goes 'forward', i.e. from 0 to - 1. With false, the direction is reversed. - */ - static AnimationActivitySharedPtr createSimpleActivity( const CommonParameters& rParms, - const NumberAnimationSharedPtr& rAnimator, - bool bDirectionForward ); - - private: - // default: constructor/destructor disabed - ActivitiesFactory(); - ~ActivitiesFactory(); - - // default: disabled copy/assignment - ActivitiesFactory(const ActivitiesFactory&); - ActivitiesFactory& operator=( const ActivitiesFactory& ); - }; - } -} - -#endif /* _SLIDESHOW_ACTIVITIESFACTORY_HXX */ |