Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / animations / FUiAnim_VisualElementAnimationImpl.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_VisualElementAnimationImpl.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_ANIMATION_IMPL_H_
26 #define _FUI_ANIM_INTERNAL_VISUAL_ELEMENT_ANIMATION_IMPL_H_
27
28 #include <FBaseErrorDefine.h>
29 #include <FBaseObject.h>
30 #include <FUiVariant.h>
31
32 #include "FUiAnim_VisualElementAnimationTiming.h"
33
34
35 namespace Tizen { namespace Ui { namespace Animations
36 {
37
38 class VisualElement;
39 class IVisualElementAnimationStatusEventListener;
40 class IVisualElementAnimationTimingFunction;
41 class IVisualElementAnimationValueInterpolator;
42 class VisualElementAnimation;
43
44 class _VisualElementAnimationImpl
45         : public _VisualElementAnimationTiming
46 {
47 public:
48         _VisualElementAnimationImpl(void);
49         _VisualElementAnimationImpl(const _VisualElementAnimationImpl& animationImpl);
50         virtual ~_VisualElementAnimationImpl(void);
51
52         virtual bool Equals(const Tizen::Base::Object& obj) const;
53         virtual int GetHashCode(void) const;
54
55         result CopyAnimationValue(const _VisualElementAnimationImpl& animationImpl);
56
57         void SetStatusEventListener(IVisualElementAnimationStatusEventListener* pListener);
58         IVisualElementAnimationStatusEventListener* GetStatusEventListener(void) const;
59
60         void SetTimingFunction(const IVisualElementAnimationTimingFunction* pTimingFunction);
61         const IVisualElementAnimationTimingFunction* GetTimingFunction(void) const;
62
63         void SetValueInterpolator(const IVisualElementAnimationValueInterpolator* pInterpolator);
64         const IVisualElementAnimationValueInterpolator* GetValueInterpolator(void) const;
65
66         void SetUserData(void* pUserData);
67         void* GetUserData(void) const;
68
69         void SetEventTarget(VisualElement& target);
70         VisualElement& GetEventTarget(void) const;
71
72         static bool IsAnimationSupported(void);
73
74         static _VisualElementAnimationImpl* GetInstance(VisualElementAnimation& animation);
75         static const _VisualElementAnimationImpl* GetInstance(const VisualElementAnimation& animation);
76
77 private:
78         _VisualElementAnimationImpl& operator =(const _VisualElementAnimationImpl& rhs);
79
80 private:
81         IVisualElementAnimationStatusEventListener* __pStatusListener;
82         const IVisualElementAnimationTimingFunction* __pTimingFunction;
83         const IVisualElementAnimationValueInterpolator* __pInterpolator;
84         void* __pUserData;
85         VisualElement* __pEventTarget;
86 };              // _VisualElementAnimationImpl
87
88
89 }}}             // Tizen::Ui::Animations
90
91 #endif // _FUI_ANIM_INTERNAL_VISUAL_ELEMENT_ANIMATION_IMPL_H_