Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / animations / FUiAnim_AnimationGroupImpl.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_AnimationGroupImpl.h
20  * @brief       This is the header file for the _AnimationGroupImpl class.
21  *
22  * This header file contains the declarations of the _AnimationGroupImpl class. @n
23  */
24
25 #ifndef _FUI_ANIM_INTERNAL_ANIMATION_GROUP_IMPL_H_
26 #define _FUI_ANIM_INTERNAL_ANIMATION_GROUP_IMPL_H_
27
28 #include <FBaseColIList.h>
29 #include <FBaseColIMapT.h>
30
31 #include <FUiAnimAnimationGroup.h>
32
33
34 namespace Tizen { namespace Ui { namespace Animations
35 {
36
37 /**
38  * @class       _AnimationGroupImpl
39  * @brief       This is the header file for the _AnimationGroupImpl class.
40  * @since       2.0
41  *
42  * This header file contains the declarations of the _AnimationGroupImpl class. @n
43  *
44  */
45 class _AnimationGroupImpl
46         : public Tizen::Base::Object
47 {
48 public:
49         /**
50          * This is the destructor for this class.
51          *
52          * @since       2.0
53          */
54         ~_AnimationGroupImpl(void);
55
56         /**
57          * This is the constructor for this class.
58          *
59          * @since       2.0
60          */
61         _AnimationGroupImpl(AnimationGroup* pAnimationGroup);
62
63         /**
64          * Initializes this instance of _AnimationGroupImpl with the specified parameters.
65          *
66          * @since                       2.0
67          * @return              An error code
68          * @exception           E_SUCCESS The method was successful.
69          * @exception           E_SYSTEM Failed to construct.
70          */
71         result Construct(void);
72
73         /**
74          * Frees the resources allocated by this _AnimationGroupImpl instance.
75          *
76          * @since                       2.0
77          * @return              An error code
78          * @exception           E_SUCCESS The method was successful.
79          * @exception           E_SYSTEM Failed to free the resource possessed by this instance.
80          */
81         result Dispose(void);
82
83         /**
84          * Returns a copy of %AnimationBase object.
85          *
86          * @return              An error code
87          * @param[in]   animTarget                      Property to be animated.
88          * @param[in]   animationBase           An object of type %AnimationBase whose copy is to be created
89          * @param[out]  res                                     Error code
90          * @exception   null                            If the passed argument is invalid.
91          */
92         AnimationBase* CloneAnimation(AnimationTargetType animTarget, AnimationBase& animationBase, result& res);
93
94
95         /**
96          * Structure Used For Storing Animations
97          */
98         struct AnimationStore
99         {
100                 AnimationTargetType animTarget;
101                 AnimationBase* pAnimationBase;
102                 AnimationStore(void)
103                 {
104                         animTarget = ANIMATION_TARGET_NONE;
105                         pAnimationBase = null;
106                 }
107                 ~AnimationStore(void)
108                 {
109
110                 }
111                 bool operator ==(const AnimationStore& animStore) const;
112                 bool operator !=(const AnimationStore& animStore) const;
113         };
114
115         /**
116          *      The List maintaining the animations
117          */
118         Tizen::Base::Collection::ArrayListT< AnimationStore > animationList;
119
120 private:
121         //
122         // This method is for internal use only. Using this method can cause behavioral, security-related,
123         // and consistency-related issues in the application.
124         //
125         // This is the assignment operator for this class.
126         //
127         // @since       2.0
128         //
129         _AnimationGroupImpl& operator =(const _AnimationGroupImpl&);
130
131         //
132         // This method is for internal use only. Using this method can cause behavioral, security-related,
133         // and consistency-related issues in the application.
134         //
135         // This is the copy constructor for this class.
136         //
137         // @since       2.0
138         //
139         _AnimationGroupImpl(const _AnimationGroupImpl& animationBaseImpl);
140
141         //
142         // This variable is for internal use only. Using this variable can cause behavioral, security-related,
143         // and consistency-related issues in the application.
144         //
145         // @since       2.0
146         //
147         Tizen::Ui::Animations::AnimationGroup* __pAnimationGroup;
148
149 };      // _AnimationGroupImpl
150
151 }}}     // Tizen::Ui::Animations
152
153 #endif //_FUI_ANIM_INTERNAL_ANIMATION_GROUP_IMPL_H_