2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FUiAnim_VisualElementAnimationImpl.cpp
20 * @brief This file contains implementation of _VisualElementAnimationImpl class
22 * This file contains implementation _VisualElementAnimationImpl class.
25 #include <FBaseSysLog.h>
27 #include <FUiAnimVisualElementAnimation.h>
28 #include <FUiAnimIVisualElementAnimationStatusEventListener.h>
29 #include <FUiAnimIVisualElementAnimationTimingFunction.h>
30 #include <FUiAnimIVisualElementAnimationValueInterpolator.h>
32 #include "FUiAnim_VisualElementAnimationImpl.h"
33 #include "FUiAnim_AnimationManager.h"
34 #include "FUiAnim_TransactionNode.h"
36 namespace Tizen { namespace Ui { namespace Animations
40 _VisualElementAnimationImpl::_VisualElementAnimationImpl(void)
41 : __pStatusListener(null)
42 , __pTimingFunction(null)
43 , __pInterpolator(null)
45 , __pEventTarget(null)
47 _TransactionNode* pNode = _AnimationManager::GetInstance()->GetCurrentTransaction(false);
51 result r = CopyAnimationValue(*pNode);
53 SysTryReturnVoidResult(NID_UI_ANIM, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
57 _VisualElementAnimationImpl::_VisualElementAnimationImpl(const _VisualElementAnimationImpl& animationImpl)
58 : __pStatusListener(null)
59 , __pTimingFunction(null)
60 , __pInterpolator(null)
62 , __pEventTarget(null)
64 result r = CopyAnimationValue(animationImpl);
66 SysTryReturnVoidResult(NID_UI_ANIM, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
69 _VisualElementAnimationImpl::~_VisualElementAnimationImpl(void)
75 _VisualElementAnimationImpl::Equals(const Tizen::Base::Object& obj) const
82 const _VisualElementAnimationImpl* pAnimationImpl = dynamic_cast< const _VisualElementAnimationImpl* >(&obj);
84 if (pAnimationImpl == null)
89 return ((GetDuration() == pAnimationImpl->GetDuration())
90 && (GetDelay() == pAnimationImpl->GetDelay())
91 && (GetOffset() == pAnimationImpl->GetOffset())
92 && (GetRepeatCount() == pAnimationImpl->GetRepeatCount())
93 && (GetScaleRatio() == pAnimationImpl->GetScaleRatio())
94 && (IsAutoReverseEnabled() == pAnimationImpl->IsAutoReverseEnabled())
95 && (__pStatusListener == pAnimationImpl->__pStatusListener)
96 && (__pTimingFunction == pAnimationImpl->__pTimingFunction)
97 && (__pInterpolator == pAnimationImpl->__pInterpolator)
98 && (__pUserData == pAnimationImpl->__pUserData));
102 _VisualElementAnimationImpl::GetHashCode(void) const
104 return (GetDuration() + GetOffset() + GetDelay() + GetRepeatCount() + GetScaleRatio() + IsAutoReverseEnabled());
108 _VisualElementAnimationImpl::CopyAnimationValue(const _VisualElementAnimationImpl& animationImpl)
110 SetDuration(animationImpl.GetDuration());
111 SetDelay(animationImpl.GetDelay());
112 SetOffset(animationImpl.GetOffset());
113 SetRepeatCount(animationImpl.GetRepeatCount());
114 SetScaleRatio(animationImpl.GetScaleRatio());
115 SetAutoReverseEnabled(animationImpl.IsAutoReverseEnabled());
117 __pStatusListener = animationImpl.__pStatusListener;
118 __pTimingFunction = animationImpl.__pTimingFunction;
119 __pInterpolator = animationImpl.__pInterpolator;
120 __pUserData = animationImpl.__pUserData;
121 __pEventTarget = animationImpl.__pEventTarget;
127 _VisualElementAnimationImpl::IsAnimationSupported(void)
129 static bool isAnimationSupported = true;
131 return isAnimationSupported;
135 _VisualElementAnimationImpl::SetStatusEventListener(IVisualElementAnimationStatusEventListener* pListener)
137 __pStatusListener = pListener;
140 IVisualElementAnimationStatusEventListener*
141 _VisualElementAnimationImpl::GetStatusEventListener(void) const
143 return __pStatusListener;
147 _VisualElementAnimationImpl::SetTimingFunction(const IVisualElementAnimationTimingFunction* pTimingFunction)
149 __pTimingFunction = pTimingFunction;
152 const IVisualElementAnimationTimingFunction*
153 _VisualElementAnimationImpl::GetTimingFunction(void) const
155 return __pTimingFunction;
159 _VisualElementAnimationImpl::SetValueInterpolator(const IVisualElementAnimationValueInterpolator* pInterpolator)
161 __pInterpolator = pInterpolator;
164 const IVisualElementAnimationValueInterpolator*
165 _VisualElementAnimationImpl::GetValueInterpolator(void) const
167 return __pInterpolator;
171 _VisualElementAnimationImpl::SetUserData(void* pUserData)
173 __pUserData = pUserData;
177 _VisualElementAnimationImpl::GetUserData(void) const
183 _VisualElementAnimationImpl::SetEventTarget(VisualElement& target)
185 __pEventTarget = ⌖
189 _VisualElementAnimationImpl::GetEventTarget(void) const
191 return *__pEventTarget;
194 _VisualElementAnimationImpl*
195 _VisualElementAnimationImpl::GetInstance(VisualElementAnimation& animation)
197 return animation._pAnimationImpl;
200 const _VisualElementAnimationImpl*
201 _VisualElementAnimationImpl::GetInstance(const VisualElementAnimation& animation)
203 return static_cast<const _VisualElementAnimationImpl*>(animation._pAnimationImpl);
207 }}} // Tizen::Ui::Animations