Update ooo320-m1
[ooovba.git] / slideshow / source / engine / animationnodes / animationtransformnode.cxx
blob7a2697fdacc9f1261fd2c8663cb6fa7e5e04a0c4
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: animationtransformnode.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>
37 #include <com/sun/star/animations/AnimationTransformType.hpp>
39 #include "animationtransformnode.hxx"
40 #include "animationfactory.hxx"
41 #include "activitiesfactory.hxx"
43 using namespace com::sun::star;
45 namespace slideshow {
46 namespace internal {
48 void AnimationTransformNode::dispose()
50 mxTransformNode.clear();
51 AnimationBaseNode::dispose();
54 AnimationActivitySharedPtr AnimationTransformNode::createActivity() const
56 ActivitiesFactory::CommonParameters aParms( fillCommonParameters() );
58 const sal_Int16 nTransformType( mxTransformNode->getTransformType() );
60 const AttributableShapeSharedPtr& rShape( getShape() );
62 switch( nTransformType )
64 default:
65 ENSURE_OR_THROW(
66 false, "AnimationTransformNode::createTransformActivity(): "
67 "Unknown transform type" );
69 case animations::AnimationTransformType::TRANSLATE:
70 // FALLTHROUGH intended
71 case animations::AnimationTransformType::SCALE:
72 return ActivitiesFactory::createAnimateActivity(
73 aParms,
74 AnimationFactory::createPairPropertyAnimation(
75 rShape,
76 getContext().mpSubsettableShapeManager,
77 getSlideSize(),
78 nTransformType ),
79 getXAnimateNode() );
81 case animations::AnimationTransformType::ROTATE:
82 return ActivitiesFactory::createAnimateActivity(
83 aParms,
84 AnimationFactory::createNumberPropertyAnimation(
85 ::rtl::OUString(
86 RTL_CONSTASCII_USTRINGPARAM("Rotate") ),
87 rShape,
88 getContext().mpSubsettableShapeManager,
89 getSlideSize() ),
90 getXAnimateNode() );
92 case animations::AnimationTransformType::SKEWX:
93 return ActivitiesFactory::createAnimateActivity(
94 aParms,
95 AnimationFactory::createNumberPropertyAnimation(
96 ::rtl::OUString(
97 RTL_CONSTASCII_USTRINGPARAM("SkewX") ),
98 rShape,
99 getContext().mpSubsettableShapeManager,
100 getSlideSize() ),
101 getXAnimateNode() );
103 case animations::AnimationTransformType::SKEWY:
104 return ActivitiesFactory::createAnimateActivity(
105 aParms,
106 AnimationFactory::createNumberPropertyAnimation(
107 ::rtl::OUString(
108 RTL_CONSTASCII_USTRINGPARAM("SkewY") ),
109 rShape,
110 getContext().mpSubsettableShapeManager,
111 getSlideSize() ),
112 getXAnimateNode() );
116 } // namespace internal
117 } // namespace slideshow