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 FUiAnimVisualElementAnimationGroup.cpp
20 * @brief This file contains implementation of VisualElementAnimationGroup class
22 * This file contains implementation VisualElementAnimationGroup class.
25 #include <FBaseSysLog.h>
27 #include <FUiAnimVisualElementAnimation.h>
28 #include <FUiAnimVisualElementAnimationGroup.h>
30 #include "FUiAnim_VisualElementAnimationGroupImpl.h"
32 namespace Tizen { namespace Ui { namespace Animations
35 VisualElementAnimationGroup::VisualElementAnimationGroup(void)
36 : VisualElementAnimation(new (std::nothrow) _VisualElementAnimationGroupImpl())
38 if (_pAnimationImpl == null)
40 SetLastResult(E_OUT_OF_MEMORY);
44 VisualElementAnimationGroup::~VisualElementAnimationGroup(void)
49 VisualElementAnimationGroup::VisualElementAnimationGroup(const VisualElementAnimationGroup& animationGroup)
50 : VisualElementAnimation(null)
54 const _VisualElementAnimationGroupImpl* pAnimationImpl = _VisualElementAnimationGroupImpl::GetInstance(animationGroup);
56 _pAnimationImpl = new (std::nothrow) _VisualElementAnimationGroupImpl(*pAnimationImpl);
57 SysTryReturnVoidResult(NID_UI_ANIM, (_pAnimationImpl), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
60 VisualElementAnimationGroup&
61 VisualElementAnimationGroup::operator =(const VisualElementAnimationGroup& rhs)
67 _VisualElementAnimationGroupImpl* pAnimationImpl = _VisualElementAnimationGroupImpl::GetInstance(*this);
68 const _VisualElementAnimationGroupImpl* pRhsAnimationImpl = _VisualElementAnimationGroupImpl::GetInstance(rhs);
70 result r = pAnimationImpl->CopyAnimationValue(*pRhsAnimationImpl);
71 SysTryReturn(NID_UI_ANIM, (r == E_SUCCESS), *this, r, "[%s] Failed to copy the animation value.", GetErrorMessage(r));
78 VisualElementAnimationGroup::operator ==(const VisualElementAnimationGroup& rhs) const
80 return VisualElementAnimation::operator ==(rhs);
84 VisualElementAnimationGroup::operator !=(const VisualElementAnimationGroup& rhs) const
86 return (!operator ==(rhs));
90 VisualElementAnimationGroup::Equals(const Tizen::Base::Object& obj) const
92 const VisualElementAnimationGroup* pAnimationGroup = dynamic_cast< const VisualElementAnimationGroup* >(&obj);
94 if (pAnimationGroup == null)
99 return (*this == *pAnimationGroup);
103 VisualElementAnimationGroup::GetHashCode(void) const
105 return VisualElementAnimation::GetHashCode();
108 VisualElementAnimation*
109 VisualElementAnimationGroup::CloneN(void) const
111 VisualElementAnimation* pCloned = new (std::nothrow) VisualElementAnimationGroup(*this);
112 SysTryReturn(NID_UI_ANIM, pCloned, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
118 VisualElementAnimationGroup::GetAnimationCount(void) const
120 const _VisualElementAnimationGroupImpl* pAnimationImpl = _VisualElementAnimationGroupImpl::GetInstance(*this);
122 return pAnimationImpl->GetAnimationCount();
126 VisualElementAnimationGroup::AddAnimation(const VisualElementAnimation& animation)
128 _VisualElementAnimationGroupImpl* pAnimationImpl = _VisualElementAnimationGroupImpl::GetInstance(*this);
130 return pAnimationImpl->AddAnimation(animation);
134 VisualElementAnimationGroup::RemoveAnimationAt(int index)
136 _VisualElementAnimationGroupImpl* pAnimationImpl = _VisualElementAnimationGroupImpl::GetInstance(*this);
138 SysTryReturnResult(NID_UI_ANIM, (index >= 0 && index < pAnimationImpl->GetAnimationCount()), E_OUT_OF_RANGE, "Index (%d) is out of range.", index);
140 return pAnimationImpl->RemoveAnimationAt(index);
144 VisualElementAnimationGroup::RemoveAllAnimations(void)
146 _VisualElementAnimationGroupImpl* pAnimationImpl = _VisualElementAnimationGroupImpl::GetInstance(*this);
148 pAnimationImpl->RemoveAllAnimations();
151 VisualElementAnimation*
152 VisualElementAnimationGroup::GetAnimationAtN(int index) const
154 const _VisualElementAnimationGroupImpl* pAnimationImpl = _VisualElementAnimationGroupImpl::GetInstance(*this);
156 SysTryReturn(NID_UI_ANIM, (index >= 0 && index < pAnimationImpl->GetAnimationCount()), null, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] Index (%d) is out of range.", index);
158 return pAnimationImpl->GetAnimationAtN(index);
161 }}} // Tizen::Ui::Animations