[Tizen] Revert "Delete elementary dependency of ui_app_main"
authordongsug.song <dongsug.song@samsung.com>
Tue, 25 Jul 2017 08:18:59 +0000 (17:18 +0900)
committerdongsug.song <dongsug.song@samsung.com>
Tue, 25 Jul 2017 08:35:42 +0000 (17:35 +0900)
This reverts commit a217ba6c9531154fa59001099462e9099343fe4a.

Conflicts:
Tizen.NUI/src/internal/NUICoreBackend.cs
Tizen.NUI/src/public/NUIApplication.cs

Change-Id: I5752fa70273f48c72a43652fd00585d484d80def

packaging/csapi-nui.spec
src/Tizen.NUI/Tizen.NUI.csproj
src/Tizen.NUI/src/internal/Application.cs
src/Tizen.NUI/src/internal/NUICoreBackend.cs [deleted file]
src/Tizen.NUI/src/internal/NUIEventType.cs [deleted file]
src/Tizen.NUI/src/public/BaseComponents/View.cs
src/Tizen.NUI/src/public/NUIApplication.cs

index 3f444eb..c59f6d7 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       csapi-nui
 Summary:    dali-NUI
-Version:    0.2.48.pre1
+Version:    0.2.49
 Release:    1
 Group:      Development/Libraries
 License:    Apache-2.0 and BSD-3-Clause and MIT
index 99e5b91..63d87d8 100755 (executable)
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">\r
 \r
   <PropertyGroup>\r
-    <Version>0.2.48-pre1</Version>\r
+    <Version>0.2.49</Version>\r
     <Authors>Samsung Electronics</Authors>\r
     <Copyright>© Samsung Electronics Co., Ltd All Rights Reserved</Copyright>\r
     <Description>\r
@@ -25,7 +25,7 @@
 \r
   <ItemGroup>\r
     <PackageReference Include="System.Reflection.TypeExtensions" Version="4.3.0" PrivateAssets="All" />\r
-    <PackageReference Include="Tizen.Applications.Common" Version="1.5.8" />\r
+    <PackageReference Include="Tizen.Applications.UI" Version="1.5.8" />\r
   </ItemGroup>\r
 \r
 </Project>\r
index 4e68bfe..105b893 100755 (executable)
@@ -25,10 +25,10 @@ namespace Tizen.NUI
     {
         public const int ver1 = 1;
         public const int ver2 = 2;
-        public const int ver3 = 46;
+        public const int ver3 = 49;
         public const int nuiVer1 = 0;
         public const int nuiVer2 = 2;
-        public const int nuiVer3 = 47;
+        public const int nuiVer3 = 49;
         public const string nuiRelease = "";
     }
 
