Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / animations / FUiAnim_VisualElementValueAnimationImpl.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://floralicense.org/license/
10 //
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.
16 //
17
18 /**
19  * @file        FUiAnim_VisualElementValueAnimationImpl.h
20  * @brief       This is the header file for the _VisualElementAnimationImpl class.
21  *
22  * This header file contains the declarations of the _VisualElementAnimationImpl class.
23  */
24
25 #ifndef _FUI_ANIM_INTERNAL_VISUAL_ELEMENT_VALUE_ANIMATION_IMPL_H_
26 #define _FUI_ANIM_INTERNAL_VISUAL_ELEMENT_VALUE_ANIMATION_IMPL_H_
27
28 #include <FBaseErrorDefine.h>
29 #include <FBaseObject.h>
30 #include <FUiVariant.h>
31
32 #include "FUiAnim_VisualElementAnimationImpl.h"
33
34
35 namespace Tizen { namespace Ui { namespace Animations
36 {
37
38 class IVisualElementAnimationTickEventListener;
39 class _VisualElementAnimationKeyFrame;
40 class VisualElementValueAnimation;
41
42 class _VisualElementValueAnimationImpl
43         : public _VisualElementAnimationImpl
44 {
45 public:
46         _VisualElementValueAnimationImpl(void);
47         _VisualElementValueAnimationImpl(const _VisualElementValueAnimationImpl& animationImpl);
48         virtual ~_VisualElementValueAnimationImpl(void);
49
50         virtual bool Equals(const Tizen::Base::Object& obj) const;
51         virtual int GetHashCode(void) const;
52
53         result CopyAnimationValue(const _VisualElementValueAnimationImpl& animationImpl);
54
55         void SetTickEventListener(IVisualElementAnimationTickEventListener* pListener);
56         IVisualElementAnimationTickEventListener* GetTickEventListener(void) const;
57
58         void SetStartValue(const Tizen::Ui::Variant& startValue);
59         Tizen::Ui::Variant GetStartValue(void) const;
60
61         void SetEndValue(const Tizen::Ui::Variant& endValue);
62         Tizen::Ui::Variant GetEndValue(void) const;
63
64         void SetEndValueApplied(bool apply);
65         bool IsEndValueApplied(void) const;
66
67         result AddKeyFrame(float timeProgress, const Tizen::Ui::Variant& value, const IVisualElementAnimationTimingFunction* pTimingFunction);
68         result RemoveKeyFrame(float timeProgress);
69         void RemoveAllKeyFrames(void);
70
71         static _VisualElementValueAnimationImpl* GetInstance(VisualElementValueAnimation& animation);
72         static const _VisualElementValueAnimationImpl* GetInstance(const VisualElementValueAnimation& animation);
73
74         _VisualElementAnimationKeyFrame* GetKeyFrame(void) const;
75
76         bool IsValid(void) const;
77         bool IsValidKeyFrameType(void) const;
78
79         virtual bool IsValidValues(void) const;
80         virtual void OnTickOccurred(VisualElement& target, const Tizen::Ui::Variant& currentValue);
81
82 private:
83         _VisualElementValueAnimationImpl& operator =(const _VisualElementValueAnimationImpl& rhs);
84
85 protected:
86         Variant __start;
87         Variant __end;
88
89 private:
90         IVisualElementAnimationTickEventListener* __pTickListener;
91
92         bool __applyEndValue;
93
94         _VisualElementAnimationKeyFrame* __pKeyFrame;
95
96 };              // _VisualElementValueAnimationImpl
97
98
99 }}}             // Tizen::Ui::Animations
100
101 #endif // _FUI_ANIM_INTERNAL_VISUAL_ELEMENT_VALUE_ANIMATION_IMPL_H_