Merge "Fix Ime Rotation" into tizen_2.1
[platform/framework/native/uifw.git] / inc / FUiScenesISceneAnimationProvider.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        FUiScenesISceneAnimationProvider.h
20  * @brief       This is the header file for the %ISceneAnimationProvider interface.
21  *
22  * This header file contains the declarations of the %ISceneAnimationProvider interface.
23  */
24
25 #ifndef _FUI_SCENES_ISCENE_ANIMATION_PROVIDER_H_
26 #define _FUI_SCENES_ISCENE_ANIMATION_PROVIDER_H_
27
28 #include <FUiScenesTypes.h>
29
30
31 namespace Tizen { namespace Base { namespace Collection
32 {
33 class IList;
34 }}}
35
36
37 namespace Tizen { namespace Ui { namespace Scenes
38 {
39
40 /**
41  * @interface   ISceneAnimationProvider
42  * @brief               This interface is the interface for providing custom animation operation on scene transition.
43  *
44  * @since       2.0
45  *
46  * The %ISceneAnimationProvider interface is the interface for providing custom animation operation on scene transition.
47  *
48  * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/ui/transition_animation.htm">Transition Animations</a>.
49  */
50 class _OSP_EXPORT_ ISceneAnimationProvider
51 {
52 public:
53         /**
54          * This polymorphic destructor should be overridden if required. This way,
55          * the destructors of the derived classes are called when the destructor of this interface is called.
56          *
57          * @since       2.0
58          */
59         virtual ~ISceneAnimationProvider(void) {}
60
61         /**
62          * Called on scene transition exactly before current Form (form to form transition) is changed or show state
63          * (panel to panel transition) is changed.
64          *
65          * @since       2.0
66          *
67          * @param[in]   sceneId                 The scene ID that requires the animator settings
68          * @param[in]   pArgs                   A pointer to an argument list
69          * @param[in]   type                    The animation type
70          * @param[in]   formTransition  Set to @c true if the transition is form to form transition, @n
71          *                                                              else @c false if the transition is panel to panel transition (Based on same Form)
72          * @remarks             To show custom scene transition animation, add animator modification code in this callback. @n
73          *                              Animation is initiated by SceneManager after this method is called.
74          *                              The form to form transition animation is triggered by Tizen::Ui::Animations::FrameAnimator::SetCurrentForm(),
75          *                              and the panel to panel transition animation is triggered by Tizen::Ui::Animations::ControlAnimator::SetShowState().
76          *
77          */
78         virtual void PrepareAnimation(const Tizen::Ui::Scenes::SceneId& sceneId, Tizen::Base::Collection::IList* pArgs,
79                                                                   Tizen::Ui::Scenes::SceneTransitionAnimationType type, bool formTransition) = 0;
80
81 protected:
82         //
83         // This method is for internal use only. Using this method can cause behavioral,
84         // security-related, and consistency-related issues in the application.
85         //
86         // @since       2.0
87         //
88         virtual void ISceneAnimationProvider_Reserved1(void) {}
89
90         //
91         // This method is for internal use only. Using this method can cause behavioral,
92         // security-related, and consistency-related issues in the application.
93         //
94         // @since       2.0
95         //
96         virtual void ISceneAnimationProvider_Reserved2(void) {}
97
98         //
99         // This method is for internal use only. Using this method can cause behavioral,
100         // security-related, and consistency-related issues in the application.
101         //
102         // @since       2.0
103         //
104         virtual void ISceneAnimationProvider_Reserved3(void) {}
105
106 }; // ISceneAnimationProvider
107 } } } // Tizen::Ui::Scenes
108
109 #endif  //_FUI_SCENES_ISCENE_ANIMATION_PROVIDER_H_