Fixed to add the AllWindowList
[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 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        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          */
95         SceneId GetSceneId(void) const;
96
97         /**
98          * Gets the string ID of Form.
99          *
100          * @since       2.0
101          *
102          * @return              The name of Form
103          */
104         Tizen::Base::String GetFormId(void) const;
105
106         /**
107          * Gets the string ID of Panel.
108          *
109          * @since       2.0
110          *
111          * @return              The name of Panel, @n
112          *                              else an empty string if the %Panel is not specified
113          */
114         Tizen::Base::String GetPanelId(void) const;
115
116         /**
117          * Gets the associated Form instance pointer.
118          *
119          * @since       2.0
120          *
121          * @return              The Form instance pointer
122          */
123         Tizen::Ui::Controls::Form* GetForm(void) const;
124
125         /**
126          * Gets the associated Panel instance pointer.
127          *
128          * @since       2.0
129          *
130          * @return              The Panel instance pointer, @n
131          *                              else a @c null pointer if the %Panel is not specified
132          * @remarks             The Panel is optional component of %Scene so it may not be always valid.
133          */
134         Tizen::Ui::Controls::Panel* GetPanel(void) const;
135
136 protected:
137         //
138         // This method is for internal use only. Using this method can cause behavioral,
139         // security-related, and consistency-related issues in the application.
140         //
141         // @since       2.0
142         //
143         virtual void Scene_Reserved1(void) {}
144
145         //
146         // This method is for internal use only. Using this method can cause behavioral,
147         // security-related, and consistency-related issues in the application.
148         //
149         // @since       2.0
150         //
151         virtual void Scene_Reserved2(void) {}
152
153         //
154         // This method is for internal use only. Using this method can cause behavioral,
155         // security-related, and consistency-related issues in the application.
156         //
157         // @since       2.0
158         //
159         virtual void Scene_Reserved3(void) {}
160
161 private:
162         /**
163          * This default constructor is intentionally declared as private so that only the platform can create an instance.
164          *
165          * @since       2.0
166          */
167         Scene(void);
168
169         /**
170          * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
171          *
172          * @since       2.0
173          */
174         Scene(const Scene& rhs);
175
176         /**
177          * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
178          *
179          * @since       2.0
180          */
181         Scene& operator =(const Scene& rhs);
182
183 private:
184         friend class _SceneImpl;
185         class _SceneImpl* __pSceneImpl;
186
187 }; // Scene
188 } } } // Tizen::Ui::Scenes
189
190 #endif  //_FUI_SCENES_SCENE_H_