3 // Copyright (c) 2012 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://www.tizenopensource.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.
18 #include "SampleDimensionAnimation.h"
19 #include "AnimationForm.h"
21 using namespace Osp::Graphics;
22 using namespace Osp::Ui;
23 using namespace Osp::Ui::Controls;
24 using namespace Osp::Ui::Animations;
26 SampleDimensionAnimation::SampleDimensionAnimation(AnimationForm& animationForm)
27 : AnimationManager(animationForm)
36 SampleDimensionAnimation::~SampleDimensionAnimation(void)
41 SampleDimensionAnimation::Initialize(void)
45 __pButton1 = new (std::nothrow) Button();
46 __pButton1->Construct(Rectangle(0+offset,0+offset,__buttonSize,__buttonSize),L"I");
47 __pAnimationForm->AddControl(*__pButton1);
49 __pButton2 = new (std::nothrow) Button();
50 __pButton2->Construct(Rectangle(__clientSize.width-__buttonSize-offset,0+offset,__buttonSize,__buttonSize),L"II");
51 __pAnimationForm->AddControl(*__pButton2);
53 __pButton3 = new (std::nothrow) Button();
54 __pButton3->Construct(Rectangle(__clientCenter.x,__clientCenter.y,__buttonSize,__buttonSize),L"III");
55 __pAnimationForm->AddControl(*__pButton3);
57 __pButton4 = new (std::nothrow) Button();
58 __pButton4->Construct(Rectangle(0+offset,__clientSize.height-__buttonSize-offset,__buttonSize,__buttonSize),L"IV");
59 __pAnimationForm->AddControl(*__pButton4);
61 __pButton5 = new (std::nothrow) Button();
62 __pButton5->Construct(Rectangle(__clientSize.width-__buttonSize-offset,__clientSize.height-__buttonSize-offset,__buttonSize,__buttonSize),L"V");
63 __pAnimationForm->AddControl(*__pButton5);
67 SampleDimensionAnimation::PlayAnimation(void)
73 Dimension controlSize1 = __pButton1->GetSize();
74 Dimension controlSize2 = __pButton2->GetSize();
75 Dimension controlSize3 = __pButton3->GetSize();
76 Dimension controlSize4 = __pButton4->GetSize();
77 Dimension controlSize5 = __pButton5->GetSize();
79 DimensionAnimation dimensionAnimation1(Dimension(__buttonSize,__buttonSize),Dimension(__buttonSize,__buttonSize),1000,ANIMATION_INTERPOLATOR_LINEAR);
80 AnimationManager::CheckAnimationSuccessStatus(dimensionAnimation1);
81 DimensionAnimation dimensionAnimation2(Dimension(__buttonSize,__buttonSize),Dimension(__buttonSize,__buttonSize),1000,ANIMATION_INTERPOLATOR_LINEAR);
82 AnimationManager::CheckAnimationSuccessStatus(dimensionAnimation2);
83 DimensionAnimation dimensionAnimation3(Dimension(__buttonSize,__buttonSize),Dimension(__buttonSize,__buttonSize),1000,ANIMATION_INTERPOLATOR_LINEAR);
84 AnimationManager::CheckAnimationSuccessStatus(dimensionAnimation3);
85 DimensionAnimation dimensionAnimation4(Dimension(__buttonSize,__buttonSize),Dimension(__buttonSize,__buttonSize),1000,ANIMATION_INTERPOLATOR_LINEAR);
86 AnimationManager::CheckAnimationSuccessStatus(dimensionAnimation4);
87 DimensionAnimation dimensionAnimation5(Dimension(__buttonSize,__buttonSize),Dimension(__buttonSize,__buttonSize),1000,ANIMATION_INTERPOLATOR_LINEAR);
88 AnimationManager::CheckAnimationSuccessStatus(dimensionAnimation5);
90 //Initialize Animation
91 if (controlSize1 == Dimension(__buttonSize,__buttonSize))
93 dimensionAnimation1 = DimensionAnimation(Dimension(__buttonSize,__buttonSize),Dimension(__buttonSize-offset,__buttonSize-offset),1000,ANIMATION_INTERPOLATOR_LINEAR);
97 dimensionAnimation1 = DimensionAnimation(Dimension(__buttonSize-offset,__buttonSize-offset),Dimension(__buttonSize,__buttonSize),1000,ANIMATION_INTERPOLATOR_LINEAR);
99 AnimationManager::CheckAnimationSuccessStatus(dimensionAnimation1);
100 AnimationManager::InitializeAnimationSettings(dimensionAnimation1);
102 if (controlSize2 == Dimension(__buttonSize,__buttonSize))
104 dimensionAnimation2 = DimensionAnimation(Dimension(__buttonSize,__buttonSize),Dimension(__buttonSize-offset,__buttonSize-offset),1000,ANIMATION_INTERPOLATOR_LINEAR);
108 dimensionAnimation2 = DimensionAnimation(Dimension(__buttonSize-offset,__buttonSize-offset),Dimension(__buttonSize,__buttonSize),1000,ANIMATION_INTERPOLATOR_LINEAR);
110 AnimationManager::CheckAnimationSuccessStatus(dimensionAnimation2);
111 AnimationManager::InitializeAnimationSettings(dimensionAnimation2);
113 if (controlSize4 == Dimension(__buttonSize,__buttonSize))
115 dimensionAnimation4 = DimensionAnimation(Dimension(__buttonSize,__buttonSize),Dimension(__buttonSize-offset,__buttonSize-offset),1000,ANIMATION_INTERPOLATOR_LINEAR);
119 dimensionAnimation4 = DimensionAnimation(Dimension(__buttonSize-offset,__buttonSize-offset),Dimension(__buttonSize,__buttonSize),1000,ANIMATION_INTERPOLATOR_LINEAR);
121 AnimationManager::CheckAnimationSuccessStatus(dimensionAnimation4);
122 AnimationManager::InitializeAnimationSettings(dimensionAnimation4);
124 if (controlSize5 == Dimension(__buttonSize,__buttonSize))
126 dimensionAnimation5 = DimensionAnimation(Dimension(__buttonSize,__buttonSize),Dimension(__buttonSize-offset,__buttonSize-offset),1000,ANIMATION_INTERPOLATOR_LINEAR);
130 dimensionAnimation5 = DimensionAnimation(Dimension(__buttonSize-offset,__buttonSize-offset),Dimension(__buttonSize,__buttonSize),1000,ANIMATION_INTERPOLATOR_LINEAR);
132 AnimationManager::CheckAnimationSuccessStatus(dimensionAnimation5);
133 AnimationManager::InitializeAnimationSettings(dimensionAnimation5);
135 if (controlSize3 == Dimension(__buttonSize,__buttonSize))
137 dimensionAnimation3 = DimensionAnimation(Dimension(__buttonSize,__buttonSize),Dimension(__buttonSize+offset,__buttonSize+offset),1000,ANIMATION_INTERPOLATOR_LINEAR);
141 dimensionAnimation3 = DimensionAnimation(Dimension(__buttonSize+offset,__buttonSize+offset),Dimension(__buttonSize,__buttonSize),1000,ANIMATION_INTERPOLATOR_LINEAR);
143 AnimationManager::CheckAnimationSuccessStatus(dimensionAnimation3);
144 AnimationManager::InitializeAnimationSettings(dimensionAnimation3);
146 //Initialize Animator
147 ControlAnimator* pAnimator1 = __pButton1->GetControlAnimator();
148 AnimationManager::CheckAnimatorSuccessStatus(*pAnimator1);
149 ControlAnimator* pAnimator2 = __pButton2->GetControlAnimator();
150 AnimationManager::CheckAnimatorSuccessStatus(*pAnimator2);
151 ControlAnimator* pAnimator3 = __pButton3->GetControlAnimator();
152 AnimationManager::CheckAnimatorSuccessStatus(*pAnimator3);
153 ControlAnimator* pAnimator4 = __pButton4->GetControlAnimator();
154 AnimationManager::CheckAnimatorSuccessStatus(*pAnimator4);
155 ControlAnimator* pAnimator5 = __pButton5->GetControlAnimator();
156 AnimationManager::CheckAnimatorSuccessStatus(*pAnimator5);
159 r = pAnimator1->StartUserAnimation(ANIMATION_TARGET_SIZE,dimensionAnimation1);
160 AnimationManager::CheckAnimationSuccessStatus(r,L"StartAnimation");
162 r = pAnimator2->StartUserAnimation(ANIMATION_TARGET_SIZE,dimensionAnimation2);
163 AnimationManager::CheckAnimationSuccessStatus(r,L"StartAnimation");
165 r = pAnimator3->StartUserAnimation(ANIMATION_TARGET_SIZE,dimensionAnimation3);
166 AnimationManager::CheckAnimationSuccessStatus(r,L"StartAnimation");
168 r = pAnimator4->StartUserAnimation(ANIMATION_TARGET_SIZE,dimensionAnimation4);
169 AnimationManager::CheckAnimationSuccessStatus(r,L"StartAnimation");
171 r = pAnimator5->StartUserAnimation(ANIMATION_TARGET_SIZE,dimensionAnimation5);
172 AnimationManager::CheckAnimationSuccessStatus(r,L"StartAnimation");
176 SampleDimensionAnimation::StopAnimation(void)
178 result r = E_SUCCESS;
180 for (int i=0; i<__pAnimationForm->GetControlCount(); ++i)
182 Control* pControl = __pAnimationForm->GetControl(i);
183 ControlAnimator* pAnimator = pControl->GetControlAnimator();
184 AnimationManager::CheckAnimatorSuccessStatus(*pAnimator);
186 if (pAnimator->GetStatus() == ANIMATOR_STATUS_PLAYING)
188 r = pAnimator->StopAnimation(ANIMATION_TRIGGER_USER);
189 CheckAnimationSuccessStatus(r,L"StopAnimation");