Update ooo320-m1
[ooovba.git] / slideshow / source / engine / animationnodes / propertyanimationnode.cxx
blob600a9cc3951175aa9d22f3ba50d5b6ffb1a33b90
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: propertyanimationnode.cxx,v $
10 * $Revision: 1.9 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_slideshow.hxx"
34 // must be first
35 #include <canvas/debug.hxx>
36 #include <canvas/verbosetrace.hxx>
38 #include "propertyanimationnode.hxx"
39 #include "animationfactory.hxx"
41 using namespace com::sun::star;
43 namespace slideshow {
44 namespace internal {
46 AnimationActivitySharedPtr PropertyAnimationNode::createActivity() const
48 // Create AnimationActivity from common XAnimate parameters:
49 ActivitiesFactory::CommonParameters aParms( fillCommonParameters() );
50 uno::Reference<animations::XAnimate> const& xAnimateNode =getXAnimateNode();
51 rtl::OUString const attrName( xAnimateNode->getAttributeName() );
52 AttributableShapeSharedPtr const pShape( getShape() );
54 switch (AnimationFactory::classifyAttributeName( attrName )) {
55 default:
56 case AnimationFactory::CLASS_UNKNOWN_PROPERTY:
57 ENSURE_OR_THROW(
58 false,
59 "Unexpected attribute class (unknown or empty attribute name)" );
60 break;
62 case AnimationFactory::CLASS_NUMBER_PROPERTY:
63 return ActivitiesFactory::createAnimateActivity(
64 aParms,
65 AnimationFactory::createNumberPropertyAnimation(
66 attrName,
67 pShape,
68 getContext().mpSubsettableShapeManager,
69 getSlideSize() ),
70 xAnimateNode );
72 case AnimationFactory::CLASS_ENUM_PROPERTY:
73 return ActivitiesFactory::createAnimateActivity(
74 aParms,
75 AnimationFactory::createEnumPropertyAnimation(
76 attrName,
77 pShape,
78 getContext().mpSubsettableShapeManager,
79 getSlideSize() ),
80 xAnimateNode );
82 case AnimationFactory::CLASS_COLOR_PROPERTY:
83 return ActivitiesFactory::createAnimateActivity(
84 aParms,
85 AnimationFactory::createColorPropertyAnimation(
86 attrName,
87 pShape,
88 getContext().mpSubsettableShapeManager,
89 getSlideSize() ),
90 xAnimateNode );
92 case AnimationFactory::CLASS_STRING_PROPERTY:
93 return ActivitiesFactory::createAnimateActivity(
94 aParms,
95 AnimationFactory::createStringPropertyAnimation(
96 attrName,
97 pShape,
98 getContext().mpSubsettableShapeManager,
99 getSlideSize() ),
100 xAnimateNode );
102 case AnimationFactory::CLASS_BOOL_PROPERTY:
103 return ActivitiesFactory::createAnimateActivity(
104 aParms,
105 AnimationFactory::createBoolPropertyAnimation(
106 attrName,
107 pShape,
108 getContext().mpSubsettableShapeManager,
109 getSlideSize() ),
110 xAnimateNode );
113 return AnimationActivitySharedPtr();
116 } // namespace internal
117 } // namespace slideshow