diff --git a/src/Tizen.NUI/src/internal/NUICoreBackend.cs b/src/Tizen.NUI/src/internal/NUICoreBackend.cs
deleted file mode 100755 (executable)
index 20dff95..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-using System;
-using System.Collections.Generic;
-
-using Tizen.Applications.CoreBackend;
-using Tizen.Applications;
-using Tizen.NUI;
-
-namespace Tizen.NUI
-{
-    class NUICoreBackend : ICoreBackend
-    {
-        /// <summary>
-        /// Application instance to connect event.
-        /// </summary>
-        protected Application _application;
-
-        /// <summary>
-        /// Dictionary to contain each type of event callback.
-        /// </summary>
-        protected IDictionary<EventType, object> Handlers = new Dictionary<EventType, object>();
-
-        /// <summary>
-        /// The default Constructor.
-        /// </summary>
-        public NUICoreBackend()
-        {
-            _application = Application.NewApplication();
-        }
-
-        /// <summary>
-        /// The constructor with stylesheet.
-        /// </summary>
-        public NUICoreBackend(string stylesheet)
-        {
-            _application = Application.NewApplication(stylesheet);
-        }
-
-        /// <summary>
-        /// The constructor with stylesheet and window mode.
-        /// </summary>
-        public NUICoreBackend(string stylesheet, NUIApplication.WindowMode windowMode)
-        {
-            _application = Application.NewApplication(stylesheet, (Application.WindowMode)windowMode );
-        }
-
-        /// <summary>
-        /// Add NUIApplication event to Application.
-        /// Put each type of event callback in Dictionary.
-        /// </summary>
-        /// <param name="evType">Type of event</param>
-        /// <param name="handler">Event callback</param>
-        public void AddEventHandler(EventType evType, Action handler)
-        {
-            Handlers.Add(evType, handler);
-        }
-
-        /// <summary>
-        /// Add NUIApplication event to Application.
-        /// Put each type of event callback in Dictionary.
-        /// </summary>
-        /// <typeparam name="TEventArgs">Argument type for the event</typeparam>
-        /// <param name="evType">Type of event</param>
-        /// <param name="handler">Event callback</param>
-        public void AddEventHandler<TEventArgs>(EventType evType, Action<TEventArgs> handler) where TEventArgs : EventArgs
-        {
-            Handlers.Add(evType, handler);
-        }
-
-
-        /// <summary>
-        /// Dispose function.
-        /// </summary>
-        public void Dispose()
-        {
-            _application.Dispose();
-        }
-
-        /// <summary>
-        /// Exit Application.
-        /// </summary>
-        public void Exit()
-        {
-            _application.Quit();
-        }
-
-        /// <summary>
-        /// Run Application.
-        /// </summary>
-        /// <param name="args">Arguments from commandline.</param>
-        public void Run(string[] args)
-        {
-            _application.BatteryLow += OnBatteryLow;
-            _application.LanguageChanged += OnLanguageChanged;
-            _application.MemoryLow += OnMemoryLow;
-            _application.RegionChanged += OnRegionChanged;
-
-            _application.Initialized += OnInitialized;
-            _application.Resumed += OnResumed;
-            _application.Terminating += OnTerminated;
-            _application.Paused += OnPaused;
-            _application.AppControl += OnAppControl;
-
-            _application.MainLoop();
-        }
-
-        /// <summary>
-        /// Region changed event callback function.
-        /// </summary>
-        /// <param name="source">Application instance</param>
-        /// <param name="e">Event argument for RegionChanged</param>
-        private void OnRegionChanged(object source, NUIApplicationRegionChangedEventArgs e)
-        {
-            Log.Debug("NUI", "NUICorebackend OnRegionChanged Called");
-            var handler = Handlers[EventType.RegionFormatChanged] as Action<RegionFormatChangedEventArgs>;
-            // Need to make new signal return in native to return right value.
-            handler?.Invoke( new RegionFormatChangedEventArgs(""));
-        }
-
-        /// <summary>
-        /// Memory Low event callback function.
-        /// </summary>
-        /// <param name="source">Application instance</param>
-        /// <param name="e">Event argument for MemoryLow</param>
-        private void OnMemoryLow(object source, NUIApplicationMemoryLowEventArgs e)
-        {
-            Log.Debug("NUI", "NUICorebackend OnMemoryLow Called");
-            var handler = Handlers[EventType.LowMemory] as Action<LowMemoryEventArgs>;
-            // Need to make new signal return in native to return right value.
-            handler?.Invoke( new LowMemoryEventArgs(LowMemoryStatus.None));
-        }
-
-        /// <summary>
-        /// Language changed event callback function.
-        /// </summary>
-        /// <param name="source">Application instance</param>
-        /// <param name="e">Event argument for LanguageChanged</param>
-        private void OnLanguageChanged(object source, NUIApplicationLanguageChangedEventArgs e)
-        {
-            Log.Debug("NUI", "NUICorebackend OnLanguageChanged Called");
-            var handler = Handlers[EventType.LocaleChanged] as Action<LocaleChangedEventArgs>;
-            // Need to make new signal return in native to return right value.
-            handler?.Invoke( new LocaleChangedEventArgs(""));
-        }
-
-        /// <summary>
-        /// Battery low event callback function.
-        /// </summary>
-        /// <param name="source">Application instance</param>
-        /// <param name="e">Event argument for BatteryLow</param>
-        private void OnBatteryLow(object source, NUIApplicationBatteryLowEventArgs e)
-        {
-            Log.Debug("NUI", "NUICorebackend OnBatteryLow Called");
-            var handler = Handlers[EventType.LowBattery] as Action<LowBatteryEventArgs>;
-            // Need to make new signal return in native to return right value.
-            handler?.Invoke(new LowBatteryEventArgs(LowBatteryStatus.None));
-        }
-
-        /// <summary>
-        /// Initialized event callback function.
-        /// </summary>
-        /// <param name="source">Application instance</param>
-        /// <param name="e">Event argument for Initialized</param>
-        private void OnInitialized(object source, NUIApplicationInitEventArgs e)
-        {
-            Log.Debug("NUI", "NUICorebackend OnInitialized Called");
-            var handler = Handlers[EventType.Created] as Action;
-            handler?.Invoke();
-        }
-
-        /// <summary>
-        /// Terminated event callback function.
-        /// </summary>
-        /// <param name="source">Application instance</param>
-        /// <param name="e">Event argument for Terminated</param>
-        private void OnTerminated(object source, NUIApplicationTerminatingEventArgs e)
-        {
-            Log.Debug("NUI", "NUICorebackend OnTerminated Called");
-            var handler = Handlers[EventType.Terminated] as Action;
-            handler?.Invoke();
-        }
-
-        /// <summary>
-        /// Resumed event callback function.
-        /// </summary>
-        /// <param name="source">Application instance</param>
-        /// <param name="e">Event argument for Resumed</param>
-        private void OnResumed(object source, NUIApplicationResumedEventArgs e)
-        {
-            Log.Debug("NUI", "NUICorebackend OnResumed Called");
-            var handler = Handlers[EventType.Resumed] as Action;
-            handler?.Invoke();
-        }
-
-        /// <summary>
-        /// App control event callback function.
-        /// </summary>
-        /// <param name="source">Application instance</param>
-        /// <param name="e">Event argument for AppControl</param>
-        private void OnAppControl(object source, NUIApplicationAppControlEventArgs e)
-        {
-            Log.Debug("NUI", "NUICorebackend OnAppControl Called");
-            /* can invoke after making new api which getting control handle at application.
-            var handler = Handlers[EventType.AppControlReceived] as Action<AppControlReceivedEventArgs>;
-            handler?.Invoke();
-            */
-        }
-
-        /// <summary>
-        /// Paused event callback function.
-        /// </summary>
-        /// <param name="source">Application instance</param>
-        /// <param name="e">Event argument for Paused</param>
-        private void OnPaused(object source, NUIApplicationPausedEventArgs e)
-        {
-            Log.Debug("NUI", "NUICorebackend OnPaused Called");
-            var handler = Handlers[EventType.Paused] as Action;
-            handler?.Invoke();
-        }
-
-
-       internal Application ApplicationHandle
-       {
-               get
-               {
-                       return _application;
-               }
-       }
-
-    }
-}
diff --git a/src/Tizen.NUI/src/internal/NUIEventType.cs b/src/Tizen.NUI/src/internal/NUIEventType.cs
deleted file mode 100755 (executable)
index a9ee287..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright(c) 2017 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-using Tizen.Applications.CoreBackend;
-
-namespace Tizen.NUI
-{
-    /// <summary>
-    /// Class that represents the type of NUI event for backends. This class can be converted from string type.
-    /// </summary>
-    public class NUIEventType : EventType
-    {
-        /// <summary>
-        /// Initializes the EventType class.
-        /// </summary>
-        /// <param name="name">The name of event type.</param>
-        public NUIEventType(string name) : base(name)
-        {
-        }
-
-        /// <summary>
-        /// Pre-defined event type. "Reset"
-        /// </summary>
-        public static readonly NUIEventType Reset = "Reset";
-
-        /// <summary>
-        /// Converts a string to NUIEventType instance.
-        /// </summary>
-        public static implicit operator NUIEventType(string value)
-        {
-            return new NUIEventType(value);
-        }
-    }
-}
index b9ff096..7646242 100755 (executable)
@@ -2125,19 +2125,9 @@ namespace Tizen.NUI.BaseComponents
 
         /*internal View GetParent()
         {
-            View ret;
             IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr);
 
-            BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(cPtr);
-
-            if(basehandle is Layer)
-            {
-                ret = new View(cPtr,false);
-            }
-            else
-            {
-                ret = basehandle as View;
-            }
+            View ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as View;
 
             if (NDalicPINVOKE.SWIGPendingException.Pending)
                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
index b5bdacb..6f2fda0 100755 (executable)
@@ -17,7 +17,6 @@
 
 using System;
 using Tizen.Applications;
-using Tizen.Applications.CoreBackend;
 using Tizen.NUI;
 
 namespace Tizen.NUI
@@ -26,145 +25,203 @@ namespace Tizen.NUI
     /// <summary>
     /// Represents an application that have UI screen. The NUIApplication class has a default stage.
     /// </summary>
-    public class NUIApplication : CoreApplication
+    public class NUIApplication : CoreUIApplication
     {
         /// <summary>
+        /// The instance of the Application.
+        /// </summary>
+        /// <remarks>
+        /// This application is created before OnCreate() or created event. And the NUIApplication will be terminated when this application is closed.
+        /// </remarks>
+        private Application _application;
+
+        /// <summary>
+        /// The instance of the Dali Application extension.
+        /// </summary>
+        private ApplicationExtensions _applicationExt;
+
+        /// <summary>
+        /// Store the stylesheet value.
+        /// </summary>
+        private string _stylesheet;
+
+        /// <summary>
+        /// Store the window mode value.
+        /// </summary>
+        private Application.WindowMode _windowMode;
+
+        /// <summary>
+        /// Store the app mode value.
+        /// </summary>
+        private AppMode _appMode;
+
+        /// <summary>
+        /// The instance of the Dali Stage.
+        /// </summary>
+        private Window _window;
+
+        /// <summary>
         /// The default constructor.
         /// </summary>
-        public NUIApplication() : base(new NUICoreBackend())
+        public NUIApplication() : base()
         {
+            _appMode = AppMode.Default;
         }
 
         /// <summary>
         /// The constructor with stylesheet.
         /// </summary>
-        public NUIApplication(string stylesheet) : base(new NUICoreBackend(stylesheet))
+        public NUIApplication(string stylesheet) : base()
         {
+            //handle the stylesheet
+            _appMode = AppMode.StyleSheetOnly;
+            _stylesheet = stylesheet;
         }
 
         /// <summary>
         /// The constructor with stylesheet and window mode.
         /// </summary>
-        public NUIApplication(string stylesheet, WindowMode windowMode) : base(new NUICoreBackend(stylesheet,windowMode))
+        public NUIApplication(string stylesheet, WindowMode windowMode) : base()
         {
+            //handle the stylesheet and windowMode
+            _appMode = AppMode.StyleSheetWithWindowMode;
+            _stylesheet = stylesheet;
+            _windowMode = (Application.WindowMode)windowMode;
         }
 
         /// <summary>
         /// Overrides this method if want to handle behavior.
         /// </summary>
-        protected override void OnLocaleChanged(LocaleChangedEventArgs e)
+        protected override void OnPause()
         {
+            base.OnPause();
+            _applicationExt.Pause();
+            NUILog.Debug("OnPause() is called!");
         }
 
         /// <summary>
-        /// Overrides this method if want to handle behavior.
+        /// Overrides this method if want to handle behavior before calling OnCreate().<br>
+        /// stage property is initialized in this overrided method.<br>
         /// </summary>
-        protected override void OnLowBattery(LowBatteryEventArgs e)
+        protected override void OnPreCreate()
         {
-            Log.Debug("NUI", "OnLowBattery() is called!");
+            // Initialize DisposeQueue Singleton class.
+            DisposeQueue disposeQ = DisposeQueue.Instance;
+            NUILog.Debug("1) DisposeQueue.Instance.Initialize()!");
+            switch (_appMode)
+            {
+                case AppMode.Default:
+                    _application = Tizen.NUI.Application.NewApplication();
+                    break;
+                case AppMode.StyleSheetOnly:
+                    _application = Tizen.NUI.Application.NewApplication(_stylesheet);
+                    break;
+                case AppMode.StyleSheetWithWindowMode:
+                    _application = Tizen.NUI.Application.NewApplication(_stylesheet, _windowMode);
+                    break;
+                default:
+                    break;
+            }
+            _applicationExt = new ApplicationExtensions(_application);
+            _applicationExt.Init();
+            _applicationExt.Start();
+
+            // This is also required to create DisposeQueue on main thread.
+            disposeQ.Initialize();
+            NUILog.Debug("2) DisposeQueue.Instance.Initialize()!");
+            _window = Window.Instance;
+            _window.SetBackgroundColor(Color.White);
+            NUILog.Debug("OnPreCreate() is called!");
         }
 
         /// <summary>
         /// Overrides this method if want to handle behavior.
         /// </summary>
-        protected override void OnLowMemory(LowMemoryEventArgs e)
+        protected override void OnResume()
         {
-            Log.Debug("NUI", "OnLowMemory() is called!");
+            base.OnResume();
+            _applicationExt.Resume();
+            NUILog.Debug("OnResume() is called!");
         }
 
         /// <summary>
         /// Overrides this method if want to handle behavior.
         /// </summary>
-        protected override void OnRegionFormatChanged(RegionFormatChangedEventArgs e)
+        protected override void OnAppControlReceived(AppControlReceivedEventArgs e)
         {
-            Log.Debug("NUI", "OnRegionFormatChanged() is called!");
+            base.OnAppControlReceived(e);
+            NUILog.Debug("OnAppControlReceived() is called!");
+            if (e != null)
+            {
+                NUILog.Debug("OnAppControlReceived() is called! ApplicationId=" + e.ReceivedAppControl.ApplicationId);
+                NUILog.Debug("CallerApplicationId=" + e.ReceivedAppControl.CallerApplicationId + "   IsReplyRequest=" + e.ReceivedAppControl.IsReplyRequest);
+            }
         }
 
         /// <summary>
         /// Overrides this method if want to handle behavior.
         /// </summary>
-        protected override void OnTerminate()
+        protected override void OnCreate()
         {
-            Log.Debug("NUI", "OnTerminate() is called!");
+            base.OnCreate();
+            NUILog.Debug("OnCreate() is called!");
         }
 
         /// <summary>
         /// Overrides this method if want to handle behavior.
         /// </summary>
-        protected void OnPause()
+        protected override void OnLocaleChanged(LocaleChangedEventArgs e)
         {
+            base.OnLocaleChanged(e);
+            _applicationExt.LanguageChange();
+            NUILog.Debug("OnLocaleChanged() is called!");
         }
 
         /// <summary>
         /// Overrides this method if want to handle behavior.
         /// </summary>
-        protected void OnResume()
+        protected override void OnLowBattery(LowBatteryEventArgs e)
         {
-            Log.Debug("NUI", "OnResume() is called!");
+            base.OnLowBattery(e);
+            NUILog.Debug("OnLowBattery() is called!");
         }
 
         /// <summary>
         /// Overrides this method if want to handle behavior.
         /// </summary>
-        protected override void OnAppControlReceived(AppControlReceivedEventArgs e)
+        protected override void OnLowMemory(LowMemoryEventArgs e)
         {
-            Log.Debug("NUI", "OnAppControlReceived() is called!");
-            if (e != null)
-            {
-                Log.Debug("NUI", "OnAppControlReceived() is called! ApplicationId=" + e.ReceivedAppControl.ApplicationId);
-                Log.Debug("NUI", "CallerApplicationId=" + e.ReceivedAppControl.CallerApplicationId + "   IsReplyRequest=" + e.ReceivedAppControl.IsReplyRequest);
-            }
+            base.OnLowMemory(e);
+            NUILog.Debug("OnLowMemory() is called!");
         }
 
         /// <summary>
         /// Overrides this method if want to handle behavior.
         /// </summary>
-        protected override void OnCreate()
+        protected override void OnRegionFormatChanged(RegionFormatChangedEventArgs e)
         {
-            // This is also required to create DisposeQueue on main thread.
-            DisposeQueue disposeQ = DisposeQueue.Instance;
-            disposeQ.Initialize();
-            Log.Debug("NUI","OnCreate() is called!");
+            base.OnRegionFormatChanged(e);
+            NUILog.Debug("OnRegionFormatChanged() is called!");
         }
 
         /// <summary>
-        /// Run NUIApplication.
+        /// Overrides this method if want to handle behavior.
         /// </summary>
-        /// <param name="args">Arguments from commandline.</param>
-        public override void Run(string[] args)
+        protected override void OnTerminate()
         {
-            string[] argsClone = null;
-
-            if (args == null)
-            {
-                argsClone = new string[1];
-            }
-            else
-            {
-                argsClone = new string[args.Length + 1];
-                args.CopyTo(argsClone, 1);
-            }
-            argsClone[0] = string.Empty;
-
-            Backend.AddEventHandler(EventType.Resumed, OnResume);
-            Backend.AddEventHandler<AppControlReceivedEventArgs>(EventType.AppControlReceived, OnAppControlReceived);
-            Backend.AddEventHandler(EventType.Paused, OnPause);
-            Backend.AddEventHandler(EventType.Terminated, OnTerminate);
-            Backend.AddEventHandler<RegionFormatChangedEventArgs>(EventType.RegionFormatChanged, OnRegionFormatChanged);
-            Backend.AddEventHandler<LowMemoryEventArgs>(EventType.LowMemory, OnLowMemory);
-            Backend.AddEventHandler<LowBatteryEventArgs>(EventType.LowBattery, OnLowBattery);
-            Backend.AddEventHandler<LocaleChangedEventArgs>(EventType.LocaleChanged, OnLocaleChanged);
-            Backend.AddEventHandler(EventType.Created, OnCreate);
-
-            Backend.Run(argsClone);
+            base.OnTerminate();
+            _applicationExt.Terminate();
+            NUILog.Debug("OnTerminate() is called!");
         }
 
         /// <summary>
-        /// Exit NUIApplication.
+        /// The mode of creating NUI application.
         /// </summary>
-        public override void Exit()
+        private enum AppMode
         {
-            Backend.Exit();
+            Default = 0,
+            StyleSheetOnly = 1,
+            StyleSheetWithWindowMode = 2
         }
 
         /// <summary>
@@ -176,14 +233,23 @@ namespace Tizen.NUI
             Transparent = 1
         }
 
+        /// <summary>
+        /// Get the window instance.
+        /// </summary>
+        public Window Window
+        {
+            get
+            {
+                return _application.GetWindow();
+            }
+        }
 
         internal Application ApplicationHandle
         {
             get
             {
-                return ((NUICoreBackend)this.Backend).ApplicationHandle;
+                return _application;
             }
         }
-
     }
 }