Merge "Unchecked GetCharacter func when index is over string length" into tizen_2.2
[platform/framework/native/uifw.git] / inc / FUiAnimIVisualElementAnimationProvider.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0/
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        FUiAnimIVisualElementAnimationProvider.h
20  * @brief       This is the header file for the %IVisualElementAnimationProvider interface.
21  *
22  * This header file contains the declarations of the %IVisualElementAnimationProvider interface.
23  */
24
25 #ifndef _FUI_ANIM_IVISUAL_ELEMENT_ANIMATION_PROVIDER_H_
26 #define _FUI_ANIM_IVISUAL_ELEMENT_ANIMATION_PROVIDER_H_
27
28 #include <FOspConfig.h>
29
30 namespace Tizen { namespace Base {
31 class String;
32 }}      // Tizen::Base
33
34 namespace Tizen { namespace Ui { namespace Animations
35 {
36
37 class VisualElement;
38 class VisualElementAnimation;
39
40 /**
41 * @interface    IVisualElementAnimationProvider
42 * @brief        This interface implements the provider for the events generated by the %VisualElement.
43 *
44 * @since        2.0
45 *
46 * The %IVisualElementAnimationProvider interface customizes implicit animations. The class that needs to override default implicit animations must implement this interface, and
47 * the instance created with that class is registered with VisualElement, using the VisualElement::SetAnimationProvider() method.
48 * When the properties defined in %VisualElement and its descendants are changed, the CreateAnimationForProperty() method of this interface is invoked.
49 *
50 * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/ui/animating_uicontrols.htm">Implicit and Explicit Animations</a>.
51 *
52 */
53 class _OSP_EXPORT_ IVisualElementAnimationProvider
54 {
55 public:
56
57         /**
58          * This is the destructor for this class.
59          *
60          * @since       2.0
61          */
62         virtual ~IVisualElementAnimationProvider(void) {}
63
64 public:
65         /**
66          * Invoked for creating an animation when the property is changed.
67          *
68          * @since               2.0
69          *
70          * @return              A VisualElementAnimation instance for @c property
71          * @param[in]   target                  The VisualElement instance that needs implicit animation
72          * @param[in]   property                The property of this instance for which animation is required
73          * @remarks             If implicit animation for @c property is not required, return @c null.
74          */
75         virtual Tizen::Ui::Animations::VisualElementAnimation* CreateAnimationForProperty(Tizen::Ui::Animations::VisualElement& target, const Tizen::Base::String& property) = 0;
76
77
78 protected:
79         // Reserved virtual methods for later extension.
80         //
81         // This method is for internal use only. Using this method can cause behavioral, security-related,
82         // and consistency-related issues in the application.
83         //
84         //
85         // This method is reserved and may change its name at any time without prior notice.
86         //
87         // @since        2.0
88         //
89         virtual void IVisualElementAnimationProvider_Reserved1(void) {}
90
91
92         // Reserved virtual methods for later extension.
93         //
94         // This method is for internal use only. Using this method can cause behavioral, security-related,
95         // and consistency-related issues in the application.
96         //
97         //
98         // This method is reserved and may change its name at any time without prior notice.
99         //
100         // @since        2.0
101         //
102         virtual void IVisualElementAnimationProvider_Reserved2(void) {}
103
104
105         // Reserved virtual methods for later extension.
106         //
107         // This method is for internal use only. Using this method can cause behavioral, security-related,
108         // and consistency-related issues in the application.
109         //
110         //
111         // This method is reserved and may change its name at any time without prior notice.
112         //
113         // @since        2.0
114         //
115         virtual void IVisualElementAnimationProvider_Reserved3(void) {}
116
117
118         // Reserved virtual methods for later extension.
119         //
120         // This method is for internal use only. Using this method can cause behavioral, security-related,
121         // and consistency-related issues in the application.
122         //
123         //
124         // This method is reserved and may change its name at any time without prior notice.
125         //
126         // @since        2.0
127         //
128         virtual void IVisualElementAnimationProvider_Reserved4(void) {}
129
130
131         // Reserved virtual methods for later extension.
132         //
133         // This method is for internal use only. Using this method can cause behavioral, security-related,
134         // and consistency-related issues in the application.
135         //
136         //
137         // This method is reserved and may change its name at any time without prior notice.
138         //
139         // @since        2.0
140         //
141         virtual void IVisualElementAnimationProvider_Reserved5(void) {}
142 };              // IVisualElementAnimationProvider
143
144
145 }}}             // Tizen::Ui::Animations
146
147 #endif //_FUI_ANIM_IVISUAL_ELEMENT_ANIMATION_PROVIDER_H_