NUIWidgetApplication constructor for multi widget (#1091)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / NUIWidgetApplication.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 using Tizen.Applications;
18 using Tizen.Applications.CoreBackend;
19 using System.Collections.Generic;
20 using System.ComponentModel;
21
22 namespace Tizen.NUI
23 {
24     /// <summary>
25     /// Represents an application that have UI screen. The NUIWidgetApplication class has a default stage.
26     /// </summary>
27     /// <since_tizen> 4 </since_tizen>
28     public class NUIWidgetApplication : CoreApplication
29     {
30         /// <summary>
31         /// The default constructor.
32         /// </summary>
33         /// <remarks>Widget ID will be replaced as the application ID.</remarks>
34         /// <param name="widgetType">Derived widget class type.</param>
35         public NUIWidgetApplication( System.Type widgetType ) : base(new NUIWidgetCoreBackend())
36         {
37             NUIWidgetCoreBackend core = Backend as NUIWidgetCoreBackend;
38             core?.RegisterWidgetInfo(new Dictionary<System.Type, string> { { widgetType, ApplicationInfo.ApplicationId } });
39         }
40
41         /// <summary>
42         /// The constructor for multi widget class and instance.
43         /// </summary>
44         /// <param name="widgetTypes">List of derived widget class type.</param>
45         [EditorBrowsable(EditorBrowsableState.Never)]
46         public NUIWidgetApplication(Dictionary<System.Type, string> widgetTypes) : base(new NUIWidgetCoreBackend())
47         {
48             NUIWidgetCoreBackend core = Backend as NUIWidgetCoreBackend;
49             core?.RegisterWidgetInfo(widgetTypes);
50         }
51
52         /// <summary>
53         /// The default constructor with stylesheet.
54         /// </summary>
55         /// <remarks>Widget ID will be replaced as the application ID.</remarks>
56         /// <param name="widgetType">Derived widget class type.</param>
57         /// <param name="styleSheet">The styleSheet url.</param>
58         /// <since_tizen> 4 </since_tizen>
59         public NUIWidgetApplication(System.Type widgetType, string styleSheet) : base(new NUIWidgetCoreBackend(styleSheet))
60         {
61             NUIWidgetCoreBackend core = Backend as NUIWidgetCoreBackend;
62             core?.RegisterWidgetInfo(new Dictionary<System.Type, string> { { widgetType, ApplicationInfo.ApplicationId } });
63         }
64
65         internal WidgetApplication ApplicationHandle
66         {
67             get
68             {
69                 return ((NUIWidgetCoreBackend)this.Backend).WidgetApplicationHandle;
70             }
71         }
72
73         /// <summary>
74         /// Run NUIWidgetApplication.
75         /// </summary>
76         /// <param name="args">Arguments from commandline.</param>
77         /// <since_tizen> 4 </since_tizen>
78         public override void Run(string[] args)
79         {
80             Backend.AddEventHandler(EventType.PreCreated, OnPreCreate);
81             base.Run(args);
82         }
83
84         /// <summary>
85         /// Exit NUIWidgetApplication.
86         /// </summary>
87         /// <since_tizen> 4 </since_tizen>
88         public override void Exit()
89         {
90             Tizen.Log.Fatal("NUI", "### NUIWidgetApplication Exit called");
91             base.Exit();
92         }
93
94         /// <summary>
95         /// Overrides this method if want to handle OnLocaleChanged behavior.
96         /// </summary>
97         /// <since_tizen> 4 </since_tizen>
98         protected override void OnLocaleChanged(LocaleChangedEventArgs e)
99         {
100             Log.Fatal("NUI", "OnLocaleChanged() is called!");
101             base.OnLocaleChanged(e);
102         }
103
104         /// <summary>
105         /// Overrides this method if want to handle OnLowBattery behavior.
106         /// </summary>
107         /// <since_tizen> 4 </since_tizen>
108         protected override void OnLowBattery(LowBatteryEventArgs e)
109         {
110             Log.Fatal("NUI", "OnLowBattery() is called!");
111             base.OnLowBattery(e);
112         }
113
114         /// <summary>
115         /// Overrides this method if want to handle OnLowMemory behavior.
116         /// </summary>
117         /// <since_tizen> 4 </since_tizen>
118         protected override void OnLowMemory(LowMemoryEventArgs e)
119         {
120             Log.Fatal("NUI", "OnLowMemory() is called!");
121             base.OnLowMemory(e);
122         }
123
124         /// <summary>
125         /// Overrides this method if want to handle OnRegionFormatChanged behavior.
126         /// </summary>
127         /// <since_tizen> 4 </since_tizen>
128         protected override void OnRegionFormatChanged(RegionFormatChangedEventArgs e)
129         {
130             Log.Fatal("NUI", "OnRegionFormatChanged() is called!");
131             base.OnRegionFormatChanged(e);
132         }
133
134         /// <summary>
135         /// Overrides this method if want to handle OnTerminate behavior.
136         /// </summary>
137         /// <since_tizen> 4 </since_tizen>
138         protected override void OnTerminate()
139         {
140             Log.Fatal("NUI", "OnTerminate() is called!");
141             base.OnTerminate();
142         }
143
144         /// <summary>
145         /// Overrides this method if want to handle OnPreCreate behavior.
146         /// </summary>
147         /// <since_tizen> 4 </since_tizen>
148         protected virtual void OnPreCreate()
149         {
150             Log.Fatal("NUI", "OnPreCreate() is called!");
151         }
152
153         /// <summary>
154         /// Overrides this method if want to handle OnCreate behavior.
155         /// </summary>
156         /// <since_tizen> 4 </since_tizen>
157         protected override void OnCreate()
158         {
159             // This is also required to create DisposeQueue on main thread.
160             DisposeQueue disposeQ = DisposeQueue.Instance;
161             disposeQ.Initialize();
162             Log.Fatal("NUI","OnCreate() is called!");
163             base.OnCreate();
164         }
165     }
166 }