Merge "Fix Ime Rotation" into tizen_2.1
[platform/framework/native/uifw.git] / inc / FUiScenesScene.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        FUiScenesScene.h
20  * @brief       This is the header file for the %Scene class.
21  *
22  * This header file contains the declarations of the %Scene class.
23  */
24
25 #ifndef _FUI_SCENES_SCENE_H_
26 #define _FUI_SCENES_SCENE_H_
27
28 #include <FBaseString.h>
29 #include <FUiScenesTypes.h>
30
31
32 namespace Tizen { namespace Ui { namespace Controls
33 {
34 class Form;
35 class Panel;
36 }}}
37
38
39 namespace Tizen { namespace Ui { namespace Scenes
40 {
41
42 class ISceneEventListener;
43
44 /**
45  * @class       Scene
46  * @brief       This class is the %Scene class of a Tizen native applications.
47  *
48  * @since       2.0
49  *
50  * The %Scene is the basic unit of UI switching. @n
51  * The %Scene class is the item class for scene management. It represents individual UI scene.
52  * A scene is combination of form and panel, panel can be omitted.
53  *
54  * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/ui/scene_management.htm">Scene Management</a>.
55  */
56 class _OSP_EXPORT_ Scene
57         : public Tizen::Base::Object
58 {
59 public:
60         /**
61          * This is the destructor for this class.
62          *
63          * @since       2.0
64          */
65         virtual ~Scene(void);
66
67         /**
68          * Checks whether the specified instance of %Scene equals the current instance.
69          *
70          * @since       2.0
71          *
72          * @return              @c true if the specified instance equals the current instance, @n
73          *                              else @c false
74          * @param[in]   rhs             An instance of %Scene
75          * @remarks             The method returns @c false if the specified object is not %Scene.
76          */
77         virtual bool Equals(const Object& rhs) const;
78
79         /**
80          * Gets the hash value of the current instance.
81          *
82          * @since       2.0
83          *
84          * @return              The hash value of the current instance
85          */
86         virtual int GetHashCode(void) const;
87
88         /**
89          * Gets the string ID of %Scene.
90          *
91          * @since       2.0
92          *
93          * @return              The name of %Scene
94          * @see                 SetSceneId()
95          */
96         SceneId GetSceneId(void) const;
97
98         /**
99          * Gets the string ID of Form.
100          *
101          * @since       2.0
102          *
103          * @return              The name of Form
104          */
105         Tizen::Base::String GetFormId(void) const;
106
107         /**
108          * Gets the string ID of Panel.
109          *
110          * @since       2.0
111          *
112          * @return              The name of Panel, @n
113          *                              else an empty string if the %Panel is not specified
114          */
115         Tizen::Base::String GetPanelId(void) const;
116
117         /**
118          * Gets the associated Form instance pointer.
119          *
120          * @since       2.0
121          *
122          * @return              The Form instance pointer
123          * @see                 SetForm()
124          */
125         Tizen::Ui::Controls::Form* GetForm(void) const;
126
127         /**
128          * Gets the associated Panel instance pointer.
129          *
130          * @since       2.0
131          *
132          * @return              The Panel instance pointer, @n
133          *                              else a @c null pointer if the %Panel is not specified
134          * @remarks             The Panel is optional component of %Scene so it may not be always valid.
135          * @see                 SetPanel()
136          */
137         Tizen::Ui::Controls::Panel* GetPanel(void) const;
138
139 protected:
140         //
141         // This method is for internal use only. Using this method can cause behavioral,
142         // security-related, and consistency-related issues in the application.
143         //
144         // @since       2.0
145         //
146         virtual void Scene_Reserved1(void) {}
147
148         //
149         // This method is for internal use only. Using this method can cause behavioral,
150         // security-related, and consistency-related issues in the application.
151         //
152         // @since       2.0
153         //
154         virtual void Scene_Reserved2(void) {}
155
156         //
157         // This method is for internal use only. Using this method can cause behavioral,
158         // security-related, and consistency-related issues in the application.
159         //
160         // @since       2.0
161         //
162         virtual void Scene_Reserved3(void) {}
163
164 private:
165         /**
166          * This default constructor is intentionally declared as private so that only the platform can create an instance.
167          *
168          * @since       2.0
169          */
170         Scene(void);
171
172         /**
173          * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
174          *
175          * @since       2.0
176          */
177         Scene(const Scene& rhs);
178
179         /**
180          * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
181          *
182          * @since       2.0
183          */
184         Scene& operator =(const Scene& rhs);
185
186 private:
187         friend class _SceneImpl;
188         class _SceneImpl* __pSceneImpl;
189
190 }; // Scene
191 } } } // Tizen::Ui::Scenes
192
193 #endif  //_FUI_SCENES_SCENE_H_