From 311d436cfde1f343dcae1fe92640649bdfb5cfc1 Mon Sep 17 00:00:00 2001 From: WonYoung Choi Date: Thu, 26 May 2016 09:43:14 +0900 Subject: [PATCH] Add Window property to UIApplication UIApplication has a window instance. The window will be created before OnCreate() / created event. If the window is closed, the UIApplication will be terminated automatically. Change-Id: I28eb0a058cea61069bb46586bcb58b8c1b7a8d3b --- Tizen.Applications/Tizen.Applications.csproj | 10 ++++++- .../Tizen.Applications/Application.cs | 35 ++++------------------ .../Tizen.Applications/ServiceApplication.cs | 2 +- .../Tizen.Applications/UIApplication.cs | 29 ++++++++++++------ packaging/csapi-application.spec | 3 +- 5 files changed, 37 insertions(+), 42 deletions(-) mode change 100755 => 100644 Tizen.Applications/Tizen.Applications/Application.cs mode change 100755 => 100644 Tizen.Applications/Tizen.Applications/ServiceApplication.cs mode change 100755 => 100644 Tizen.Applications/Tizen.Applications/UIApplication.cs diff --git a/Tizen.Applications/Tizen.Applications.csproj b/Tizen.Applications/Tizen.Applications.csproj index a1dbbdb..57bb922 100755 --- a/Tizen.Applications/Tizen.Applications.csproj +++ b/Tizen.Applications/Tizen.Applications.csproj @@ -106,6 +106,10 @@ csapi-tizen ..\..\tizen\Tizen.Internals\bin\Debug\Tizen.Internals.dll + + csapi-uifw + ..\..\uifw\Tizen.UI\bin\Debug\Tizen.UI.dll + @@ -116,6 +120,10 @@ {7659ca59-410d-41a1-9841-586e88bc78c9} Tizen + + {d34841f9-046b-4dbf-9698-143386c24f78} + Tizen.UI + - \ No newline at end of file + diff --git a/Tizen.Applications/Tizen.Applications/Application.cs b/Tizen.Applications/Tizen.Applications/Application.cs old mode 100755 new mode 100644 index b208f05..99c22d7 --- a/Tizen.Applications/Tizen.Applications/Application.cs +++ b/Tizen.Applications/Tizen.Applications/Application.cs @@ -128,11 +128,7 @@ namespace Tizen.Applications /// protected virtual void OnCreate() { - EventHandler eh = Created; - if (eh != null) - { - eh(this, EventArgs.Empty); - } + Created?.Invoke(this, EventArgs.Empty); } /// @@ -141,11 +137,7 @@ namespace Tizen.Applications /// protected virtual void OnTerminate() { - EventHandler eh = Terminated; - if (eh != null) - { - eh(this, EventArgs.Empty); - } + Terminated?.Invoke(this, EventArgs.Empty); } /// @@ -155,11 +147,7 @@ namespace Tizen.Applications /// protected virtual void OnAppControlReceived(AppControlReceivedEventArgs e) { - EventHandler eh = AppControlReceived; - if (eh != null) - { - eh(this, e); - } + AppControlReceived?.Invoke(this, e); } /// @@ -168,11 +156,7 @@ namespace Tizen.Applications /// protected virtual void OnLowMemory(LowMemoryEventArgs e) { - EventHandler eh = LowMemory; - if (eh != null) - { - eh(this, e); - } + LowMemory?.Invoke(this, e); } /// @@ -181,16 +165,7 @@ namespace Tizen.Applications /// protected virtual void OnLocaleChanged(LocaleChangedEventArgs e) { - EventHandler eh = LocaleChanged; - if (eh != null) - { - eh(this, e); - } - } - - internal void SendCreate() - { - OnCreate(); + LocaleChanged?.Invoke(this, e); } private void HandleAppEvent(string eventName, IntPtr eventData, IntPtr data) diff --git a/Tizen.Applications/Tizen.Applications/ServiceApplication.cs b/Tizen.Applications/Tizen.Applications/ServiceApplication.cs old mode 100755 new mode 100644 index bbc7327..9f2f7e6 --- a/Tizen.Applications/Tizen.Applications/ServiceApplication.cs +++ b/Tizen.Applications/Tizen.Applications/ServiceApplication.cs @@ -26,7 +26,7 @@ namespace Tizen.Applications Interop.Service.ServiceAppLifecycleCallbacks ops; ops.OnCreate = (data) => { - SendCreate(); + OnCreate(); return true; }; ops.OnTerminate = (data) => diff --git a/Tizen.Applications/Tizen.Applications/UIApplication.cs b/Tizen.Applications/Tizen.Applications/UIApplication.cs old mode 100755 new mode 100644 index 0fa25c5..d8db375 --- a/Tizen.Applications/Tizen.Applications/UIApplication.cs +++ b/Tizen.Applications/Tizen.Applications/UIApplication.cs @@ -7,6 +7,7 @@ // you entered into with Samsung. using System; +using Tizen.UI; namespace Tizen.Applications { @@ -26,6 +27,14 @@ namespace Tizen.Applications public event EventHandler Paused; /// + /// The main window instance of the UIApplication. + /// + /// + /// This window is created before OnCreate() or created event. And the UIApplication will be terminated when this window is closed. + /// + public Window Window { get; private set; } + + /// /// Runs the UI application's main loop. /// /// Arguments from commandline. @@ -74,11 +83,7 @@ namespace Tizen.Applications /// protected virtual void OnResume() { - EventHandler eh = Resumed; - if (eh != null) - { - eh(this, EventArgs.Empty); - } + Resumed?.Invoke(this, EventArgs.Empty); } /// @@ -87,11 +92,17 @@ namespace Tizen.Applications /// protected virtual void OnPause() { - EventHandler eh = Paused; - if (eh != null) + Paused?.Invoke(this, EventArgs.Empty); + } + + private void SendCreate() + { + Window = new Window("C# UI Application"); + Window.Closed += (s, e) => { - eh(this, EventArgs.Empty); - } + Exit(); + }; + OnCreate(); } } } diff --git a/packaging/csapi-application.spec b/packaging/csapi-application.spec index ba33abb..b23ba51 100755 --- a/packaging/csapi-application.spec +++ b/packaging/csapi-application.spec @@ -14,10 +14,11 @@ Source2: %{name}.pc.in BuildRequires: mono-compiler BuildRequires: mono-devel BuildRequires: pkgconfig(csapi-tizen) +BuildRequires: pkgconfig(csapi-uifw) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(capi-appfw-application) -BuildRequires: pkgconfig(appcore-agent) BuildRequires: pkgconfig(capi-appfw-app-manager) +BuildRequires: pkgconfig(appcore-agent) BuildRequires: pkgconfig(message-port) Requires: capi-appfw-application -- 2.7.4