Merge "Fix for memory leaks in Lists Signed-off-by: Arun S Devarajan <arun.sd@samsung...
[platform/framework/native/uifw.git] / inc / FUiAnimVisualElementAnimationProvider.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        FUiAnimVisualElementAnimationProvider.h
20  * @brief       This is the header file for the %VisualElementAnimationProvider class.
21  *
22  * This header file contains the declarations of the %VisualElementAnimationProvider class.
23  */
24
25 #ifndef _FUI_ANIM_VISUAL_ELEMENT_ANIMATION_PROVIDER_H_
26 #define _FUI_ANIM_VISUAL_ELEMENT_ANIMATION_PROVIDER_H_
27
28 #include <FBase.h>
29 #include <FUiAnimIVisualElementAnimationProvider.h>
30
31 namespace Tizen { namespace Ui { namespace Animations
32 {
33
34
35 /**
36 * @class        VisualElementAnimationProvider
37 * @brief        This class implements the provider for the events generated by VisualElement.
38 *
39 * @since        2.0
40 *
41 * The %VisualElementAnimationProvider class customizes the implicit animations. The class that needs to override default implicit animations must implement this interface, and
42 * the instance created with that class is registered with VisualElement, using the VisualElement::SetAnimationProvider() method.
43 * When the properties defined in %VisualElement and its descendants are changed, the CreateAnimationForProperty() method of this interface is invoked.
44 */
45
46 class _OSP_EXPORT_ VisualElementAnimationProvider
47         : virtual public IVisualElementAnimationProvider
48 {
49 public:
50
51         /**
52          * This is the default constructor for this class.
53          *
54          * @since               2.0
55          */
56         VisualElementAnimationProvider(void);
57
58
59         /**
60          * This is the destructor for this class.
61          *
62          * @since       2.0
63          */
64         virtual ~VisualElementAnimationProvider(void);
65
66
67 public:
68         /**
69          * Invoked for creating an animation when the property is changed.
70          *
71          * @since               2.0
72          *
73          * @return              A VisualElementAnimation instance for @c property
74          * @param[in]   target                  The VisualElement instance that needs implicit animation
75          * @param[in]   property                The property of this instance for which animation is required
76          * @remarks             If implicit animation for @c property is not required, return @c null.
77          */
78         virtual VisualElementAnimation* CreateAnimationForProperty(VisualElement& target, const Tizen::Base::String& property);
79
80
81 private:
82
83         //
84         // The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
85         //
86         // @since       2.0
87         //
88         VisualElementAnimationProvider(const VisualElementAnimationProvider& value);
89
90         //
91         // The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
92         //
93         // @since       2.0
94         //
95         VisualElementAnimationProvider& operator =(const VisualElementAnimationProvider& value);
96 };              // VisualElementAnimationProvider
97
98
99 }}}             // Tizen::Ui::Animations
100
101 #endif //_FUI_ANIM_VISUAL_ELEMENT_ANIMATION_PROVIDER_H_
102