Merge "Fix Ime Rotation" into tizen_2.1
[platform/framework/native/uifw.git] / inc / FUiScenesIPanelFactory.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        FUiScenesIPanelFactory.h
20  * @brief       This is the header file for the %IPanelFactory interface.
21  *
22  * This header file contains the declarations of the %IPanelFactory interface.
23  */
24
25 #ifndef _FUI_SCENES_IPANEL_FACTORY_H_
26 #define _FUI_SCENES_IPANEL_FACTORY_H_
27
28 #include <FBaseString.h>
29 #include <FUiScenesTypes.h>
30
31
32 namespace Tizen { namespace Ui { namespace Controls
33 {
34 class Panel;
35 }}}
36
37
38 namespace Tizen { namespace Ui { namespace Scenes
39 {
40
41 /**
42  * @interface   IPanelFactory
43  * @brief               This interface is the factory interface for creating the Panel control instance.
44  *
45  * @since       2.0
46  *
47  * The %IPanelFactory interface is the factory interface for creating the Panel control instance.
48  * The SceneManager class calls CreatePanelN() with panel ID string when an instance of %Panel control is required.
49  *
50  * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/ui/scene_management.htm">Scene Management</a>.
51  */
52 class _OSP_EXPORT_ IPanelFactory
53 {
54 public:
55         /**
56          * This polymorphic destructor should be overridden if required. This way,
57          * the destructors of the derived classes are called when the destructor of this interface is called.
58          *
59          * @since       2.0
60          */
61         virtual ~IPanelFactory(void) {}
62
63         /**
64          * Creates a Panel instance.
65          *
66          * @since       2.0
67          *
68          * @return              A pointer to a new Panel instance
69          * @param[in]   panelId         The panel ID string that specifies the ID of the Panel to create
70          * @param[in]   sceneId         The scene ID corresponding to the Panel
71          * @remarks             The new instance managed by the SceneManager class must not be deleted manually.
72          */
73         virtual Tizen::Ui::Controls::Panel* CreatePanelN(const Tizen::Base::String& panelId, const Tizen::Ui::Scenes::SceneId& sceneId) = 0;
74
75 protected:
76         //
77         // This method is for internal use only. Using this method can cause behavioral,
78         // security-related, and consistency-related issues in the application.
79         //
80         // @since       2.0
81         //
82         virtual void IPanelFactory_Reserved1(void) {}
83
84         //
85         // This method is for internal use only. Using this method can cause behavioral,
86         // security-related, and consistency-related issues in the application.
87         //
88         // @since       2.0
89         //
90         virtual void IPanelFactory_Reserved2(void) {}
91
92         //
93         // This method is for internal use only. Using this method can cause behavioral,
94         // security-related, and consistency-related issues in the application.
95         //
96         // @since       2.0
97         //
98         virtual void IPanelFactory_Reserved3(void) {}
99
100 }; // IPanelFactory
101 } } } // Tizen::Ui::Scenes
102
103 #endif  //_FUI_SCENES_IPANEL_FACTORY_H_