xref: /aoo4110/main/sd/source/ui/unoidl/randomnode.cxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski 
25*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
26*b1cdbd2cSJim Jagielski #include "precompiled_sd.hxx"
27*b1cdbd2cSJim Jagielski #include <com/sun/star/animations/XTimeContainer.hpp>
28*b1cdbd2cSJim Jagielski #include <com/sun/star/presentation/ParagraphTarget.hpp>
29*b1cdbd2cSJim Jagielski #include <com/sun/star/animations/AnimationFill.hpp>
30*b1cdbd2cSJim Jagielski #include <com/sun/star/animations/XAnimate.hpp>
31*b1cdbd2cSJim Jagielski #include <com/sun/star/animations/AnimationRestart.hpp>
32*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XServiceInfo.hpp>
33*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XInitialization.hpp>
34*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XEnumerationAccess.hpp>
35*b1cdbd2cSJim Jagielski #include <com/sun/star/util/XCloneable.hpp>
36*b1cdbd2cSJim Jagielski #include <comphelper/processfactory.hxx>
37*b1cdbd2cSJim Jagielski 
38*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase5.hxx>
39*b1cdbd2cSJim Jagielski #include <osl/mutex.hxx>
40*b1cdbd2cSJim Jagielski #include "CustomAnimationPreset.hxx"
41*b1cdbd2cSJim Jagielski 
42*b1cdbd2cSJim Jagielski using ::osl::Mutex;
43*b1cdbd2cSJim Jagielski using ::osl::Guard;
44*b1cdbd2cSJim Jagielski using ::rtl::OUString;
45*b1cdbd2cSJim Jagielski 
46*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Reference;
47*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::RuntimeException;
48*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Exception;
49*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Sequence;
50*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Any;
51*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::UNO_QUERY;
52*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::XInterface;
53*b1cdbd2cSJim Jagielski using ::com::sun::star::lang::NoSupportException;
54*b1cdbd2cSJim Jagielski using ::com::sun::star::beans::NamedValue;
55*b1cdbd2cSJim Jagielski using ::com::sun::star::lang::IllegalArgumentException;
56*b1cdbd2cSJim Jagielski using ::com::sun::star::container::NoSuchElementException;
57*b1cdbd2cSJim Jagielski using ::com::sun::star::container::ElementExistException;
58*b1cdbd2cSJim Jagielski using ::com::sun::star::lang::WrappedTargetException;
59*b1cdbd2cSJim Jagielski using ::com::sun::star::container::XEnumeration;
60*b1cdbd2cSJim Jagielski using ::com::sun::star::container::XEnumerationAccess;
61*b1cdbd2cSJim Jagielski using ::com::sun::star::util::XCloneable;
62*b1cdbd2cSJim Jagielski using ::com::sun::star::lang::XServiceInfo;
63*b1cdbd2cSJim Jagielski using ::com::sun::star::lang::XInitialization;
64*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Type;
65*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::XWeak;
66*b1cdbd2cSJim Jagielski using ::com::sun::star::lang::XMultiServiceFactory;
67*b1cdbd2cSJim Jagielski using ::com::sun::star::presentation::ParagraphTarget;
68*b1cdbd2cSJim Jagielski using ::com::sun::star::drawing::XShape;
69*b1cdbd2cSJim Jagielski 
70*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::animations;
71*b1cdbd2cSJim Jagielski namespace sd
72*b1cdbd2cSJim Jagielski {
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski typedef ::cppu::WeakImplHelper5< XTimeContainer, XEnumerationAccess, XCloneable, XServiceInfo, XInitialization > RandomAnimationNodeBase;
75*b1cdbd2cSJim Jagielski class RandomAnimationNode : public RandomAnimationNodeBase
76*b1cdbd2cSJim Jagielski {
77*b1cdbd2cSJim Jagielski public:
78*b1cdbd2cSJim Jagielski 	RandomAnimationNode( const RandomAnimationNode& rNode );
79*b1cdbd2cSJim Jagielski 	RandomAnimationNode( sal_Int16 nPresetClass );
80*b1cdbd2cSJim Jagielski 	RandomAnimationNode();
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski 	void init( sal_Int16 nPresetClass );
83*b1cdbd2cSJim Jagielski 
84*b1cdbd2cSJim Jagielski 	// XInitialization
85*b1cdbd2cSJim Jagielski     void SAL_CALL initialize( const Sequence< Any >& aArguments ) throw (Exception, RuntimeException);
86*b1cdbd2cSJim Jagielski 
87*b1cdbd2cSJim Jagielski     // XChild
88*b1cdbd2cSJim Jagielski     Reference< XInterface > SAL_CALL getParent(  ) throw (RuntimeException);
89*b1cdbd2cSJim Jagielski     void SAL_CALL setParent( const Reference< XInterface >& Parent ) throw (NoSupportException, RuntimeException);
90*b1cdbd2cSJim Jagielski 
91*b1cdbd2cSJim Jagielski     // XCloneable
92*b1cdbd2cSJim Jagielski     virtual Reference< XCloneable > SAL_CALL createClone() throw (RuntimeException);
93*b1cdbd2cSJim Jagielski 
94*b1cdbd2cSJim Jagielski 	// XServiceInfo
95*b1cdbd2cSJim Jagielski     OUString SAL_CALL getImplementationName() throw();
96*b1cdbd2cSJim Jagielski     Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw();
97*b1cdbd2cSJim Jagielski     sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw();
98*b1cdbd2cSJim Jagielski 
99*b1cdbd2cSJim Jagielski     // XAnimationNode
100*b1cdbd2cSJim Jagielski     ::sal_Int16 SAL_CALL getType() throw (RuntimeException);
101*b1cdbd2cSJim Jagielski     Any SAL_CALL getBegin() throw (RuntimeException);
102*b1cdbd2cSJim Jagielski     void SAL_CALL setBegin( const Any& _begin ) throw (RuntimeException);
103*b1cdbd2cSJim Jagielski     Any SAL_CALL getDuration() throw (RuntimeException);
104*b1cdbd2cSJim Jagielski     void SAL_CALL setDuration( const Any& _duration ) throw (RuntimeException);
105*b1cdbd2cSJim Jagielski     Any SAL_CALL getEnd() throw (RuntimeException);
106*b1cdbd2cSJim Jagielski     void SAL_CALL setEnd( const Any& _end ) throw (RuntimeException);
107*b1cdbd2cSJim Jagielski     Any SAL_CALL getEndSync() throw (RuntimeException);
108*b1cdbd2cSJim Jagielski     void SAL_CALL setEndSync( const Any& _endsync ) throw (RuntimeException);
109*b1cdbd2cSJim Jagielski     Any SAL_CALL getRepeatCount() throw (RuntimeException);
110*b1cdbd2cSJim Jagielski     void SAL_CALL setRepeatCount( const Any& _repeatcount ) throw (RuntimeException);
111*b1cdbd2cSJim Jagielski     Any SAL_CALL getRepeatDuration() throw (RuntimeException);
112*b1cdbd2cSJim Jagielski     void SAL_CALL setRepeatDuration( const Any& _repeatduration ) throw (RuntimeException);
113*b1cdbd2cSJim Jagielski     ::sal_Int16 SAL_CALL getFill() throw (RuntimeException);
114*b1cdbd2cSJim Jagielski     void SAL_CALL setFill( ::sal_Int16 _fill ) throw (RuntimeException);
115*b1cdbd2cSJim Jagielski     ::sal_Int16 SAL_CALL getFillDefault() throw (RuntimeException);
116*b1cdbd2cSJim Jagielski     void SAL_CALL setFillDefault( ::sal_Int16 _filldefault ) throw (RuntimeException);
117*b1cdbd2cSJim Jagielski     ::sal_Int16 SAL_CALL getRestart() throw (RuntimeException);
118*b1cdbd2cSJim Jagielski     void SAL_CALL setRestart( ::sal_Int16 _restart ) throw (RuntimeException);
119*b1cdbd2cSJim Jagielski     ::sal_Int16 SAL_CALL getRestartDefault() throw (RuntimeException);
120*b1cdbd2cSJim Jagielski 	void SAL_CALL setRestartDefault( ::sal_Int16 _restartdefault ) throw (RuntimeException);
121*b1cdbd2cSJim Jagielski     double SAL_CALL getAcceleration() throw (RuntimeException);
122*b1cdbd2cSJim Jagielski     void SAL_CALL setAcceleration( double _acceleration ) throw (RuntimeException);
123*b1cdbd2cSJim Jagielski     double SAL_CALL getDecelerate() throw (RuntimeException);
124*b1cdbd2cSJim Jagielski     void SAL_CALL setDecelerate( double _decelerate ) throw (RuntimeException);
125*b1cdbd2cSJim Jagielski     ::sal_Bool SAL_CALL getAutoReverse() throw (RuntimeException);
126*b1cdbd2cSJim Jagielski     void SAL_CALL setAutoReverse( ::sal_Bool _autoreverse ) throw (RuntimeException);
127*b1cdbd2cSJim Jagielski     Sequence< NamedValue > SAL_CALL getUserData() throw (RuntimeException);
128*b1cdbd2cSJim Jagielski     void SAL_CALL setUserData( const Sequence< NamedValue >& _userdata ) throw (RuntimeException);
129*b1cdbd2cSJim Jagielski 
130*b1cdbd2cSJim Jagielski 	// XElementAccess
131*b1cdbd2cSJim Jagielski 	virtual Type SAL_CALL getElementType() throw (RuntimeException);
132*b1cdbd2cSJim Jagielski 	virtual sal_Bool SAL_CALL hasElements() throw (RuntimeException);
133*b1cdbd2cSJim Jagielski 
134*b1cdbd2cSJim Jagielski 	// XEnumerationAccess
135*b1cdbd2cSJim Jagielski     virtual Reference< XEnumeration > SAL_CALL createEnumeration() throw (RuntimeException);
136*b1cdbd2cSJim Jagielski 
137*b1cdbd2cSJim Jagielski     // XTimeContainer
138*b1cdbd2cSJim Jagielski     Reference< XAnimationNode > SAL_CALL insertBefore( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >& refChild ) throw (IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException);
139*b1cdbd2cSJim Jagielski     Reference< XAnimationNode > SAL_CALL insertAfter( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >& refChild ) throw (IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException);
140*b1cdbd2cSJim Jagielski     Reference< XAnimationNode > SAL_CALL replaceChild( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >& oldChild ) throw (IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException);
141*b1cdbd2cSJim Jagielski     Reference< XAnimationNode > SAL_CALL removeChild( const Reference< XAnimationNode >& oldChild ) throw (IllegalArgumentException, NoSuchElementException, WrappedTargetException, RuntimeException);
142*b1cdbd2cSJim Jagielski     Reference< XAnimationNode > SAL_CALL appendChild( const Reference< XAnimationNode >& newChild ) throw (IllegalArgumentException, ElementExistException, WrappedTargetException, RuntimeException);
143*b1cdbd2cSJim Jagielski 
144*b1cdbd2cSJim Jagielski private:
145*b1cdbd2cSJim Jagielski 	// our first, last and only protection from mutli-threads!
146*b1cdbd2cSJim Jagielski 	Mutex maMutex;
147*b1cdbd2cSJim Jagielski 
148*b1cdbd2cSJim Jagielski 	sal_Int16 mnPresetClass;
149*b1cdbd2cSJim Jagielski 	Reference< XInterface > mxParent;
150*b1cdbd2cSJim Jagielski 
151*b1cdbd2cSJim Jagielski 	Any maBegin, maDuration, maEnd, maEndSync, maRepeatCount, maRepeatDuration, maTarget;
152*b1cdbd2cSJim Jagielski 	sal_Int16 mnFill, mnFillDefault, mnRestart, mnRestartDefault;
153*b1cdbd2cSJim Jagielski 	double mfAcceleration, mfDecelerate;
154*b1cdbd2cSJim Jagielski 	sal_Bool mbAutoReverse;
155*b1cdbd2cSJim Jagielski 	Sequence< NamedValue > maUserData;
156*b1cdbd2cSJim Jagielski 
157*b1cdbd2cSJim Jagielski 	Reference< XAnimate > mxFirstNode;
158*b1cdbd2cSJim Jagielski };
159*b1cdbd2cSJim Jagielski 
160*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
161*b1cdbd2cSJim Jagielski 
162*b1cdbd2cSJim Jagielski static const sal_Char* pSN1 = "com.sun.star.animations.ParallelTimeContainer";
163*b1cdbd2cSJim Jagielski static const sal_Char* pSN2 = "com.sun.star.comp.sd.RandomAnimationNode";
164*b1cdbd2cSJim Jagielski 
165*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
166*b1cdbd2cSJim Jagielski 
RandomAnimationNode_createInstance(sal_Int16 nPresetClass)167*b1cdbd2cSJim Jagielski SD_DLLPUBLIC Reference< XInterface > RandomAnimationNode_createInstance( sal_Int16 nPresetClass )
168*b1cdbd2cSJim Jagielski {
169*b1cdbd2cSJim Jagielski 	Reference< XInterface > xInt( static_cast<XWeak*>( new RandomAnimationNode( nPresetClass ) ) );
170*b1cdbd2cSJim Jagielski 	return xInt;
171*b1cdbd2cSJim Jagielski }
172*b1cdbd2cSJim Jagielski 
173*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
174*b1cdbd2cSJim Jagielski 
RandomNode_createInstance(const Reference<XMultiServiceFactory> &)175*b1cdbd2cSJim Jagielski Reference< XInterface > SAL_CALL RandomNode_createInstance( const Reference< XMultiServiceFactory > &  )
176*b1cdbd2cSJim Jagielski {
177*b1cdbd2cSJim Jagielski 	Reference< XInterface > xInt( static_cast<XWeak*>( new RandomAnimationNode() ) );
178*b1cdbd2cSJim Jagielski 	return xInt;
179*b1cdbd2cSJim Jagielski }
180*b1cdbd2cSJim Jagielski 
181*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
182*b1cdbd2cSJim Jagielski 
RandomNode__getImplementationName()183*b1cdbd2cSJim Jagielski OUString RandomNode__getImplementationName() throw( RuntimeException )
184*b1cdbd2cSJim Jagielski {
185*b1cdbd2cSJim Jagielski 	return OUString( RTL_CONSTASCII_USTRINGPARAM( "sd::RandomAnimationNode" ) );
186*b1cdbd2cSJim Jagielski }
187*b1cdbd2cSJim Jagielski 
188*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
189*b1cdbd2cSJim Jagielski 
RandomNode_getSupportedServiceNames()190*b1cdbd2cSJim Jagielski Sequence< OUString > SAL_CALL RandomNode_getSupportedServiceNames() throw( RuntimeException )
191*b1cdbd2cSJim Jagielski {
192*b1cdbd2cSJim Jagielski //	static const OUString aSN1( OUString::createFromAscii( pSN1 ) );
193*b1cdbd2cSJim Jagielski 	static const OUString aSN2( OUString::createFromAscii( pSN2 ) );
194*b1cdbd2cSJim Jagielski 	Sequence< OUString > aSeq( &aSN2, 1 );
195*b1cdbd2cSJim Jagielski //	aSeq[0] = aSN1;
196*b1cdbd2cSJim Jagielski ///	aSeq[1] = aSN2;
197*b1cdbd2cSJim Jagielski 	return aSeq;
198*b1cdbd2cSJim Jagielski }
199*b1cdbd2cSJim Jagielski 
200*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
201*b1cdbd2cSJim Jagielski 
RandomAnimationNode(const RandomAnimationNode & rNode)202*b1cdbd2cSJim Jagielski RandomAnimationNode::RandomAnimationNode( const RandomAnimationNode& rNode )
203*b1cdbd2cSJim Jagielski :	RandomAnimationNodeBase(),
204*b1cdbd2cSJim Jagielski 	mnPresetClass( rNode.mnPresetClass ),
205*b1cdbd2cSJim Jagielski 	maBegin( rNode.maBegin ),
206*b1cdbd2cSJim Jagielski 	maDuration( rNode.maDuration ),
207*b1cdbd2cSJim Jagielski 	maEnd( rNode.maEnd ),
208*b1cdbd2cSJim Jagielski 	maEndSync( rNode.maEndSync ),
209*b1cdbd2cSJim Jagielski 	maRepeatCount( rNode.maRepeatCount ),
210*b1cdbd2cSJim Jagielski 	maRepeatDuration( rNode.maRepeatDuration ),
211*b1cdbd2cSJim Jagielski 	maTarget( rNode.maTarget ),
212*b1cdbd2cSJim Jagielski 	mnFill( rNode.mnFill ),
213*b1cdbd2cSJim Jagielski 	mnFillDefault( rNode.mnFillDefault ),
214*b1cdbd2cSJim Jagielski 	mnRestart( rNode.mnRestart ),
215*b1cdbd2cSJim Jagielski 	mnRestartDefault( rNode.mnRestartDefault ),
216*b1cdbd2cSJim Jagielski 	mfAcceleration( rNode.mfAcceleration ),
217*b1cdbd2cSJim Jagielski 	mfDecelerate( rNode.mfDecelerate ),
218*b1cdbd2cSJim Jagielski 	mbAutoReverse( rNode.mbAutoReverse ),
219*b1cdbd2cSJim Jagielski 	maUserData( rNode.maUserData )
220*b1cdbd2cSJim Jagielski {
221*b1cdbd2cSJim Jagielski }
222*b1cdbd2cSJim Jagielski 
223*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
224*b1cdbd2cSJim Jagielski 
RandomAnimationNode(sal_Int16 nPresetClass)225*b1cdbd2cSJim Jagielski RandomAnimationNode::RandomAnimationNode( sal_Int16 nPresetClass )
226*b1cdbd2cSJim Jagielski {
227*b1cdbd2cSJim Jagielski 	init( nPresetClass );
228*b1cdbd2cSJim Jagielski }
229*b1cdbd2cSJim Jagielski 
RandomAnimationNode()230*b1cdbd2cSJim Jagielski RandomAnimationNode::RandomAnimationNode()
231*b1cdbd2cSJim Jagielski {
232*b1cdbd2cSJim Jagielski 	init( 1 );
233*b1cdbd2cSJim Jagielski }
234*b1cdbd2cSJim Jagielski 
init(sal_Int16 nPresetClass)235*b1cdbd2cSJim Jagielski void RandomAnimationNode::init( sal_Int16 nPresetClass )
236*b1cdbd2cSJim Jagielski {
237*b1cdbd2cSJim Jagielski 	mnPresetClass = nPresetClass;
238*b1cdbd2cSJim Jagielski 	mnFill = AnimationFill::DEFAULT;
239*b1cdbd2cSJim Jagielski 	mnFillDefault = AnimationFill::INHERIT;
240*b1cdbd2cSJim Jagielski 	mnRestart = AnimationRestart::DEFAULT;
241*b1cdbd2cSJim Jagielski 	mnRestartDefault = AnimationRestart::INHERIT;
242*b1cdbd2cSJim Jagielski 	mfAcceleration = 0.0;
243*b1cdbd2cSJim Jagielski 	mfDecelerate = 0.0;
244*b1cdbd2cSJim Jagielski 	mbAutoReverse = sal_False;
245*b1cdbd2cSJim Jagielski }
246*b1cdbd2cSJim Jagielski 
247*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
248*b1cdbd2cSJim Jagielski 
249*b1cdbd2cSJim Jagielski // XInitialization
initialize(const Sequence<Any> & aArguments)250*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::initialize( const Sequence< Any >& aArguments ) throw (Exception, RuntimeException)
251*b1cdbd2cSJim Jagielski {
252*b1cdbd2cSJim Jagielski 	if( aArguments.getLength() != 1 )
253*b1cdbd2cSJim Jagielski 		throw IllegalArgumentException();
254*b1cdbd2cSJim Jagielski 
255*b1cdbd2cSJim Jagielski 	if( aArguments[0].getValueType() == ::getCppuType((const sal_Int16*)0) )
256*b1cdbd2cSJim Jagielski 	{
257*b1cdbd2cSJim Jagielski 		aArguments[0] >>= mnPresetClass;
258*b1cdbd2cSJim Jagielski 	}
259*b1cdbd2cSJim Jagielski 	else if( aArguments[0].getValueType() != ::getCppuType((const ParagraphTarget*)0) )
260*b1cdbd2cSJim Jagielski 	{
261*b1cdbd2cSJim Jagielski 		Reference< XShape > xShape;
262*b1cdbd2cSJim Jagielski 		aArguments[0] >>= xShape;
263*b1cdbd2cSJim Jagielski 		if( !xShape.is() )
264*b1cdbd2cSJim Jagielski 			throw IllegalArgumentException();
265*b1cdbd2cSJim Jagielski 	}
266*b1cdbd2cSJim Jagielski 	maTarget = aArguments[0];
267*b1cdbd2cSJim Jagielski }
268*b1cdbd2cSJim Jagielski 
269*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
270*b1cdbd2cSJim Jagielski 
271*b1cdbd2cSJim Jagielski // XAnimationNode
getType()272*b1cdbd2cSJim Jagielski sal_Int16 SAL_CALL RandomAnimationNode::getType() throw (RuntimeException)
273*b1cdbd2cSJim Jagielski {
274*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
275*b1cdbd2cSJim Jagielski 	return ::com::sun::star::animations::AnimationNodeType::PAR;
276*b1cdbd2cSJim Jagielski }
277*b1cdbd2cSJim Jagielski 
278*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
279*b1cdbd2cSJim Jagielski 
280*b1cdbd2cSJim Jagielski // XAnimationNode
getBegin()281*b1cdbd2cSJim Jagielski Any SAL_CALL RandomAnimationNode::getBegin() throw (RuntimeException)
282*b1cdbd2cSJim Jagielski {
283*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
284*b1cdbd2cSJim Jagielski 	return maBegin;
285*b1cdbd2cSJim Jagielski }
286*b1cdbd2cSJim Jagielski 
287*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
288*b1cdbd2cSJim Jagielski 
289*b1cdbd2cSJim Jagielski // XAnimationNode
setBegin(const Any & _begin)290*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setBegin( const Any& _begin ) throw (RuntimeException)
291*b1cdbd2cSJim Jagielski {
292*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
293*b1cdbd2cSJim Jagielski 	maBegin = _begin;
294*b1cdbd2cSJim Jagielski }
295*b1cdbd2cSJim Jagielski 
296*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
297*b1cdbd2cSJim Jagielski 
298*b1cdbd2cSJim Jagielski // XAnimationNode
getDuration()299*b1cdbd2cSJim Jagielski Any SAL_CALL RandomAnimationNode::getDuration() throw (RuntimeException)
300*b1cdbd2cSJim Jagielski {
301*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
302*b1cdbd2cSJim Jagielski 	return maDuration;
303*b1cdbd2cSJim Jagielski }
304*b1cdbd2cSJim Jagielski 
305*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
306*b1cdbd2cSJim Jagielski 
307*b1cdbd2cSJim Jagielski // XAnimationNode
setDuration(const Any & _duration)308*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setDuration( const Any& _duration ) throw (RuntimeException)
309*b1cdbd2cSJim Jagielski {
310*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
311*b1cdbd2cSJim Jagielski 	maDuration = _duration;
312*b1cdbd2cSJim Jagielski }
313*b1cdbd2cSJim Jagielski 
314*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
315*b1cdbd2cSJim Jagielski 
316*b1cdbd2cSJim Jagielski // XAnimationNode
getEnd()317*b1cdbd2cSJim Jagielski Any SAL_CALL RandomAnimationNode::getEnd() throw (RuntimeException)
318*b1cdbd2cSJim Jagielski {
319*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
320*b1cdbd2cSJim Jagielski 	return maEnd;
321*b1cdbd2cSJim Jagielski }
322*b1cdbd2cSJim Jagielski 
323*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
324*b1cdbd2cSJim Jagielski 
325*b1cdbd2cSJim Jagielski // XAnimationNode
setEnd(const Any & _end)326*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setEnd( const Any& _end ) throw (RuntimeException)
327*b1cdbd2cSJim Jagielski {
328*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
329*b1cdbd2cSJim Jagielski 	maEnd = _end;
330*b1cdbd2cSJim Jagielski }
331*b1cdbd2cSJim Jagielski 
332*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
333*b1cdbd2cSJim Jagielski 
334*b1cdbd2cSJim Jagielski // XAnimationNode
getEndSync()335*b1cdbd2cSJim Jagielski Any SAL_CALL RandomAnimationNode::getEndSync() throw (RuntimeException)
336*b1cdbd2cSJim Jagielski {
337*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
338*b1cdbd2cSJim Jagielski 	return maEndSync;
339*b1cdbd2cSJim Jagielski }
340*b1cdbd2cSJim Jagielski 
341*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
342*b1cdbd2cSJim Jagielski 
343*b1cdbd2cSJim Jagielski // XAnimationNode
setEndSync(const Any & _endsync)344*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setEndSync( const Any& _endsync ) throw (RuntimeException)
345*b1cdbd2cSJim Jagielski {
346*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
347*b1cdbd2cSJim Jagielski 	maEndSync = _endsync;
348*b1cdbd2cSJim Jagielski }
349*b1cdbd2cSJim Jagielski 
350*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
351*b1cdbd2cSJim Jagielski 
352*b1cdbd2cSJim Jagielski // XAnimationNode
getRepeatCount()353*b1cdbd2cSJim Jagielski Any SAL_CALL RandomAnimationNode::getRepeatCount() throw (RuntimeException)
354*b1cdbd2cSJim Jagielski {
355*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
356*b1cdbd2cSJim Jagielski 	return maRepeatCount;
357*b1cdbd2cSJim Jagielski }
358*b1cdbd2cSJim Jagielski 
359*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
360*b1cdbd2cSJim Jagielski 
361*b1cdbd2cSJim Jagielski // XAnimationNode
setRepeatCount(const Any & _repeatcount)362*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setRepeatCount( const Any& _repeatcount ) throw (RuntimeException)
363*b1cdbd2cSJim Jagielski {
364*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
365*b1cdbd2cSJim Jagielski 	maRepeatCount = _repeatcount;
366*b1cdbd2cSJim Jagielski }
367*b1cdbd2cSJim Jagielski 
368*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
369*b1cdbd2cSJim Jagielski 
370*b1cdbd2cSJim Jagielski // XAnimationNode
getRepeatDuration()371*b1cdbd2cSJim Jagielski Any SAL_CALL RandomAnimationNode::getRepeatDuration() throw (RuntimeException)
372*b1cdbd2cSJim Jagielski {
373*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
374*b1cdbd2cSJim Jagielski 	return maRepeatDuration;
375*b1cdbd2cSJim Jagielski }
376*b1cdbd2cSJim Jagielski 
377*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
378*b1cdbd2cSJim Jagielski 
379*b1cdbd2cSJim Jagielski // XAnimationNode
setRepeatDuration(const Any & _repeatduration)380*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setRepeatDuration( const Any& _repeatduration ) throw (RuntimeException)
381*b1cdbd2cSJim Jagielski {
382*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
383*b1cdbd2cSJim Jagielski 	maRepeatDuration = _repeatduration;
384*b1cdbd2cSJim Jagielski }
385*b1cdbd2cSJim Jagielski 
386*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
387*b1cdbd2cSJim Jagielski 
388*b1cdbd2cSJim Jagielski // XAnimationNode
getFill()389*b1cdbd2cSJim Jagielski sal_Int16 SAL_CALL RandomAnimationNode::getFill() throw (RuntimeException)
390*b1cdbd2cSJim Jagielski {
391*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
392*b1cdbd2cSJim Jagielski 	return mnFill;
393*b1cdbd2cSJim Jagielski }
394*b1cdbd2cSJim Jagielski 
395*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
396*b1cdbd2cSJim Jagielski 
397*b1cdbd2cSJim Jagielski // XAnimationNode
setFill(sal_Int16 _fill)398*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setFill( sal_Int16 _fill ) throw (RuntimeException)
399*b1cdbd2cSJim Jagielski {
400*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
401*b1cdbd2cSJim Jagielski 	mnFill = _fill;
402*b1cdbd2cSJim Jagielski }
403*b1cdbd2cSJim Jagielski 
404*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
405*b1cdbd2cSJim Jagielski 
406*b1cdbd2cSJim Jagielski // XAnimationNode
getFillDefault()407*b1cdbd2cSJim Jagielski sal_Int16 SAL_CALL RandomAnimationNode::getFillDefault() throw (RuntimeException)
408*b1cdbd2cSJim Jagielski {
409*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
410*b1cdbd2cSJim Jagielski 	return mnFillDefault;
411*b1cdbd2cSJim Jagielski }
412*b1cdbd2cSJim Jagielski 
413*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
414*b1cdbd2cSJim Jagielski 
415*b1cdbd2cSJim Jagielski // XAnimationNode
setFillDefault(sal_Int16 _filldefault)416*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setFillDefault( sal_Int16 _filldefault ) throw (RuntimeException)
417*b1cdbd2cSJim Jagielski {
418*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
419*b1cdbd2cSJim Jagielski 	mnFillDefault = _filldefault;
420*b1cdbd2cSJim Jagielski }
421*b1cdbd2cSJim Jagielski 
422*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
423*b1cdbd2cSJim Jagielski 
424*b1cdbd2cSJim Jagielski // XAnimationNode
getRestart()425*b1cdbd2cSJim Jagielski sal_Int16 SAL_CALL RandomAnimationNode::getRestart() throw (RuntimeException)
426*b1cdbd2cSJim Jagielski {
427*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
428*b1cdbd2cSJim Jagielski 	return mnRestart;
429*b1cdbd2cSJim Jagielski }
430*b1cdbd2cSJim Jagielski 
431*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
432*b1cdbd2cSJim Jagielski 
433*b1cdbd2cSJim Jagielski // XAnimationNode
setRestart(sal_Int16 _restart)434*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setRestart( sal_Int16 _restart ) throw (RuntimeException)
435*b1cdbd2cSJim Jagielski {
436*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
437*b1cdbd2cSJim Jagielski 	mnRestart = _restart;
438*b1cdbd2cSJim Jagielski }
439*b1cdbd2cSJim Jagielski 
440*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
441*b1cdbd2cSJim Jagielski 
442*b1cdbd2cSJim Jagielski // XAnimationNode
getRestartDefault()443*b1cdbd2cSJim Jagielski sal_Int16 SAL_CALL RandomAnimationNode::getRestartDefault() throw (RuntimeException)
444*b1cdbd2cSJim Jagielski {
445*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
446*b1cdbd2cSJim Jagielski 	return mnRestartDefault;
447*b1cdbd2cSJim Jagielski }
448*b1cdbd2cSJim Jagielski 
449*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
450*b1cdbd2cSJim Jagielski 
451*b1cdbd2cSJim Jagielski // XAnimationNode
setRestartDefault(sal_Int16 _restartdefault)452*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setRestartDefault( sal_Int16 _restartdefault ) throw (RuntimeException)
453*b1cdbd2cSJim Jagielski {
454*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
455*b1cdbd2cSJim Jagielski 	mnRestartDefault = _restartdefault;
456*b1cdbd2cSJim Jagielski }
457*b1cdbd2cSJim Jagielski 
458*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
459*b1cdbd2cSJim Jagielski 
460*b1cdbd2cSJim Jagielski // XAnimationNode
getAcceleration()461*b1cdbd2cSJim Jagielski double SAL_CALL RandomAnimationNode::getAcceleration() throw (RuntimeException)
462*b1cdbd2cSJim Jagielski {
463*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
464*b1cdbd2cSJim Jagielski 	return mfAcceleration;
465*b1cdbd2cSJim Jagielski }
466*b1cdbd2cSJim Jagielski 
467*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
468*b1cdbd2cSJim Jagielski 
469*b1cdbd2cSJim Jagielski // XAnimationNode
setAcceleration(double _acceleration)470*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setAcceleration( double _acceleration ) throw (RuntimeException)
471*b1cdbd2cSJim Jagielski {
472*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
473*b1cdbd2cSJim Jagielski 	mfAcceleration = _acceleration;
474*b1cdbd2cSJim Jagielski }
475*b1cdbd2cSJim Jagielski 
476*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
477*b1cdbd2cSJim Jagielski 
478*b1cdbd2cSJim Jagielski // XAnimationNode
getDecelerate()479*b1cdbd2cSJim Jagielski double SAL_CALL RandomAnimationNode::getDecelerate() throw (RuntimeException)
480*b1cdbd2cSJim Jagielski {
481*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
482*b1cdbd2cSJim Jagielski 	return mfDecelerate;
483*b1cdbd2cSJim Jagielski }
484*b1cdbd2cSJim Jagielski 
485*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
486*b1cdbd2cSJim Jagielski 
487*b1cdbd2cSJim Jagielski // XAnimationNode
setDecelerate(double _decelerate)488*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setDecelerate( double _decelerate ) throw (RuntimeException)
489*b1cdbd2cSJim Jagielski {
490*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
491*b1cdbd2cSJim Jagielski 	mfDecelerate = _decelerate;
492*b1cdbd2cSJim Jagielski }
493*b1cdbd2cSJim Jagielski 
494*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
495*b1cdbd2cSJim Jagielski 
496*b1cdbd2cSJim Jagielski // XAnimationNode
getAutoReverse()497*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL RandomAnimationNode::getAutoReverse() throw (RuntimeException)
498*b1cdbd2cSJim Jagielski {
499*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
500*b1cdbd2cSJim Jagielski 	return mbAutoReverse;
501*b1cdbd2cSJim Jagielski }
502*b1cdbd2cSJim Jagielski 
503*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
504*b1cdbd2cSJim Jagielski 
505*b1cdbd2cSJim Jagielski // XAnimationNode
setAutoReverse(sal_Bool _autoreverse)506*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setAutoReverse( sal_Bool _autoreverse ) throw (RuntimeException)
507*b1cdbd2cSJim Jagielski {
508*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
509*b1cdbd2cSJim Jagielski 	mbAutoReverse = _autoreverse;
510*b1cdbd2cSJim Jagielski }
511*b1cdbd2cSJim Jagielski 
512*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
513*b1cdbd2cSJim Jagielski 
getUserData()514*b1cdbd2cSJim Jagielski Sequence< NamedValue > SAL_CALL RandomAnimationNode::getUserData() throw (RuntimeException)
515*b1cdbd2cSJim Jagielski {
516*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
517*b1cdbd2cSJim Jagielski 	return maUserData;
518*b1cdbd2cSJim Jagielski }
519*b1cdbd2cSJim Jagielski 
520*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
521*b1cdbd2cSJim Jagielski 
setUserData(const Sequence<NamedValue> & _userdata)522*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setUserData( const Sequence< NamedValue >& _userdata ) throw (RuntimeException)
523*b1cdbd2cSJim Jagielski {
524*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
525*b1cdbd2cSJim Jagielski 	maUserData = _userdata;
526*b1cdbd2cSJim Jagielski }
527*b1cdbd2cSJim Jagielski 
528*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
529*b1cdbd2cSJim Jagielski 
530*b1cdbd2cSJim Jagielski // XChild
getParent()531*b1cdbd2cSJim Jagielski Reference< XInterface > SAL_CALL RandomAnimationNode::getParent() throw (RuntimeException)
532*b1cdbd2cSJim Jagielski {
533*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
534*b1cdbd2cSJim Jagielski 	return mxParent;
535*b1cdbd2cSJim Jagielski }
536*b1cdbd2cSJim Jagielski 
537*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
538*b1cdbd2cSJim Jagielski 
539*b1cdbd2cSJim Jagielski // XChild
setParent(const Reference<XInterface> & Parent)540*b1cdbd2cSJim Jagielski void SAL_CALL RandomAnimationNode::setParent( const Reference< XInterface >& Parent ) throw (NoSupportException, RuntimeException)
541*b1cdbd2cSJim Jagielski {
542*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
543*b1cdbd2cSJim Jagielski 	mxParent = Parent;
544*b1cdbd2cSJim Jagielski }
545*b1cdbd2cSJim Jagielski 
546*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
547*b1cdbd2cSJim Jagielski 
548*b1cdbd2cSJim Jagielski // XCloneable
createClone()549*b1cdbd2cSJim Jagielski Reference< XCloneable > SAL_CALL RandomAnimationNode::createClone() throw (RuntimeException)
550*b1cdbd2cSJim Jagielski {
551*b1cdbd2cSJim Jagielski 	Reference< XCloneable > xNewNode( new RandomAnimationNode( *this ) );
552*b1cdbd2cSJim Jagielski 	return xNewNode;
553*b1cdbd2cSJim Jagielski }
554*b1cdbd2cSJim Jagielski 
555*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
556*b1cdbd2cSJim Jagielski 
557*b1cdbd2cSJim Jagielski // XElementAccess
getElementType()558*b1cdbd2cSJim Jagielski Type SAL_CALL RandomAnimationNode::getElementType() throw (RuntimeException)
559*b1cdbd2cSJim Jagielski {
560*b1cdbd2cSJim Jagielski 	return ::getCppuType((const Reference< XAnimationNode >*)0);
561*b1cdbd2cSJim Jagielski }
562*b1cdbd2cSJim Jagielski 
563*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
564*b1cdbd2cSJim Jagielski 
565*b1cdbd2cSJim Jagielski // XElementAccess
hasElements()566*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL RandomAnimationNode::hasElements() throw (RuntimeException)
567*b1cdbd2cSJim Jagielski {
568*b1cdbd2cSJim Jagielski 	return sal_True;
569*b1cdbd2cSJim Jagielski }
570*b1cdbd2cSJim Jagielski 
571*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
572*b1cdbd2cSJim Jagielski 
573*b1cdbd2cSJim Jagielski // XEnumerationAccess
createEnumeration()574*b1cdbd2cSJim Jagielski Reference< XEnumeration > SAL_CALL RandomAnimationNode::createEnumeration()
575*b1cdbd2cSJim Jagielski 	throw (RuntimeException)
576*b1cdbd2cSJim Jagielski {
577*b1cdbd2cSJim Jagielski 	Guard< Mutex > aGuard( maMutex );
578*b1cdbd2cSJim Jagielski 
579*b1cdbd2cSJim Jagielski 	if( !maTarget.hasValue() && mxFirstNode.is() )
580*b1cdbd2cSJim Jagielski 	{
581*b1cdbd2cSJim Jagielski 		Any aTarget( mxFirstNode->getTarget() );
582*b1cdbd2cSJim Jagielski 		if( aTarget.hasValue() )
583*b1cdbd2cSJim Jagielski 		{
584*b1cdbd2cSJim Jagielski 			maTarget = aTarget;
585*b1cdbd2cSJim Jagielski 			mxFirstNode.clear();
586*b1cdbd2cSJim Jagielski 		}
587*b1cdbd2cSJim Jagielski 	}
588*b1cdbd2cSJim Jagielski 
589*b1cdbd2cSJim Jagielski 	Reference< XEnumeration > xEnum;
590*b1cdbd2cSJim Jagielski 
591*b1cdbd2cSJim Jagielski 	Reference< XEnumerationAccess > aEnumAccess( CustomAnimationPresets::getCustomAnimationPresets().getRandomPreset( mnPresetClass ), UNO_QUERY );
592*b1cdbd2cSJim Jagielski 
593*b1cdbd2cSJim Jagielski 	if( aEnumAccess.is() )
594*b1cdbd2cSJim Jagielski 	{
595*b1cdbd2cSJim Jagielski 		Reference< XEnumeration > xEnumeration( aEnumAccess->createEnumeration(), UNO_QUERY );
596*b1cdbd2cSJim Jagielski 		if( xEnumeration.is() )
597*b1cdbd2cSJim Jagielski 		{
598*b1cdbd2cSJim Jagielski 			while( xEnumeration->hasMoreElements() )
599*b1cdbd2cSJim Jagielski 			{
600*b1cdbd2cSJim Jagielski 				Reference< XAnimate > xAnimate( xEnumeration->nextElement(), UNO_QUERY );
601*b1cdbd2cSJim Jagielski 				if( xAnimate.is() )
602*b1cdbd2cSJim Jagielski 					xAnimate->setTarget( maTarget );
603*b1cdbd2cSJim Jagielski 			}
604*b1cdbd2cSJim Jagielski 		}
605*b1cdbd2cSJim Jagielski 		xEnum = aEnumAccess->createEnumeration();
606*b1cdbd2cSJim Jagielski 	}
607*b1cdbd2cSJim Jagielski 	else
608*b1cdbd2cSJim Jagielski 	{
609*b1cdbd2cSJim Jagielski 		// no presets? give empty node!
610*b1cdbd2cSJim Jagielski 		Reference< XMultiServiceFactory > xServiceFactory( comphelper::getProcessServiceFactory() );
611*b1cdbd2cSJim Jagielski 		Reference< XEnumerationAccess > aEmptyEnumAccess(
612*b1cdbd2cSJim Jagielski 			xServiceFactory->createInstance(
613*b1cdbd2cSJim Jagielski 				OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.animations.ParallelTimeContainer" ))),
614*b1cdbd2cSJim Jagielski 			UNO_QUERY );
615*b1cdbd2cSJim Jagielski 
616*b1cdbd2cSJim Jagielski 		if( aEmptyEnumAccess.is() )
617*b1cdbd2cSJim Jagielski 			xEnum = aEmptyEnumAccess->createEnumeration();
618*b1cdbd2cSJim Jagielski 	}
619*b1cdbd2cSJim Jagielski 
620*b1cdbd2cSJim Jagielski 	return xEnum;
621*b1cdbd2cSJim Jagielski }
622*b1cdbd2cSJim Jagielski 
623*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
624*b1cdbd2cSJim Jagielski 
625*b1cdbd2cSJim Jagielski 
626*b1cdbd2cSJim Jagielski // XTimeContainer
insertBefore(const Reference<XAnimationNode> & newChild,const Reference<XAnimationNode> &)627*b1cdbd2cSJim Jagielski Reference< XAnimationNode > SAL_CALL RandomAnimationNode::insertBefore( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >&  )
628*b1cdbd2cSJim Jagielski 	throw (IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException)
629*b1cdbd2cSJim Jagielski {
630*b1cdbd2cSJim Jagielski 	return appendChild( newChild );
631*b1cdbd2cSJim Jagielski }
632*b1cdbd2cSJim Jagielski 
633*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
634*b1cdbd2cSJim Jagielski 
635*b1cdbd2cSJim Jagielski // XTimeContainer
insertAfter(const Reference<XAnimationNode> & newChild,const Reference<XAnimationNode> &)636*b1cdbd2cSJim Jagielski Reference< XAnimationNode > SAL_CALL RandomAnimationNode::insertAfter( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >&  )
637*b1cdbd2cSJim Jagielski 	throw (IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException)
638*b1cdbd2cSJim Jagielski {
639*b1cdbd2cSJim Jagielski 	return appendChild( newChild );
640*b1cdbd2cSJim Jagielski }
641*b1cdbd2cSJim Jagielski 
642*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
643*b1cdbd2cSJim Jagielski 
644*b1cdbd2cSJim Jagielski // XTimeContainer
replaceChild(const Reference<XAnimationNode> & newChild,const Reference<XAnimationNode> &)645*b1cdbd2cSJim Jagielski Reference< XAnimationNode > SAL_CALL RandomAnimationNode::replaceChild( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >&  )
646*b1cdbd2cSJim Jagielski 	throw( IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException)
647*b1cdbd2cSJim Jagielski {
648*b1cdbd2cSJim Jagielski 	return appendChild( newChild );
649*b1cdbd2cSJim Jagielski }
650*b1cdbd2cSJim Jagielski 
651*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
652*b1cdbd2cSJim Jagielski 
653*b1cdbd2cSJim Jagielski // XTimeContainer
removeChild(const Reference<XAnimationNode> & oldChild)654*b1cdbd2cSJim Jagielski Reference< XAnimationNode > SAL_CALL RandomAnimationNode::removeChild( const Reference< XAnimationNode >& oldChild )
655*b1cdbd2cSJim Jagielski 	throw(IllegalArgumentException, NoSuchElementException, WrappedTargetException, RuntimeException)
656*b1cdbd2cSJim Jagielski {
657*b1cdbd2cSJim Jagielski 	return oldChild;
658*b1cdbd2cSJim Jagielski }
659*b1cdbd2cSJim Jagielski 
660*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
661*b1cdbd2cSJim Jagielski 
662*b1cdbd2cSJim Jagielski // XTimeContainer
appendChild(const Reference<XAnimationNode> & newChild)663*b1cdbd2cSJim Jagielski Reference< XAnimationNode > SAL_CALL RandomAnimationNode::appendChild( const Reference< XAnimationNode >& newChild )
664*b1cdbd2cSJim Jagielski 	throw(IllegalArgumentException, ElementExistException, WrappedTargetException, RuntimeException)
665*b1cdbd2cSJim Jagielski {
666*b1cdbd2cSJim Jagielski 	Reference< XAnimate > xAnimate( newChild, UNO_QUERY );
667*b1cdbd2cSJim Jagielski 	if( xAnimate.is() )
668*b1cdbd2cSJim Jagielski 	{
669*b1cdbd2cSJim Jagielski 		Any aTarget( xAnimate->getTarget() );
670*b1cdbd2cSJim Jagielski 		if( aTarget.hasValue() )
671*b1cdbd2cSJim Jagielski 			maTarget = aTarget;
672*b1cdbd2cSJim Jagielski 	}
673*b1cdbd2cSJim Jagielski 
674*b1cdbd2cSJim Jagielski 	if( !maTarget.hasValue() && !mxFirstNode.is() )
675*b1cdbd2cSJim Jagielski 		mxFirstNode = xAnimate;
676*b1cdbd2cSJim Jagielski 
677*b1cdbd2cSJim Jagielski 	return newChild;
678*b1cdbd2cSJim Jagielski }
679*b1cdbd2cSJim Jagielski 
680*b1cdbd2cSJim Jagielski // XServiceInfo
getImplementationName()681*b1cdbd2cSJim Jagielski OUString RandomAnimationNode::getImplementationName() throw()
682*b1cdbd2cSJim Jagielski {
683*b1cdbd2cSJim Jagielski 	return RandomNode__getImplementationName();
684*b1cdbd2cSJim Jagielski }
685*b1cdbd2cSJim Jagielski 
686*b1cdbd2cSJim Jagielski // XServiceInfo
supportsService(const OUString & ServiceName)687*b1cdbd2cSJim Jagielski sal_Bool RandomAnimationNode::supportsService(const OUString& ServiceName) throw()
688*b1cdbd2cSJim Jagielski {
689*b1cdbd2cSJim Jagielski 	return ServiceName.equalsAscii( pSN1 ) || ServiceName.equalsAscii( pSN2 );
690*b1cdbd2cSJim Jagielski }
691*b1cdbd2cSJim Jagielski 
692*b1cdbd2cSJim Jagielski // XServiceInfo
getSupportedServiceNames(void)693*b1cdbd2cSJim Jagielski Sequence< OUString > RandomAnimationNode::getSupportedServiceNames(void) throw()
694*b1cdbd2cSJim Jagielski {
695*b1cdbd2cSJim Jagielski 	return RandomNode_getSupportedServiceNames();
696*b1cdbd2cSJim Jagielski }
697*b1cdbd2cSJim Jagielski 
698*b1cdbd2cSJim Jagielski }
699*b1cdbd2cSJim Jagielski 
700