[NUI] Update Widget / NUIWidgetApplication 97/162197/16
authorxb.teng <xb.teng@samsung.com>
Wed, 29 Nov 2017 13:17:26 +0000 (21:17 +0800)
committerminho.sun <minho.sun@samsung.com>
Fri, 15 Dec 2017 06:16:13 +0000 (15:16 +0900)
Update Widget/ NUIWidgetAppliation.

Change-Id: I4a123453830e641cfb4452f56a9924408d11b17c

21 files changed:
src/Tizen.NUI/src/internal/AppSignalType.cs [deleted file]
src/Tizen.NUI/src/internal/Application.cs
src/Tizen.NUI/src/internal/CreateWidgetFunction.cs [new file with mode: 0755]
src/Tizen.NUI/src/internal/ManualPINVOKE.cs
src/Tizen.NUI/src/internal/NUIWidgetCoreBackend.cs
src/Tizen.NUI/src/internal/Registry.cs
src/Tizen.NUI/src/internal/SWIGTYPE_p_Dali__Widget__Impl.cs [new file with mode: 0755]
src/Tizen.NUI/src/internal/WidgetApplication.cs
src/Tizen.NUI/src/internal/WidgetApplicationLowBatterySignalType.cs [deleted file]
src/Tizen.NUI/src/internal/WidgetApplicationLowMemorySignalType.cs [deleted file]
src/Tizen.NUI/src/internal/WidgetCreateSignalType.cs [deleted file]
src/Tizen.NUI/src/internal/WidgetImpl.cs [new file with mode: 0755]
src/Tizen.NUI/src/internal/WidgetImplPtr.cs [new file with mode: 0755]
src/Tizen.NUI/src/internal/WidgetPauseSignalType.cs [deleted file]
src/Tizen.NUI/src/internal/WidgetResizeSignalType.cs [deleted file]
src/Tizen.NUI/src/internal/WidgetResumeSignalType.cs [deleted file]
src/Tizen.NUI/src/internal/WidgetTerminateSignalType.cs [deleted file]
src/Tizen.NUI/src/internal/WidgetUpdateSignalType.cs [deleted file]
src/Tizen.NUI/src/public/BaseHandle.cs
src/Tizen.NUI/src/public/NUIWidgetApplication.cs
src/Tizen.NUI/src/public/Widget.cs

diff --git a/src/Tizen.NUI/src/internal/AppSignalType.cs b/src/Tizen.NUI/src/internal/AppSignalType.cs
deleted file mode 100755 (executable)
index 81ffac7..0000000
+++ /dev/null
@@ -1,142 +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.
- *
- */
-
-namespace Tizen.NUI
-{
-
-    internal class AppSignalType : global::System.IDisposable
-    {
-        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
-        protected bool swigCMemOwn;
-
-        internal AppSignalType(global::System.IntPtr cPtr, bool cMemoryOwn)
-        {
-            swigCMemOwn = cMemoryOwn;
-            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
-        }
-
-        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AppSignalType obj)
-        {
-            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
-        }
-
-        //A Flag to check who called Dispose(). (By User or DisposeQueue)
-        private bool isDisposeQueued = false;
-        //A Flat to check if it is already disposed.
-        protected bool disposed = false;
-
-        ~AppSignalType()
-        {
-            if (!isDisposeQueued)
-            {
-                isDisposeQueued = true;
-                DisposeQueue.Instance.Add(this);
-            }
-        }
-
-        public void Dispose()
-        {
-            //Throw excpetion if Dispose() is called in separate thread.
-            if (!Window.IsInstalled())
-            {
-                throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
-            }
-
-            if (isDisposeQueued)
-            {
-                Dispose(DisposeTypes.Implicit);
-            }
-            else
-            {
-                Dispose(DisposeTypes.Explicit);
-                System.GC.SuppressFinalize(this);
-            }
-        }
-
-        protected virtual void Dispose(DisposeTypes type)
-        {
-            if (disposed)
-            {
-                return;
-            }
-
-            if (type == DisposeTypes.Explicit)
-            {
-                //Called by User
-                //Release your own managed resources here.
-                //You should release all of your own disposable objects here.
-
-            }
-
-            //Release your own unmanaged resources here.
-            //You should not access any managed member here except static instance.
-            //because the execution order of Finalizes is non-deterministic.
-
-            if (swigCPtr.Handle != global::System.IntPtr.Zero)
-            {
-                swigCMemOwn = false;
-                NDalicManualPINVOKE.delete_AppSignalType(swigCPtr);
-                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
-            }
-
-            disposed = true;
-        }
-
-        public bool Empty()
-        {
-            bool ret = NDalicManualPINVOKE.AppSignalType_Empty(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public uint GetConnectionCount()
-        {
-            uint ret = NDalicManualPINVOKE.AppSignalType_GetConnectionCount(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public void Connect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.AppSignalType_Connect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Disconnect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.AppSignalType_Disconnect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Emit(WidgetApplication arg)
-        {
-            NDalicManualPINVOKE.AppSignalType_Emit(swigCPtr, WidgetApplication.getCPtr(arg));
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-        public AppSignalType() : this(NDalicManualPINVOKE.new_AppSignalType(), true)
-        {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-    }
-}
index f74d695..dd03f8f 100755 (executable)
@@ -1078,8 +1078,6 @@ namespace Tizen.NUI
 
         public static Application NewApplication(string[] args, string stylesheet, Application.WindowMode windowMode)
         {
-            NUILog.Debug(" NewApplication(string[] args, string stylesheet, Application.WindowMode windowMode) is called! ");
-
             Application ret = New(args, stylesheet, (Application.WindowMode)windowMode);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
 
@@ -1109,8 +1107,6 @@ namespace Tizen.NUI
         */
         public static Application New()
         {
-            NUILog.Debug("New() is called!");
-
             Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_0(), true);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
@@ -1118,8 +1114,6 @@ namespace Tizen.NUI
 
         public static Application New(int argc)
         {
-            NUILog.Debug("New(int argc) is called!");
-
             Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_1(argc), true);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
@@ -1127,8 +1121,6 @@ namespace Tizen.NUI
 
         public static Application New(int argc, string stylesheet)
         {
-            NUILog.Debug("New(int argc, string stylesheet) is called!");
-
             Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_2(argc, stylesheet), true);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
@@ -1136,8 +1128,6 @@ namespace Tizen.NUI
 
         public static Application New(int argc, string stylesheet, Application.WindowMode windowMode)
         {
-            NUILog.Debug("New(int argc, string stylesheet, Application.WindowMode windowMode) is called!");
-
             Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_3(argc, stylesheet, (int)windowMode), true);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
@@ -1145,7 +1135,6 @@ namespace Tizen.NUI
 
         public static Application New(string[] args, string stylesheet, Application.WindowMode windowMode)
         {
-            NUILog.Debug("New(string[] args) is called!");
             int argc = args.Length;
             string argvStr = string.Join(" ", args);
 
@@ -1163,8 +1152,6 @@ namespace Tizen.NUI
 
         public Application() : this(NDalicPINVOKE.new_Application__SWIG_0(), true)
         {
-            NUILog.Debug("Application() is called!");
-
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
diff --git a/src/Tizen.NUI/src/internal/CreateWidgetFunction.cs b/src/Tizen.NUI/src/internal/CreateWidgetFunction.cs
new file mode 100755 (executable)
index 0000000..29d2cfb
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ *
+ */
+namespace Tizen.NUI
+{
+
+    internal class CreateWidgetFunction
+    {
+        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+        internal CreateWidgetFunction(global::System.IntPtr cPtr, bool futureUse)
+        {
+            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+        }
+
+        protected CreateWidgetFunction()
+        {
+            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+        }
+
+        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(CreateWidgetFunction obj)
+        {
+            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+        }
+    }
+
+}
index d801688..6d7ee52 100755 (executable)
@@ -1122,17 +1122,18 @@ namespace Tizen.NUI
         [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_Widget_SWIGUpcast")]
         public static extern global::System.IntPtr Widget_SWIGUpcast(global::System.IntPtr jarg1);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_SWIGUpcast")]
-        public static extern global::System.IntPtr WidgetApplication_SWIGUpcast(global::System.IntPtr jarg1);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_SWIGUpcast")]
+        public static extern global::System.IntPtr WidgetImpl_SWIGUpcast(global::System.IntPtr jarg1);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_Widget_New")]
-        public static extern global::System.IntPtr Widget_New(string jarg1);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_Widget_New__SWIG_0")]
+        public static extern global::System.IntPtr Widget_New__SWIG_0();
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_Widget__SWIG_0")]
-        public static extern global::System.IntPtr new_Widget__SWIG_0();
+               [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_Widget_New__SWIG_1")]
+           public static extern global::System.IntPtr Widget_New__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_Widget__SWIG_1")]
-        public static extern global::System.IntPtr new_Widget__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_Widget")]
+        public static extern global::System.IntPtr new_Widget();
 
         [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_Widget_Assign")]
         public static extern global::System.IntPtr Widget_Assign(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
@@ -1140,263 +1141,87 @@ namespace Tizen.NUI
         [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_delete_Widget")]
         public static extern void delete_Widget(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_Widget_CreateSignal")]
-        public static extern global::System.IntPtr Widget_CreateSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_Widget_TerminateSignal")]
-        public static extern global::System.IntPtr Widget_TerminateSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_Widget_PauseSignal")]
-        public static extern global::System.IntPtr Widget_PauseSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_Widget_ResumeSignal")]
-        public static extern global::System.IntPtr Widget_ResumeSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_Widget_ResizeSignal")]
-        public static extern global::System.IntPtr Widget_ResizeSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_Widget_UpdateSignal")]
-        public static extern global::System.IntPtr Widget_UpdateSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_New")]
-        public static extern global::System.IntPtr WidgetApplication_New(int jarg1, string jarg2, string jarg3);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_WidgetApplication__SWIG_0")]
-        public static extern global::System.IntPtr new_WidgetApplication__SWIG_0();
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_WidgetApplication__SWIG_1")]
-        public static extern global::System.IntPtr new_WidgetApplication__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_Assign")]
-        public static extern global::System.IntPtr WidgetApplication_Assign(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_delete_WidgetApplication")]
-        public static extern void delete_WidgetApplication(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_MainLoop")]
-        public static extern void WidgetApplication_MainLoop(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_Quit")]
-        public static extern void WidgetApplication_Quit(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_GetResourcePath")]
-        public static extern string WidgetApplication_GetResourcePath();
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_GetRegion")]
-        public static extern string WidgetApplication_GetRegion(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_GetLanguage")]
-        public static extern string WidgetApplication_GetLanguage(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_InitSignal")]
-        public static extern global::System.IntPtr WidgetApplication_InitSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_TerminateSignal")]
-        public static extern global::System.IntPtr WidgetApplication_TerminateSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LanguageChangedSignal")]
-        public static extern global::System.IntPtr WidgetApplication_LanguageChangedSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_RegionChangedSignal")]
-        public static extern global::System.IntPtr WidgetApplication_RegionChangedSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LowBatterySignal")]
-        public static extern global::System.IntPtr WidgetApplication_LowBatterySignal(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LowMemorySignal")]
-        public static extern global::System.IntPtr WidgetApplication_LowMemorySignal(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetCreateSignalType_Empty")]
-        public static extern bool WidgetCreateSignalType_Empty(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetCreateSignalType_GetConnectionCount")]
-        public static extern uint WidgetCreateSignalType_GetConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetCreateSignalType_Connect")]
-        public static extern void WidgetCreateSignalType_Connect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetCreateSignalType_Disconnect")]
-        public static extern void WidgetCreateSignalType_Disconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetCreateSignalType_Emit")]
-        public static extern void WidgetCreateSignalType_Emit(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_WidgetCreateSignalType")]
-        public static extern global::System.IntPtr new_WidgetCreateSignalType();
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_delete_WidgetCreateSignalType")]
-        public static extern void delete_WidgetCreateSignalType(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetTerminateSignalType_Empty")]
-        public static extern bool WidgetTerminateSignalType_Empty(global::System.Runtime.InteropServices.HandleRef jarg1);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_New")]
+        public static extern global::System.IntPtr WidgetImpl_New();
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetTerminateSignalType_GetConnectionCount")]
-        public static extern uint WidgetTerminateSignalType_GetConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_OnCreate")]
+        public static extern void WidgetImpl_OnCreate(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetTerminateSignalType_Connect")]
-        public static extern void WidgetTerminateSignalType_Connect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_OnCreateSwigExplicitWidgetImpl")]
+        public static extern void WidgetImpl_OnCreateSwigExplicitWidgetImpl(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetTerminateSignalType_Disconnect")]
-        public static extern void WidgetTerminateSignalType_Disconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_OnTerminate")]
+        public static extern void WidgetImpl_OnTerminate(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, int jarg3);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetTerminateSignalType_Emit")]
-        public static extern void WidgetTerminateSignalType_Emit(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_OnTerminateSwigExplicitWidgetImpl")]
+        public static extern void WidgetImpl_OnTerminateSwigExplicitWidgetImpl(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, int jarg3);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_WidgetTerminateSignalType")]
-        public static extern global::System.IntPtr new_WidgetTerminateSignalType();
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_OnPause")]
+        public static extern void WidgetImpl_OnPause(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_delete_WidgetTerminateSignalType")]
-        public static extern void delete_WidgetTerminateSignalType(global::System.Runtime.InteropServices.HandleRef jarg1);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_OnPauseSwigExplicitWidgetImpl")]
+        public static extern void WidgetImpl_OnPauseSwigExplicitWidgetImpl(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetPauseSignalType_Empty")]
-        public static extern bool WidgetPauseSignalType_Empty(global::System.Runtime.InteropServices.HandleRef jarg1);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_OnResume")]
+        public static extern void WidgetImpl_OnResume(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetPauseSignalType_GetConnectionCount")]
-        public static extern uint WidgetPauseSignalType_GetConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_OnResumeSwigExplicitWidgetImpl")]
+        public static extern void WidgetImpl_OnResumeSwigExplicitWidgetImpl(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetPauseSignalType_Connect")]
-        public static extern void WidgetPauseSignalType_Connect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_OnResize")]
+        public static extern void WidgetImpl_OnResize(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetPauseSignalType_Disconnect")]
-        public static extern void WidgetPauseSignalType_Disconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_OnResizeSwigExplicitWidgetImpl")]
+        public static extern void WidgetImpl_OnResizeSwigExplicitWidgetImpl(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetPauseSignalType_Emit")]
-        public static extern void WidgetPauseSignalType_Emit(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_OnUpdate")]
+        public static extern void WidgetImpl_OnUpdate(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, int jarg3);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_WidgetPauseSignalType")]
-        public static extern global::System.IntPtr new_WidgetPauseSignalType();
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_OnUpdateSwigExplicitWidgetImpl")]
+        public static extern void WidgetImpl_OnUpdateSwigExplicitWidgetImpl(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, int jarg3);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_delete_WidgetPauseSignalType")]
-        public static extern void delete_WidgetPauseSignalType(global::System.Runtime.InteropServices.HandleRef jarg1);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_SignalConnected")]
+        public static extern void WidgetImpl_SignalConnected(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetResumeSignalType_Empty")]
-        public static extern bool WidgetResumeSignalType_Empty(global::System.Runtime.InteropServices.HandleRef jarg1);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_SignalConnectedSwigExplicitWidgetImpl")]
+        public static extern void WidgetImpl_SignalConnectedSwigExplicitWidgetImpl(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetResumeSignalType_GetConnectionCount")]
-        public static extern uint WidgetResumeSignalType_GetConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_SignalDisconnected")]
+        public static extern void WidgetImpl_SignalDisconnected(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetResumeSignalType_Connect")]
-        public static extern void WidgetResumeSignalType_Connect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_SignalDisconnectedSwigExplicitWidgetImpl")]
+        public static extern void WidgetImpl_SignalDisconnectedSwigExplicitWidgetImpl(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetResumeSignalType_Disconnect")]
-        public static extern void WidgetResumeSignalType_Disconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_SetContentInfo")]
+        public static extern void WidgetImpl_SetContentInfo(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetResumeSignalType_Emit")]
-        public static extern void WidgetResumeSignalType_Emit(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_SetImpl")]
+        public static extern void WidgetImpl_SetImpl(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_WidgetResumeSignalType")]
-        public static extern global::System.IntPtr new_WidgetResumeSignalType();
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetImpl_director_connect")]
+        public static extern void WidgetImpl_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WidgetImpl.SwigDelegateWidgetImpl_0 delegate0, WidgetImpl.SwigDelegateWidgetImpl_1 delegate1, WidgetImpl.SwigDelegateWidgetImpl_2 delegate2, WidgetImpl.SwigDelegateWidgetImpl_3 delegate3, WidgetImpl.SwigDelegateWidgetImpl_4 delegate4, WidgetImpl.SwigDelegateWidgetImpl_5 delegate5, WidgetImpl.SwigDelegateWidgetImpl_6 delegate6, WidgetImpl.SwigDelegateWidgetImpl_7 delegate7);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_delete_WidgetResumeSignalType")]
-        public static extern void delete_WidgetResumeSignalType(global::System.Runtime.InteropServices.HandleRef jarg1);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_Widget_GetImplementation__SWIG_0")]
+        public static extern global::System.IntPtr Widget_GetImplementation__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetResizeSignalType_Empty")]
-        public static extern bool WidgetResizeSignalType_Empty(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetResizeSignalType_GetConnectionCount")]
-        public static extern uint WidgetResizeSignalType_GetConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetResizeSignalType_Connect")]
-        public static extern void WidgetResizeSignalType_Connect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetResizeSignalType_Disconnect")]
-        public static extern void WidgetResizeSignalType_Disconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetResizeSignalType_Emit")]
-        public static extern void WidgetResizeSignalType_Emit(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_WidgetResizeSignalType")]
-        public static extern global::System.IntPtr new_WidgetResizeSignalType();
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_delete_WidgetResizeSignalType")]
-        public static extern void delete_WidgetResizeSignalType(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetUpdateSignalType_Empty")]
-        public static extern bool WidgetUpdateSignalType_Empty(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetUpdateSignalType_GetConnectionCount")]
-        public static extern uint WidgetUpdateSignalType_GetConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetUpdateSignalType_Connect")]
-        public static extern void WidgetUpdateSignalType_Connect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetUpdateSignalType_Disconnect")]
-        public static extern void WidgetUpdateSignalType_Disconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetUpdateSignalType_Emit")]
-        public static extern void WidgetUpdateSignalType_Emit(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_WidgetUpdateSignalType")]
-        public static extern global::System.IntPtr new_WidgetUpdateSignalType();
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_delete_WidgetUpdateSignalType")]
-        public static extern void delete_WidgetUpdateSignalType(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_AppSignalType_Empty")]
-        public static extern bool AppSignalType_Empty(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_AppSignalType_GetConnectionCount")]
-        public static extern uint AppSignalType_GetConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_AppSignalType_Connect")]
-        public static extern void AppSignalType_Connect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_AppSignalType_Disconnect")]
-        public static extern void AppSignalType_Disconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_AppSignalType_Emit")]
-        public static extern void AppSignalType_Emit(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_AppSignalType")]
-        public static extern global::System.IntPtr new_AppSignalType();
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_delete_AppSignalType")]
-        public static extern void delete_AppSignalType(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LowBatterySignalType_Empty")]
-        public static extern bool WidgetApplication_LowBatterySignalType_Empty(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LowBatterySignalType_GetConnectionCount")]
-        public static extern uint WidgetApplication_LowBatterySignalType_GetConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LowBatterySignalType_Connect")]
-        public static extern void WidgetApplication_LowBatterySignalType_Connect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LowBatterySignalType_Disconnect")]
-        public static extern void WidgetApplication_LowBatterySignalType_Disconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LowBatterySignalType_Emit")]
-        public static extern void WidgetApplication_LowBatterySignalType_Emit(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_new_LowBatterySignalType")]
-        public static extern global::System.IntPtr WidgetApplication_new_LowBatterySignalType();
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_delete_LowBatterySignalType")]
-        public static extern void WidgetApplication_delete_LowBatterySignalType(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LowMemorySignalType_Empty")]
-        public static extern bool WidgetApplication_LowMemorySignalType_Empty(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LowMemorySignalType_GetConnectionCount")]
-        public static extern uint WidgetApplication_LowMemorySignalType_GetConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LowMemorySignalType_Connect")]
-        public static extern void WidgetApplication_LowMemorySignalType_Connect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LowMemorySignalType_Disconnect")]
-        public static extern void WidgetApplication_LowMemorySignalType_Disconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_New")]
+        public static extern global::System.IntPtr WidgetApplication_New(int jarg1, string jarg2, string jarg3);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_LowMemorySignalType_Emit")]
-        public static extern void WidgetApplication_LowMemorySignalType_Emit(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_WidgetApplication__SWIG_0")]
+        public static extern global::System.IntPtr new_WidgetApplication__SWIG_0();
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_new_LowMemorySignalType")]
-        public static extern global::System.IntPtr WidgetApplication_new_LowMemorySignalType();
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_new_WidgetApplication__SWIG_1")]
+        public static extern global::System.IntPtr new_WidgetApplication__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_delete_LowMemorySignalType")]
-        public static extern void WidgetApplication_delete_LowMemorySignalType(global::System.Runtime.InteropServices.HandleRef jarg1);
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_Assign")]
+        public static extern global::System.IntPtr WidgetApplication_Assign(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
 
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_delete_WidgetApplication")]
+        public static extern void delete_WidgetApplication(global::System.Runtime.InteropServices.HandleRef jarg1);
 
+        [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Dali_WidgetApplication_RegisterWidgetCreatingFunction")]
+        public static extern void WidgetApplication_RegisterWidgetCreatingFunction(global::System.Runtime.InteropServices.HandleRef jarg1, ref string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);
+        // End widget
 
         [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint="CSharp_Actor_Property_INHERIT_LAYOUT_DIRECTION_get")]
         public static extern int Actor_Property_INHERIT_LAYOUT_DIRECTION_get();
index 0f8ff84..55c7193 100755 (executable)
@@ -30,6 +30,7 @@ namespace Tizen.NUI
         /// </summary>
         protected WidgetApplication _application;
         private string _stylesheet = "";
+        Dictionary<System.Type, string> _widgetInfo;
 
         /// <summary>
         /// Dictionary to contain each type of event callback.
@@ -41,8 +42,6 @@ namespace Tizen.NUI
         /// </summary>
         public NUIWidgetCoreBackend()
         {
-            //Tizen.Log.Fatal("NUI", "### NUIWidgetCoreBackend called");
-            //_application = WidgetApplication.NewWidgetApplication();
         }
 
         /// <summary>
@@ -51,7 +50,6 @@ namespace Tizen.NUI
         public NUIWidgetCoreBackend(string stylesheet)
         {
             _stylesheet = stylesheet;
-            //_application = WidgetApplication.NewWidgetApplication(stylesheet);
         }
 
         /// <summary>
@@ -83,7 +81,6 @@ namespace Tizen.NUI
         /// </summary>
         public void Dispose()
         {
-            Tizen.Log.Fatal("NUI", "### NUIWidgetCoreBackend Dispose called");
             if (_application != null)
             {
                 _application.Dispose();
@@ -95,106 +92,142 @@ namespace Tizen.NUI
         /// </summary>
         public void Exit()
         {
-            Tizen.Log.Fatal("NUI", "### NUIWidgetCoreBackend Exit called");
             if (_application != null)
             {
                 _application.Quit();
             }
         }
 
+        public void RegisterWidgetInfo(Dictionary<System.Type, string> widgetInfo)
+        {
+            _widgetInfo = widgetInfo;
+        }
+
         /// <summary>
         /// Run Application.
         /// </summary>
         /// <param name="args">Arguments from commandline.</param>
         public void Run(string[] args)
         {
+            TizenSynchronizationContext.Initialize();
+
             args[0] = Tizen.Applications.Application.Current.ApplicationInfo.ExecutablePath;
             _application = WidgetApplication.NewWidgetApplication(args, _stylesheet);
+            _application.RegisterWidgetInfo(_widgetInfo);
 
-            TizenSynchronizationContext.Initialize();
             _application.BatteryLow += OnBatteryLow;
             _application.LanguageChanged += OnLanguageChanged;
             _application.MemoryLow += OnMemoryLow;
             _application.RegionChanged += OnRegionChanged; ;
-
-            _application.Init += OnInit;
-            _application.Terminate += OnTerminate;
+            _application.Initialized += OnInitialized;
+            _application.Terminating += OnTerminated;
 
             _application.MainLoop();
         }
 
-        private void OnInit(object sender, WidgetApplication.WidgetApplicationEventArgs e)
+        /// <summary>
+        /// The Initialized event callback function.
+        /// </summary>
+        /// <param name="source">The application instance.</param>
+        /// <param name="e">The event argument for Initialized.</param>
+        private void OnInitialized(object source, NUIApplicationInitEventArgs e)
         {
-            Log.Fatal("NUI", "NUIWidgetApplication OnPreCreated Called");
             var preCreateHandler = Handlers[EventType.PreCreated] as Action;
             preCreateHandler?.Invoke();
 
-            Log.Fatal("NUI", "NUIWidgetApplication OnCreate Called");
             var createHandler = Handlers[EventType.Created] as Action;
             createHandler?.Invoke();
-
+            _application.RegisterWidgetCreatingFunction();
         }
 
-        private void OnTerminate(object sender, WidgetApplication.WidgetApplicationEventArgs e)
+        /// <summary>
+        /// The Terminated event callback function.
+        /// </summary>
+        /// <param name="source">The application instance.</param>
+        /// <param name="e">The event argument for Terminated.</param>
+        private void OnTerminated(object source, NUIApplicationTerminatingEventArgs e)
         {
-            Log.Fatal("NUI", "NUIWidgetApplication OnTerminated Called");
             var handler = Handlers[EventType.Terminated] as Action;
             handler?.Invoke();
         }
 
         /// <summary>
-        /// Region changed event callback function.
+        /// The Region changed event callback function.
         /// </summary>
-        /// <param name="sender">Application instance</param>
-        /// <param name="e">Event argument for RegionChanged</param>
-        private void OnRegionChanged(object sender, WidgetApplication.WidgetApplicationEventArgs e)
+        /// <param name="source">The application instance.</param>
+        /// <param name="e">The event argument for RegionChanged.</param>
+        private void OnRegionChanged(object source, NUIApplicationRegionChangedEventArgs e)
         {
-            Log.Fatal("NUI", "NUIWidgetApplication 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(""));
+            handler?.Invoke(new RegionFormatChangedEventArgs(e.Application.GetRegion()));
         }
 
         /// <summary>
-        /// Memory Low event callback function.
+        /// The Language changed event callback function.
         /// </summary>
-        /// <param name="sender">Application instance</param>
-        /// <param name="e">Event argument for MemoryLow</param>
-        private void OnMemoryLow(object sender, WidgetApplication.WidgetApplicationEventArgs e)
+        /// <param name="source">The application instance.</param>
+        /// <param name="e">The event argument for LanguageChanged.</param>
+        private void OnLanguageChanged(object source, NUIApplicationLanguageChangedEventArgs e)
         {
-            Log.Fatal("NUI", "NUIWidgetApplication 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));
+            var handler = Handlers[EventType.LocaleChanged] as Action<LocaleChangedEventArgs>;
+            handler?.Invoke(new LocaleChangedEventArgs(e.Application.GetLanguage()));
         }
 
         /// <summary>
-        /// Language changed event callback function.
+        /// The Memory Low event callback function.
         /// </summary>
-        /// <param name="sender">Application instance</param>
-        /// <param name="e">Event argument for LanguageChanged</param>
-        private void OnLanguageChanged(object sender, WidgetApplication.WidgetApplicationEventArgs e)
+        /// <param name="source">The application instance.</param>
+        /// <param name="e">The event argument for MemoryLow.</param>
+        private void OnMemoryLow(object source, NUIApplicationMemoryLowEventArgs e)
         {
+            var handler = Handlers[EventType.LowMemory] as Action<LowMemoryEventArgs>;
 
-            Log.Fatal("NUI", "NUIWidgetApplication 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(""));
-
+            switch (e.MemoryStatus)
+            {
+                case Application.MemoryStatus.Normal:
+                {
+                    handler?.Invoke(new LowMemoryEventArgs(LowMemoryStatus.None));
+                    break;
+                }
+                case Application.MemoryStatus.Low:
+                {
+                    handler?.Invoke(new LowMemoryEventArgs(LowMemoryStatus.SoftWarning));
+                    break;
+                }
+                case Application.MemoryStatus.CriticallyLow:
+                {
+                    handler?.Invoke(new LowMemoryEventArgs(LowMemoryStatus.HardWarning));
+                    break;
+                }
+            }
         }
 
         /// <summary>
-        /// Battery low event callback function.
+        /// The Battery Low event callback function.
         /// </summary>
-        /// <param name="sender">Application instance</param>
-        /// <param name="e">Event argument for BatteryLow</param>
-        private void OnBatteryLow(object sender, WidgetApplication.WidgetApplicationEventArgs e)
+        /// <param name="source">The application instance.</param>
+        /// <param name="e">The event argument for BatteryLow.</param>
+        private void OnBatteryLow(object source, NUIApplicationBatteryLowEventArgs e)
         {
-            Log.Fatal("NUI", "NUIWidgetApplication 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));
-
+            switch (e.BatteryStatus)
+            {
+                case Application.BatteryStatus.Normal:
+                {
+                    handler?.Invoke(new LowBatteryEventArgs(LowBatteryStatus.None));
+                    break;
+                }
+                case Application.BatteryStatus.CriticallyLow:
+                {
+                    handler?.Invoke(new LowBatteryEventArgs(LowBatteryStatus.CriticalLow));
+                    break;
+                }
+                case Application.BatteryStatus.PowerOff:
+                {
+                    handler?.Invoke(new LowBatteryEventArgs(LowBatteryStatus.PowerOff));
+                    break;
+                }
+            }
         }
 
         internal WidgetApplication WidgetApplicationHandle
index aea7cbe..b242fd8 100755 (executable)
@@ -55,10 +55,6 @@ namespace Tizen.NUI
         /// <param name="baseHandle">The instance of BaseHandle (C# base class).</param>
         internal static void Register(BaseHandle baseHandle)
         {
-            if(savedApplicationThread?.ManagedThreadId != Thread.CurrentThread.ManagedThreadId)
-            {
-                throw new global::System.ApplicationException("NUI object is attempt to be created in another thread. It should be created in main thread only!");
-            }
 
             // We store a pointer to the RefObject for the control
             RefObject refObj = baseHandle.GetObjectPtr();
diff --git a/src/Tizen.NUI/src/internal/SWIGTYPE_p_Dali__Widget__Impl.cs b/src/Tizen.NUI/src/internal/SWIGTYPE_p_Dali__Widget__Impl.cs
new file mode 100755 (executable)
index 0000000..bd4e5fd
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ *
+ */
+namespace Tizen.NUI
+{
+
+    internal class SWIGTYPE_p_Dali__Widget__Impl
+    {
+        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+        internal SWIGTYPE_p_Dali__Widget__Impl(global::System.IntPtr cPtr, bool futureUse)
+        {
+            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+        }
+
+        protected SWIGTYPE_p_Dali__Widget__Impl()
+        {
+            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+        }
+
+        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_Dali__Widget__Impl obj)
+        {
+            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+        }
+    }
+
+}
index ecebcf8..185d6bd 100755 (executable)
  *
  */
 using System;
-using System.Runtime.InteropServices;
+using System.Collections.Generic;
 
 namespace Tizen.NUI
 {
-    /// <summary>
-    /// Widget application
-    /// </summary>
-    internal class WidgetApplication : BaseHandle
+    internal class WidgetApplication : Application
     {
         private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+        private static WidgetApplication _instance; //singleton
+        private Dictionary<System.Type, string> _widgetInfo;
+        private List<Widget> _widgetList = new List<Widget>();
+        private delegate System.IntPtr CreateWidgetFunctionDelegate(ref string widgetName);
 
-        internal WidgetApplication(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicManualPINVOKE.WidgetApplication_SWIGUpcast(cPtr), cMemoryOwn)
+        internal WidgetApplication(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
         {
             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
         }
@@ -36,17 +37,14 @@ namespace Tizen.NUI
             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
         }
 
-        /// <summary>
-        /// To make Window instance be disposed.
-        /// </summary>
         protected override void Dispose(DisposeTypes type)
         {
-            if(disposed)
+            if (disposed)
             {
                 return;
             }
 
-            if(type == DisposeTypes.Explicit)
+            if (type == DisposeTypes.Explicit)
             {
                 //Called by User
                 //Release your own managed resources here.
@@ -56,32 +54,6 @@ namespace Tizen.NUI
             //Release your own unmanaged resources here.
             //You should not access any managed member here except static instance.
             //because the execution order of Finalizes is non-deterministic.
-
-            if (_initCallback != null)
-            {
-                this.InitSignal().Disconnect(_initCallback);
-            }
-            if (_terminateCallback != null)
-            {
-                this.TerminateSignal().Disconnect(_terminateCallback);
-            }
-            if (_languageChangedCallback != null)
-            {
-                this.LanguageChangedSignal().Disconnect(_languageChangedCallback);;
-            }
-            if (_regionChangedCallback != null)
-            {
-                this.RegionChangedSignal().Disconnect(_regionChangedCallback);
-            }
-            if (_batteryLowCallback != null)
-            {
-                this.BatteryLowSignal().Disconnect(_batteryLowCallback);
-            }
-            if (_memoryLowCallback != null)
-            {
-                this.MemoryLowSignal().Disconnect(_memoryLowCallback);
-            }
-            
             if (swigCPtr.Handle != global::System.IntPtr.Zero)
             {
                 if (swigCMemOwn)
@@ -91,18 +63,10 @@ namespace Tizen.NUI
                 }
                 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
             }
-
             base.Dispose(type);
         }
 
-        internal static WidgetApplication GetWidgetApplicationFromPtr(global::System.IntPtr cPtr)
-        {
-            WidgetApplication ret = new WidgetApplication(cPtr, false);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public static WidgetApplication Instance
+        public new static WidgetApplication Instance
         {
             get
             {
@@ -114,7 +78,6 @@ namespace Tizen.NUI
         {
             WidgetApplication ret = New(args, stylesheet);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-
             _instance = ret;
             return ret;
         }
@@ -124,420 +87,79 @@ namespace Tizen.NUI
             int argc = args.Length;
             string argvStr = string.Join(" ", args);
 
-            WidgetApplication ret = new WidgetApplication(NDalicManualPINVOKE.WidgetApplication_New(argc, argvStr, stylesheet), true);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-        internal WidgetApplication(WidgetApplication widgetApplication) : this(NDalicManualPINVOKE.new_WidgetApplication__SWIG_1(WidgetApplication.getCPtr(widgetApplication)), true)
-        {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-        internal WidgetApplication Assign(WidgetApplication widgetApplication)
-        {
-            WidgetApplication ret = new WidgetApplication(NDalicManualPINVOKE.WidgetApplication_Assign(swigCPtr, WidgetApplication.getCPtr(widgetApplication)), false);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
+            IntPtr widgetIntPtr = NDalicManualPINVOKE.WidgetApplication_New(argc, argvStr, stylesheet);
 
-        /// <summary>
-        /// This starts the application.
-        /// </summary>
-        public void MainLoop()
-        {
-            NDalicManualPINVOKE.WidgetApplication_MainLoop(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending)
-            {
-                throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        /// <summary>
-        /// This quits the application.
-        /// Tizen applications should use Lower to improve re-start performance unless they need to Quit completely.
-        /// </summary>
-        public void Quit()
-        {
-            NDalicManualPINVOKE.WidgetApplication_Quit(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-        /// <summary>
-        /// Get path application resources are stored at.
-        /// </summary>
-        /// <returns>The full path of the resources</returns>
-        public static string GetResourcePath()
-        {
-            string ret = NDalicManualPINVOKE.WidgetApplication_GetResourcePath();
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        /// <summary>
-        /// Get region information from device.
-        /// </summary>
-        /// <returns>Region information</returns>
-        public string GetRegion()
-        {
-            string ret = NDalicManualPINVOKE.WidgetApplication_GetRegion(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
+            WidgetApplication ret = new WidgetApplication(widgetIntPtr, false);
 
-        /// <summary>
-        /// Get language from device.
-        /// </summary>
-        /// <returns>Language information</returns>
-        public string GetLanguage()
-        {
-            string ret = NDalicManualPINVOKE.WidgetApplication_GetLanguage(swigCPtr);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        /// <summary>
-        /// Event arguments that passed via widget app event signal.
-        /// </summary>
-        /// <since_tizen> 4 </since_tizen>
-        public class WidgetApplicationEventArgs : EventArgs
-        {
-            /// <summary>
-            /// Widget application.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            public WidgetApplication WidgetApplication
-            {
-                get;
-                set;
-            }
-        }
-
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void InitCallbackType(IntPtr widgetApplication);
-        private InitCallbackType _initCallback;
-        private DaliEventHandler<object,WidgetApplicationEventArgs> _initEventHandler;
-
-        /// <summary>
-        /// Init event.
-        /// </summary>
-        public event DaliEventHandler<object, WidgetApplicationEventArgs> Init
-        {
-            add
-            {
-                if (_initEventHandler == null)
-                {
-                    _initCallback = new InitCallbackType( OnInit);
-                    InitSignal().Connect(_initCallback);
-                }
-
-                _initEventHandler += value;
-            }
-
-            remove
-            {
-                _initEventHandler -= value;
-
-                if (_initEventHandler == null && InitSignal().Empty() == false)
-                {
-                   InitSignal().Disconnect(_initCallback);
-                }
-            }
-        }
 
-        private void OnInit(IntPtr widgetApplication)
-        {
-            WidgetApplicationEventArgs e = new WidgetApplicationEventArgs();
-            if (widgetApplication != null)
-            {
-                e.WidgetApplication = WidgetApplication.GetWidgetApplicationFromPtr(widgetApplication);
-            }
-
-            if (_initEventHandler != null)
-            {
-                _initEventHandler(this, e);
-            }
-        }
-
-        internal AppSignalType InitSignal()
-        {
-            AppSignalType ret = new AppSignalType(NDalicManualPINVOKE.WidgetApplication_InitSignal(swigCPtr), false);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
         }
 
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void TerminateCallbackType(IntPtr widgetApplication);
-        private TerminateCallbackType _terminateCallback;
-        private DaliEventHandler<object, WidgetApplicationEventArgs> _terminateEventHandler;
-
-        /// <summary>
-        /// Terminate event.
-        /// </summary>
-        public event DaliEventHandler<object, WidgetApplicationEventArgs> Terminate
-        {
-            add
-            {
-                if (_terminateEventHandler == null)
-                {
-                    _terminateCallback = new TerminateCallbackType( OnTerminate);
-                    TerminateSignal().Connect(_terminateCallback);
-                }
-
-                _terminateEventHandler += value;
-            }
-
-            remove
-            {
-                _terminateEventHandler -= value;
-
-                if (_terminateEventHandler == null && TerminateSignal().Empty() == false)
-                {
-                   TerminateSignal().Disconnect(_terminateCallback);
-                }
-            }
-        }
-
-        private void OnTerminate(IntPtr widgetApplication)
-        {
-            WidgetApplicationEventArgs e = new WidgetApplicationEventArgs();
-
-            if (widgetApplication != null)
-            {
-                e.WidgetApplication = WidgetApplication.GetWidgetApplicationFromPtr(widgetApplication);
-            }
-
-            if (_terminateEventHandler != null)
-            {
-                _terminateEventHandler(this, e);
-            }
-        }
-
-        internal AppSignalType TerminateSignal()
+        internal WidgetApplication(WidgetApplication widgetApplication) : this(NDalicManualPINVOKE.new_WidgetApplication__SWIG_1(WidgetApplication.getCPtr(widgetApplication)), true)
         {
-            AppSignalType ret = new AppSignalType(NDalicManualPINVOKE.WidgetApplication_TerminateSignal(swigCPtr), false);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void LanguageChangedCallbackType(IntPtr widgetApplication);
-        private LanguageChangedCallbackType _languageChangedCallback;
-        private DaliEventHandler<object, WidgetApplicationEventArgs> _languageChangedEventHandler;
-
-        /// <summary>
-        /// LanguageChanged event.
-        /// </summary>
-        public event DaliEventHandler<object, WidgetApplicationEventArgs> LanguageChanged
-        {
-            add
-            {
-                if (_languageChangedEventHandler == null)
-                {
-                    _languageChangedCallback = new LanguageChangedCallbackType( OnLanguageChanged);
-                    LanguageChangedSignal().Connect(_languageChangedCallback);
-                }
-
-                _languageChangedEventHandler += value;
-            }
-
-            remove
-            {
-                _languageChangedEventHandler -= value;
-
-                if (_languageChangedEventHandler == null && LanguageChangedSignal().Empty() == false)
-                {
-                   LanguageChangedSignal().Disconnect(_languageChangedCallback);
-                }
-            }
         }
 
-        private void OnLanguageChanged(IntPtr widgetApplication)
-        {
-            WidgetApplicationEventArgs e = new WidgetApplicationEventArgs();
-
-            if (widgetApplication != null)
-            {
-                e.WidgetApplication = WidgetApplication.GetWidgetApplicationFromPtr(widgetApplication);
-            }
-
-            if (_languageChangedEventHandler != null)
-            {
-                _languageChangedEventHandler(this, e);
-            }
-        }
-
-        internal AppSignalType LanguageChangedSignal()
+        internal WidgetApplication Assign(WidgetApplication widgetApplication)
         {
-            AppSignalType ret = new AppSignalType(NDalicManualPINVOKE.WidgetApplication_LanguageChangedSignal(swigCPtr), false);
+            WidgetApplication ret = new WidgetApplication(NDalicManualPINVOKE.WidgetApplication_Assign(swigCPtr, WidgetApplication.getCPtr(widgetApplication)), false);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
         }
 
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void RegionChangedCallbackType(IntPtr widgetApplication);
-        private RegionChangedCallbackType _regionChangedCallback;
-        private DaliEventHandler<object, WidgetApplicationEventArgs> _regionChangedEventHandler;
-
-        /// <summary>
-        /// RegionChanged event.
-        /// </summary>
-        public event DaliEventHandler<object, WidgetApplicationEventArgs> RegionChanged
+        public void RegisterWidgetCreatingFunction()
         {
-            add
-            {
-                if (_regionChangedEventHandler == null)
-                {
-                    _regionChangedCallback = new RegionChangedCallbackType( OnRegionChanged );
-                    RegionChangedSignal().Connect(_regionChangedCallback);
-                }
-
-                _regionChangedEventHandler += value;
-            }
-
-            remove
+            foreach (KeyValuePair<System.Type, string> widgetInfo in _widgetInfo)
             {
-                _regionChangedEventHandler -= value;
-
-                if (_regionChangedEventHandler == null && RegionChangedSignal().Empty() == false)
-                {
-                   RegionChangedSignal().Disconnect(_regionChangedCallback);
-                }
+                string widgetName = widgetInfo.Value;
+                RegisterWidgetCreatingFunction(ref widgetName);
             }
         }
 
-        private void OnRegionChanged(IntPtr widgetApplication)
+        internal void RegisterWidgetCreatingFunction(ref string widgetName)
         {
-            WidgetApplicationEventArgs e = new WidgetApplicationEventArgs();
+            CreateWidgetFunctionDelegate newDelegate = new CreateWidgetFunctionDelegate(WidgetCreateFunction);
 
-            if (widgetApplication != null)
-            {
-                e.WidgetApplication = WidgetApplication.GetWidgetApplicationFromPtr(widgetApplication);
-            }
+            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate<System.Delegate>(newDelegate);
+            CreateWidgetFunction createWidgetFunction = new CreateWidgetFunction(ip, true);
 
-            if (_regionChangedEventHandler != null)
-            {
-                _regionChangedEventHandler(this, e);
-            }
-        }
-
-        internal AppSignalType RegionChangedSignal()
-        {
-            AppSignalType ret = new AppSignalType(NDalicManualPINVOKE.WidgetApplication_RegionChangedSignal(swigCPtr), false);
+            NDalicManualPINVOKE.WidgetApplication_RegisterWidgetCreatingFunction(swigCPtr, ref widgetName, CreateWidgetFunction.getCPtr(createWidgetFunction));
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
         }
 
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void BatteryLowCallbackType(IntPtr widgetApplication);
-        private BatteryLowCallbackType _batteryLowCallback;
-        private DaliEventHandler<object, WidgetApplicationEventArgs> _batteryLowEventHandler;
-
-        /// <summary>
-        /// BatteryLow event.
-        /// </summary>
-        public event DaliEventHandler<object, WidgetApplicationEventArgs> BatteryLow
+        public void AddWidgetInstance( Widget widget )
         {
-            add
-            {
-                if (_batteryLowEventHandler == null)
-                {
-                    _batteryLowCallback = new BatteryLowCallbackType( OnBatteryLow );
-                    BatteryLowSignal().Connect(_batteryLowCallback);
-                }
-
-                _batteryLowEventHandler += value;
-            }
-
-            remove
-            {
-                _batteryLowEventHandler -= value;
-
-                if (_batteryLowEventHandler == null && BatteryLowSignal().Empty() == false)
-                {
-                   BatteryLowSignal().Disconnect(_batteryLowCallback);
-                }
-            }
+            _widgetList.Add(widget);
         }
 
-        private void OnBatteryLow(IntPtr widgetApplication)
+        public void RegisterWidgetInfo(Dictionary<System.Type, string> widgetInfo)
         {
-            WidgetApplicationEventArgs e = new WidgetApplicationEventArgs();
-
-            if (widgetApplication != null)
-            {
-                e.WidgetApplication = WidgetApplication.GetWidgetApplicationFromPtr(widgetApplication);
-            }
-
-            if (_batteryLowEventHandler != null)
-            {
-                _batteryLowEventHandler(this, e);
-            }
+            _widgetInfo = widgetInfo;
         }
 
-        internal WidgetApplicationLowBatterySignalType BatteryLowSignal()
+        public static System.IntPtr WidgetCreateFunction(ref string widgetName)
         {
-            WidgetApplicationLowBatterySignalType ret = new WidgetApplicationLowBatterySignalType(NDalicManualPINVOKE.WidgetApplication_LowBatterySignal(swigCPtr), false);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void MemoryLowCallbackType(IntPtr widgetApplication);
-        private MemoryLowCallbackType _memoryLowCallback;
-        private DaliEventHandler<object, WidgetApplicationEventArgs> _memoryLowEventHandler;
+            Dictionary<System.Type, string> widgetInfo = Instance.WidgetInfo;
 
-        /// <summary>
-        /// MemoryLow event.
-        /// </summary>
-        public event DaliEventHandler<object, WidgetApplicationEventArgs> MemoryLow
-        {
-            add
+            foreach (System.Type widgetType in widgetInfo.Keys)
             {
-                if (_memoryLowEventHandler == null)
+                if (widgetInfo[widgetType] == widgetName)
                 {
-                    _memoryLowCallback = new MemoryLowCallbackType (OnMemoryLow);
-                    MemoryLowSignal().Connect(_memoryLowCallback);
+                    Widget widget = Activator.CreateInstance(widgetType) as Widget;
+                    return widget.GetIntPtr();
                 }
-
-                _memoryLowEventHandler += value;
             }
 
-            remove
-            {
-                _memoryLowEventHandler -= value;
-
-                if (_memoryLowEventHandler == null && MemoryLowSignal().Empty() == false)
-                {
-                   MemoryLowSignal().Disconnect(_memoryLowCallback);
-                }
-            }
+            return IntPtr.Zero;
         }
 
-        private void OnMemoryLow(IntPtr widgetApplication)
+        public Dictionary<System.Type, string> WidgetInfo
         {
-            WidgetApplicationEventArgs e = new WidgetApplicationEventArgs();
-
-            if (widgetApplication != null)
-            {
-                e.WidgetApplication = WidgetApplication.GetWidgetApplicationFromPtr(widgetApplication);
-            }
-
-            if (_memoryLowEventHandler != null)
+            get
             {
-                _memoryLowEventHandler(this, e);
+                return _widgetInfo;
             }
         }
-
-        internal WidgetApplicationLowMemorySignalType MemoryLowSignal()
-        {
-            WidgetApplicationLowMemorySignalType ret = new WidgetApplicationLowMemorySignalType(NDalicManualPINVOKE.WidgetApplication_LowMemorySignal(swigCPtr), false);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        private static WidgetApplication _instance; //singleton
-
     }
-
 }
diff --git a/src/Tizen.NUI/src/internal/WidgetApplicationLowBatterySignalType.cs b/src/Tizen.NUI/src/internal/WidgetApplicationLowBatterySignalType.cs
deleted file mode 100755 (executable)
index 3240acf..0000000
+++ /dev/null
@@ -1,188 +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.
- *
- */
-
-namespace Tizen.NUI
-{
-
-    /// <summary>
-    /// LowBatterySignalType.
-    /// </summary>
-    internal class WidgetApplicationLowBatterySignalType : global::System.IDisposable
-    {
-        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
-
-        /// <summary>
-        /// swigCMemOwn.
-        /// </summary>
-        protected bool swigCMemOwn;
-
-        internal WidgetApplicationLowBatterySignalType(global::System.IntPtr cPtr, bool cMemoryOwn)
-        {
-            swigCMemOwn = cMemoryOwn;
-            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
-        }
-
-        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WidgetApplicationLowBatterySignalType obj)
-        {
-            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
-        }
-
-        //A Flag to check who called Dispose(). (By User or DisposeQueue)
-        private bool isDisposeQueued = false;
-
-        /// <summary>
-        /// A Flat to check if it is already disposed.
-        /// </summary>
-        protected bool disposed = false;
-
-
-        /// <summary>
-        /// Distructor.
-        /// </summary>
-        ~WidgetApplicationLowBatterySignalType()
-        {
-            if (!isDisposeQueued)
-            {
-                isDisposeQueued = true;
-                DisposeQueue.Instance.Add(this);
-            }
-        }
-
-        /// <summary>
-        /// Dispose.
-        /// </summary>
-        public void Dispose()
-        {
-            //Throw excpetion if Dispose() is called in separate thread.
-            if (!Window.IsInstalled())
-            {
-                throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
-            }
-
-            if (isDisposeQueued)
-            {
-                Dispose(DisposeTypes.Implicit);
-            }
-            else
-            {
-                Dispose(DisposeTypes.Explicit);
-                System.GC.SuppressFinalize(this);
-            }
-        }
-
-        /// <summary>
-        /// you can override it to clean-up your own resources.
-        /// </summary>
-        /// <param name="type">DisposeTypes</param>
-        /// <since_tizen> 3 </since_tizen>
-        protected virtual void Dispose(DisposeTypes type)
-        {
-            if (disposed)
-            {
-                return;
-            }
-
-            if (type == DisposeTypes.Explicit)
-            {
-                //Called by User
-                //Release your own managed resources here.
-                //You should release all of your own disposable objects here.
-
-            }
-
-            //Release your own unmanaged resources here.
-            //You should not access any managed member here except static instance.
-            //because the execution order of Finalizes is non-deterministic.
-
-            if (swigCPtr.Handle != global::System.IntPtr.Zero)
-            {
-                if (swigCMemOwn)
-                {
-                    swigCMemOwn = false;
-                    NDalicManualPINVOKE.WidgetApplication_delete_LowBatterySignalType(swigCPtr);
-                }
-                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
-            }
-            disposed = true;
-        }
-
-        /// <summary>
-        /// Empty 
-        /// </summary>
-        /// <returns>true if there is no signal attached</returns>
-        public bool Empty()
-        {
-            bool ret = NDalicManualPINVOKE.WidgetApplication_LowBatterySignalType_Empty(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        /// <summary>
-        /// GetConnectionCount
-        /// </summary>
-        /// <returns>number of attached signals</returns>
-        public uint GetConnectionCount()
-        {
-            uint ret = NDalicManualPINVOKE.WidgetApplication_LowBatterySignalType_GetConnectionCount(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        /// <summary>
-        /// signal connect
-        /// </summary>
-        /// <param name="func"></param>
-        public void Connect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetApplication_LowBatterySignalType_Connect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        /// <summary>
-        /// signal disconnect
-        /// </summary>
-        /// <param name="func"></param>
-        public void Disconnect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetApplication_LowBatterySignalType_Disconnect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        internal void Emit(Application.BatteryStatus arg)
-        {
-            NDalicManualPINVOKE.WidgetApplication_LowBatterySignalType_Emit(swigCPtr, (int)arg);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-        /// <summary>
-        /// LowBatterySignalType
-        /// </summary>
-        public WidgetApplicationLowBatterySignalType() : this(NDalicManualPINVOKE.WidgetApplication_new_LowBatterySignalType(), true)
-        {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-    }
-
-}
-
diff --git a/src/Tizen.NUI/src/internal/WidgetApplicationLowMemorySignalType.cs b/src/Tizen.NUI/src/internal/WidgetApplicationLowMemorySignalType.cs
deleted file mode 100755 (executable)
index b943ede..0000000
+++ /dev/null
@@ -1,146 +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.
- *
- */
-namespace Tizen.NUI
-{
-
-    internal class WidgetApplicationLowMemorySignalType : global::System.IDisposable
-    {
-        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
-        protected bool swigCMemOwn;
-
-        internal WidgetApplicationLowMemorySignalType(global::System.IntPtr cPtr, bool cMemoryOwn)
-        {
-            swigCMemOwn = cMemoryOwn;
-            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
-        }
-
-        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WidgetApplicationLowMemorySignalType obj)
-        {
-            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
-        }
-
-        //A Flag to check who called Dispose(). (By User or DisposeQueue)
-        private bool isDisposeQueued = false;
-        //A Flat to check if it is already disposed.
-        protected bool disposed = false;
-
-        ~WidgetApplicationLowMemorySignalType()
-        {
-            if (!isDisposeQueued)
-            {
-                isDisposeQueued = true;
-                DisposeQueue.Instance.Add(this);
-            }
-        }
-
-        public void Dispose()
-        {
-            //Throw excpetion if Dispose() is called in separate thread.
-            if (!Window.IsInstalled())
-            {
-                throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
-            }
-
-            if (isDisposeQueued)
-            {
-                Dispose(DisposeTypes.Implicit);
-            }
-            else
-            {
-                Dispose(DisposeTypes.Explicit);
-                System.GC.SuppressFinalize(this);
-            }
-        }
-
-        protected virtual void Dispose(DisposeTypes type)
-        {
-            if (disposed)
-            {
-                return;
-            }
-
-            if (type == DisposeTypes.Explicit)
-            {
-                //Called by User
-                //Release your own managed resources here.
-                //You should release all of your own disposable objects here.
-
-            }
-
-            //Release your own unmanaged resources here.
-            //You should not access any managed member here except static instance.
-            //because the execution order of Finalizes is non-deterministic.
-
-            if (swigCPtr.Handle != global::System.IntPtr.Zero)
-            {
-                if (swigCMemOwn)
-                {
-                    swigCMemOwn = false;
-                    NDalicManualPINVOKE.WidgetApplication_delete_LowMemorySignalType(swigCPtr);
-                }
-                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
-            }
-            disposed = true;
-        }
-
-        public bool Empty()
-        {
-            bool ret = NDalicManualPINVOKE.WidgetApplication_LowMemorySignalType_Empty(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public uint GetConnectionCount()
-        {
-            uint ret = NDalicManualPINVOKE.WidgetApplication_LowMemorySignalType_GetConnectionCount(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public void Connect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetApplication_LowMemorySignalType_Connect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Disconnect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetApplication_LowMemorySignalType_Disconnect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        internal void Emit(Application.MemoryStatus arg)
-        {
-            NDalicManualPINVOKE.WidgetApplication_LowMemorySignalType_Emit(swigCPtr, (int)arg);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-        public WidgetApplicationLowMemorySignalType() : this(NDalicManualPINVOKE.WidgetApplication_new_LowMemorySignalType(), true)
-        {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-    }
-
-}
diff --git a/src/Tizen.NUI/src/internal/WidgetCreateSignalType.cs b/src/Tizen.NUI/src/internal/WidgetCreateSignalType.cs
deleted file mode 100755 (executable)
index 9bdb099..0000000
+++ /dev/null
@@ -1,144 +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.
- *
- */
-
-namespace Tizen.NUI
-{
-
-    internal class WidgetCreateSignalType : global::System.IDisposable
-    {
-        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
-        protected bool swigCMemOwn;
-
-        internal WidgetCreateSignalType(global::System.IntPtr cPtr, bool cMemoryOwn)
-        {
-            swigCMemOwn = cMemoryOwn;
-            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
-        }
-
-        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WidgetCreateSignalType obj)
-        {
-            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
-        }
-
-        //A Flag to check who called Dispose(). (By User or DisposeQueue)
-        private bool isDisposeQueued = false;
-        //A Flat to check if it is already disposed.
-        protected bool disposed = false;
-
-        ~WidgetCreateSignalType()
-        {
-            if (!isDisposeQueued)
-            {
-                isDisposeQueued = true;
-                DisposeQueue.Instance.Add(this);
-            }
-        }
-
-        public void Dispose()
-        {
-            //Throw excpetion if Dispose() is called in separate thread.
-            if (!Window.IsInstalled())
-            {
-                throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
-            }
-
-            if (isDisposeQueued)
-            {
-                Dispose(DisposeTypes.Implicit);
-            }
-            else
-            {
-                Dispose(DisposeTypes.Explicit);
-                System.GC.SuppressFinalize(this);
-            }
-        }
-
-        protected virtual void Dispose(DisposeTypes type)
-        {
-            if (disposed)
-            {
-                return;
-            }
-
-            if (type == DisposeTypes.Explicit)
-            {
-                //Called by User
-                //Release your own managed resources here.
-                //You should release all of your own disposable objects here.
-
-            }
-
-            //Release your own unmanaged resources here.
-            //You should not access any managed member here except static instance.
-            //because the execution order of Finalizes is non-deterministic.
-
-            if (swigCPtr.Handle != global::System.IntPtr.Zero)
-            {
-                swigCMemOwn = false;
-                NDalicManualPINVOKE.delete_WidgetCreateSignalType(swigCPtr);
-                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
-            }
-
-            disposed = true;
-        }
-
-        public bool Empty()
-        {
-            bool ret = NDalicManualPINVOKE.WidgetCreateSignalType_Empty(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public uint GetConnectionCount()
-        {
-            uint ret = NDalicManualPINVOKE.WidgetCreateSignalType_GetConnectionCount(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public void Connect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetCreateSignalType_Connect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Disconnect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetCreateSignalType_Disconnect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Emit(string arg1, SWIGTYPE_p_bundle arg2, Window arg3)
-        {
-            NDalicManualPINVOKE.WidgetCreateSignalType_Emit(swigCPtr, arg1, SWIGTYPE_p_bundle.getCPtr(arg2), Window.getCPtr(arg3));
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-        public WidgetCreateSignalType() : this(NDalicManualPINVOKE.new_WidgetCreateSignalType(), true)
-        {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-    }
-
-}
diff --git a/src/Tizen.NUI/src/internal/WidgetImpl.cs b/src/Tizen.NUI/src/internal/WidgetImpl.cs
new file mode 100755 (executable)
index 0000000..d9fba02
--- /dev/null
@@ -0,0 +1,406 @@
+/*
+ * 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.ComponentModel;
+using System.Runtime.InteropServices;
+
+namespace Tizen.NUI
+{
+    internal class WidgetImpl : BaseObject
+    {
+        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+        internal WidgetImpl() : this( NDalicManualPINVOKE.WidgetImpl_New(), true )
+        {
+            SwigDirectorConnect();
+        }
+
+        internal WidgetImpl(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicManualPINVOKE.WidgetImpl_SWIGUpcast(cPtr), cMemoryOwn)
+        {
+            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+        }
+
+        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WidgetImpl obj)
+        {
+            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                //Called by User
+                //Release your own managed resources here.
+                //You should release all of your own disposable objects here.
+            }
+
+            //Release your own unmanaged resources here.
+            //You should not access any managed member here except static instance.
+            //because the execution order of Finalizes is non-deterministic.
+
+            if (swigCPtr.Handle != global::System.IntPtr.Zero)
+            {
+                if (swigCMemOwn)
+                {
+                    swigCMemOwn = false;
+                    throw new global::System.MethodAccessException("C++ destructor does not have public access");
+                }
+                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+            }
+
+            base.Dispose(type);
+        }
+
+        public class WIdgetInstanceOnCreateArgs : EventArgs
+        {
+            private string _contentInfo;
+            private Window _window;
+
+            public string ContentInfo
+            {
+                get
+                {
+                    return _contentInfo;
+                }
+                set
+                {
+                    _contentInfo = value;
+                }
+            }
+
+            public Window Window
+            {
+                get
+                {
+                    return _window;
+                }
+                set
+                {
+                    _window = value;
+                }
+            }
+        }
+
+        private EventHandler<WIdgetInstanceOnCreateArgs> _widgetInstanceOnCreateEventHandler;
+        public event EventHandler<WIdgetInstanceOnCreateArgs> WidgetInstanceCreated
+        {
+            add
+            {
+                _widgetInstanceOnCreateEventHandler += value;
+            }
+            remove
+            {
+                _widgetInstanceOnCreateEventHandler -= value;
+            }
+        }
+
+        public class WIdgetInstanceOnDestroyArgs : EventArgs
+        {
+            private string _contentInfo;
+            private Widget.TerminationType _terminateType;
+
+            public string ContentInfo
+            {
+                get
+                {
+                    return _contentInfo;
+                }
+                set
+                {
+                    _contentInfo = value;
+                }
+            }
+
+            public Widget.TerminationType TerminateType
+            {
+                get
+                {
+                    return _terminateType;
+                }
+                set
+                {
+                    _terminateType = value;
+                }
+            }
+        }
+
+        private EventHandler<WIdgetInstanceOnDestroyArgs> _widgetInstanceOnDestroyEventHandler;
+        public event EventHandler<WIdgetInstanceOnDestroyArgs> WidgetInstanceDestroyed
+        {
+            add
+            {
+                _widgetInstanceOnDestroyEventHandler += value;
+            }
+            remove
+            {
+                _widgetInstanceOnDestroyEventHandler -= value;
+            }
+        }
+
+        public class WidgetInstanceOnResizeArgs : EventArgs
+        {
+            private Window _window;
+
+            public Window Window
+            {
+                get
+                {
+                    return _window;
+                }
+                set
+                {
+                    _window = value;
+                }
+            }
+        }
+
+        private EventHandler<WidgetInstanceOnResizeArgs> _widgetInstanceOnResizeEventHandler;
+        public event EventHandler<WidgetInstanceOnResizeArgs> WidgetInstanceResized
+        {
+            add
+            {
+                _widgetInstanceOnResizeEventHandler += value;
+            }
+            remove
+            {
+                _widgetInstanceOnResizeEventHandler -= value;
+            }
+        }
+
+        private EventHandler _widgetInstanceOnPauseEventHandler;
+        public event EventHandler WidgetInstancePaused
+        {
+            add
+            {
+                _widgetInstanceOnPauseEventHandler += value;
+            }
+            remove
+            {
+                _widgetInstanceOnPauseEventHandler -= value;
+            }
+        }
+
+        private EventHandler _widgetInstanceOnResumeEventHandler;
+        public event EventHandler WidgetInstanceResumed
+        {
+            add
+            {
+                _widgetInstanceOnResumeEventHandler += value;
+            }
+            remove
+            {
+                _widgetInstanceOnResumeEventHandler -= value;
+            }
+        }
+
+        public class WidgetInstanceOnUpdateArgs : EventArgs
+        {
+            private string _contentInfo;
+            private int _force;
+
+            public string ContentInfo
+            {
+                get
+                {
+                    return _contentInfo;
+                }
+                set
+                {
+                    _contentInfo = value;
+                }
+            }
+
+            public int Force
+            {
+                get
+                {
+                    return _force;
+                }
+                set
+                {
+                    _force = value;
+                }
+            }
+        }
+
+        private EventHandler<WidgetInstanceOnUpdateArgs> _widgetInstanceOnUpdateEventHandler;
+        public event EventHandler<WidgetInstanceOnUpdateArgs> WidgetInstanceUpdated
+        {
+            add
+            {
+                _widgetInstanceOnUpdateEventHandler += value;
+            }
+            remove
+            {
+                _widgetInstanceOnUpdateEventHandler -= value;
+            }
+        }
+
+        public virtual void OnCreate(string contentInfo, Window window)
+        {
+            WIdgetInstanceOnCreateArgs args = new WIdgetInstanceOnCreateArgs();
+            args.ContentInfo = contentInfo;
+            args.Window = window;
+            _widgetInstanceOnCreateEventHandler?.Invoke(this, args);
+        }
+
+        public virtual void OnTerminate(string contentInfo, Widget.TerminationType type)
+        {
+            WIdgetInstanceOnDestroyArgs args = new WIdgetInstanceOnDestroyArgs();
+            args.ContentInfo = contentInfo;
+            args.TerminateType = type;
+            _widgetInstanceOnDestroyEventHandler?.Invoke(this,args);
+        }
+
+        public virtual void OnPause()
+        {
+            _widgetInstanceOnPauseEventHandler?.Invoke(this, new EventArgs());
+        }
+
+        public virtual void OnResume()
+        {
+            _widgetInstanceOnResumeEventHandler?.Invoke(this, new EventArgs());
+        }
+
+        public virtual void OnResize(Window window)
+        {
+            WidgetInstanceOnResizeArgs args = new WidgetInstanceOnResizeArgs();
+            args.Window = window;
+            _widgetInstanceOnResizeEventHandler?.Invoke(this, args);
+        }
+
+        public virtual void OnUpdate(string contentInfo, int force)
+        {
+            WidgetInstanceOnUpdateArgs args = new WidgetInstanceOnUpdateArgs();
+            args.ContentInfo = contentInfo;
+            args.Force = force;
+            _widgetInstanceOnUpdateEventHandler?.Invoke(this, args);
+        }
+
+        internal virtual void SignalConnected(SlotObserver slotObserver, SWIGTYPE_p_Dali__CallbackBase callback)
+        {
+        }
+
+        internal virtual void SignalDisconnected(SlotObserver slotObserver, SWIGTYPE_p_Dali__CallbackBase callback)
+        {
+        }
+
+        public void SetContentInfo(string contentInfo)
+        {
+            NDalicManualPINVOKE.WidgetImpl_SetContentInfo(swigCPtr, contentInfo);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        internal void SetImpl(SWIGTYPE_p_Dali__Widget__Impl impl)
+        {
+            NDalicManualPINVOKE.WidgetImpl_SetImpl(swigCPtr, SWIGTYPE_p_Dali__Widget__Impl.getCPtr(impl));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        private void SwigDirectorConnect()
+        {
+            swigDelegate0 = new SwigDelegateWidgetImpl_0(SwigDirectorOnCreate);
+            swigDelegate1 = new SwigDelegateWidgetImpl_1(SwigDirectorOnTerminate);
+            swigDelegate2 = new SwigDelegateWidgetImpl_2(SwigDirectorOnPause);
+            swigDelegate3 = new SwigDelegateWidgetImpl_3(SwigDirectorOnResume);
+            swigDelegate4 = new SwigDelegateWidgetImpl_4(SwigDirectorOnResize);
+            swigDelegate5 = new SwigDelegateWidgetImpl_5(SwigDirectorOnUpdate);
+            swigDelegate6 = new SwigDelegateWidgetImpl_6(SwigDirectorSignalConnected);
+            swigDelegate7 = new SwigDelegateWidgetImpl_7(SwigDirectorSignalDisconnected);
+            NDalicManualPINVOKE.WidgetImpl_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2, swigDelegate3, swigDelegate4, swigDelegate5, swigDelegate6, swigDelegate7);
+        }
+
+        private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes)
+        {
+            global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
+            bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WidgetImpl));
+            return hasDerivedMethod;
+        }
+
+        private void SwigDirectorOnCreate(string contentInfo, global::System.IntPtr window)
+        {
+            OnCreate(contentInfo, new Window(window, true));
+        }
+
+        private void SwigDirectorOnTerminate(string contentInfo, int type)
+        {
+            OnTerminate(contentInfo, (Widget.TerminationType)type);
+        }
+
+        private void SwigDirectorOnPause()
+        {
+            OnPause();
+        }
+
+        private void SwigDirectorOnResume()
+        {
+            OnResume();
+        }
+
+        private void SwigDirectorOnResize(global::System.IntPtr window)
+        {
+            OnResize(new Window(window, true));
+        }
+
+        private void SwigDirectorOnUpdate(string contentInfo, int force)
+        {
+            OnUpdate(contentInfo, force);
+        }
+
+        private void SwigDirectorSignalConnected(global::System.IntPtr slotObserver, global::System.IntPtr callback)
+        {
+            SignalConnected((slotObserver == global::System.IntPtr.Zero) ? null : new SlotObserver(slotObserver, false), (callback == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_Dali__CallbackBase(callback, false));
+        }
+
+        private void SwigDirectorSignalDisconnected(global::System.IntPtr slotObserver, global::System.IntPtr callback)
+        {
+            SignalDisconnected((slotObserver == global::System.IntPtr.Zero) ? null : new SlotObserver(slotObserver, false), (callback == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_Dali__CallbackBase(callback, false));
+        }
+
+        public delegate void SwigDelegateWidgetImpl_0(string contentInfo, global::System.IntPtr window);
+        public delegate void SwigDelegateWidgetImpl_1(string contentInfo, int type);
+        public delegate void SwigDelegateWidgetImpl_2();
+        public delegate void SwigDelegateWidgetImpl_3();
+        public delegate void SwigDelegateWidgetImpl_4(global::System.IntPtr window);
+        public delegate void SwigDelegateWidgetImpl_5(string contentInfo, int force);
+        public delegate void SwigDelegateWidgetImpl_6(global::System.IntPtr slotObserver, global::System.IntPtr callback);
+        public delegate void SwigDelegateWidgetImpl_7(global::System.IntPtr slotObserver, global::System.IntPtr callback);
+
+        private SwigDelegateWidgetImpl_0 swigDelegate0;
+        private SwigDelegateWidgetImpl_1 swigDelegate1;
+        private SwigDelegateWidgetImpl_2 swigDelegate2;
+        private SwigDelegateWidgetImpl_3 swigDelegate3;
+        private SwigDelegateWidgetImpl_4 swigDelegate4;
+        private SwigDelegateWidgetImpl_5 swigDelegate5;
+        private SwigDelegateWidgetImpl_6 swigDelegate6;
+        private SwigDelegateWidgetImpl_7 swigDelegate7;
+
+        private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(string), typeof(Window) };
+        private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(string), typeof(Widget.TerminationType) };
+        private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] { };
+        private static global::System.Type[] swigMethodTypes3 = new global::System.Type[] { };
+        private static global::System.Type[] swigMethodTypes4 = new global::System.Type[] { typeof(Window) };
+        private static global::System.Type[] swigMethodTypes5 = new global::System.Type[] { typeof(string), typeof(int) };
+        private static global::System.Type[] swigMethodTypes6 = new global::System.Type[] { typeof(SlotObserver), typeof(SWIGTYPE_p_Dali__CallbackBase) };
+        private static global::System.Type[] swigMethodTypes7 = new global::System.Type[] { typeof(SlotObserver), typeof(SWIGTYPE_p_Dali__CallbackBase) };
+    }
+}
diff --git a/src/Tizen.NUI/src/internal/WidgetImplPtr.cs b/src/Tizen.NUI/src/internal/WidgetImplPtr.cs
new file mode 100755 (executable)
index 0000000..3f49a8a
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ *
+ */
+namespace Tizen.NUI
+{
+
+    internal class WidgetImplPtr
+    {
+        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+        internal WidgetImplPtr(global::System.IntPtr cPtr, bool futureUse)
+        {
+            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+        }
+
+        protected WidgetImplPtr()
+        {
+            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+        }
+
+        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WidgetImplPtr obj)
+        {
+            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+        }
+    }
+}
diff --git a/src/Tizen.NUI/src/internal/WidgetPauseSignalType.cs b/src/Tizen.NUI/src/internal/WidgetPauseSignalType.cs
deleted file mode 100755 (executable)
index df85d46..0000000
+++ /dev/null
@@ -1,144 +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.
- *
- */
-
-namespace Tizen.NUI
-{
-
-    internal class WidgetPauseSignalType : global::System.IDisposable
-    {
-        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
-        protected bool swigCMemOwn;
-
-        internal WidgetPauseSignalType(global::System.IntPtr cPtr, bool cMemoryOwn)
-        {
-            swigCMemOwn = cMemoryOwn;
-            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
-        }
-
-        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WidgetPauseSignalType obj)
-        {
-            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
-        }
-
-        //A Flag to check who called Dispose(). (By User or DisposeQueue)
-        private bool isDisposeQueued = false;
-        //A Flat to check if it is already disposed.
-        protected bool disposed = false;
-
-        ~WidgetPauseSignalType()
-        {
-            if (!isDisposeQueued)
-            {
-                isDisposeQueued = true;
-                DisposeQueue.Instance.Add(this);
-            }
-        }
-
-        public void Dispose()
-        {
-            //Throw excpetion if Dispose() is called in separate thread.
-            if (!Window.IsInstalled())
-            {
-                throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
-            }
-
-            if (isDisposeQueued)
-            {
-                Dispose(DisposeTypes.Implicit);
-            }
-            else
-            {
-                Dispose(DisposeTypes.Explicit);
-                System.GC.SuppressFinalize(this);
-            }
-        }
-
-        protected virtual void Dispose(DisposeTypes type)
-        {
-            if (disposed)
-            {
-                return;
-            }
-
-            if (type == DisposeTypes.Explicit)
-            {
-                //Called by User
-                //Release your own managed resources here.
-                //You should release all of your own disposable objects here.
-
-            }
-
-            //Release your own unmanaged resources here.
-            //You should not access any managed member here except static instance.
-            //because the execution order of Finalizes is non-deterministic.
-
-            if (swigCPtr.Handle != global::System.IntPtr.Zero)
-            {
-                swigCMemOwn = false;
-                NDalicManualPINVOKE.delete_WidgetPauseSignalType(swigCPtr);
-                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
-            }
-
-            disposed = true;
-        }
-
-        public bool Empty()
-        {
-            bool ret = NDalicManualPINVOKE.WidgetPauseSignalType_Empty(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public uint GetConnectionCount()
-        {
-            uint ret = NDalicManualPINVOKE.WidgetPauseSignalType_GetConnectionCount(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public void Connect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetPauseSignalType_Connect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Disconnect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetPauseSignalType_Disconnect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Emit(string arg)
-        {
-            NDalicManualPINVOKE.WidgetPauseSignalType_Emit(swigCPtr, arg);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-        public WidgetPauseSignalType() : this(NDalicManualPINVOKE.new_WidgetPauseSignalType(), true)
-        {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-    }
-
-}
diff --git a/src/Tizen.NUI/src/internal/WidgetResizeSignalType.cs b/src/Tizen.NUI/src/internal/WidgetResizeSignalType.cs
deleted file mode 100755 (executable)
index 5d29bcf..0000000
+++ /dev/null
@@ -1,143 +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.
- *
- */
-
-namespace Tizen.NUI
-{
-
-    internal class WidgetResizeSignalType : global::System.IDisposable
-    {
-        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
-        protected bool swigCMemOwn;
-
-        internal WidgetResizeSignalType(global::System.IntPtr cPtr, bool cMemoryOwn)
-        {
-            swigCMemOwn = cMemoryOwn;
-            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
-        }
-
-        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WidgetResizeSignalType obj)
-        {
-            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
-        }
-
-        //A Flag to check who called Dispose(). (By User or DisposeQueue)
-        private bool isDisposeQueued = false;
-        //A Flat to check if it is already disposed.
-        protected bool disposed = false;
-
-        ~WidgetResizeSignalType()
-        {
-            if (!isDisposeQueued)
-            {
-                isDisposeQueued = true;
-                DisposeQueue.Instance.Add(this);
-            }
-        }
-        public void Dispose()
-        {
-            //Throw excpetion if Dispose() is called in separate thread.
-            if (!Window.IsInstalled())
-            {
-                throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
-            }
-
-            if (isDisposeQueued)
-            {
-                Dispose(DisposeTypes.Implicit);
-            }
-            else
-            {
-                Dispose(DisposeTypes.Explicit);
-                System.GC.SuppressFinalize(this);
-            }
-        }
-
-        protected virtual void Dispose(DisposeTypes type)
-        {
-            if (disposed)
-            {
-                return;
-            }
-
-            if (type == DisposeTypes.Explicit)
-            {
-                //Called by User
-                //Release your own managed resources here.
-                //You should release all of your own disposable objects here.
-
-            }
-
-            //Release your own unmanaged resources here.
-            //You should not access any managed member here except static instance.
-            //because the execution order of Finalizes is non-deterministic.
-
-            if (swigCPtr.Handle != global::System.IntPtr.Zero)
-            {
-                swigCMemOwn = false;
-                NDalicManualPINVOKE.delete_WidgetResizeSignalType(swigCPtr);
-                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
-            }
-
-            disposed = true;
-        }
-
-        public bool Empty()
-        {
-            bool ret = NDalicManualPINVOKE.WidgetResizeSignalType_Empty(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public uint GetConnectionCount()
-        {
-            uint ret = NDalicManualPINVOKE.WidgetResizeSignalType_GetConnectionCount(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public void Connect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetResizeSignalType_Connect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Disconnect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetResizeSignalType_Disconnect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Emit(string arg1, Window arg2)
-        {
-            NDalicManualPINVOKE.WidgetResizeSignalType_Emit(swigCPtr, arg1, Window.getCPtr(arg2));
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-        public WidgetResizeSignalType() : this(NDalicManualPINVOKE.new_WidgetResizeSignalType(), true)
-        {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-    }
-
-}
diff --git a/src/Tizen.NUI/src/internal/WidgetResumeSignalType.cs b/src/Tizen.NUI/src/internal/WidgetResumeSignalType.cs
deleted file mode 100755 (executable)
index 18f320d..0000000
+++ /dev/null
@@ -1,144 +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.
- *
- */
-
-namespace Tizen.NUI
-{
-
-    internal class WidgetResumeSignalType : global::System.IDisposable
-    {
-        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
-        protected bool swigCMemOwn;
-
-        internal WidgetResumeSignalType(global::System.IntPtr cPtr, bool cMemoryOwn)
-        {
-            swigCMemOwn = cMemoryOwn;
-            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
-        }
-
-        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WidgetResumeSignalType obj)
-        {
-            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
-        }
-
-        //A Flag to check who called Dispose(). (By User or DisposeQueue)
-        private bool isDisposeQueued = false;
-        //A Flat to check if it is already disposed.
-        protected bool disposed = false;
-
-        ~WidgetResumeSignalType()
-        {
-            if (!isDisposeQueued)
-            {
-                isDisposeQueued = true;
-                DisposeQueue.Instance.Add(this);
-            }
-        }
-
-        public void Dispose()
-        {
-            //Throw excpetion if Dispose() is called in separate thread.
-            if (!Window.IsInstalled())
-            {
-                throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
-            }
-
-            if (isDisposeQueued)
-            {
-                Dispose(DisposeTypes.Implicit);
-            }
-            else
-            {
-                Dispose(DisposeTypes.Explicit);
-                System.GC.SuppressFinalize(this);
-            }
-        }
-
-        protected virtual void Dispose(DisposeTypes type)
-        {
-            if (disposed)
-            {
-                return;
-            }
-
-            if (type == DisposeTypes.Explicit)
-            {
-                //Called by User
-                //Release your own managed resources here.
-                //You should release all of your own disposable objects here.
-
-            }
-
-            //Release your own unmanaged resources here.
-            //You should not access any managed member here except static instance.
-            //because the execution order of Finalizes is non-deterministic.
-
-            if (swigCPtr.Handle != global::System.IntPtr.Zero)
-            {
-                swigCMemOwn = false;
-                NDalicManualPINVOKE.delete_WidgetResumeSignalType(swigCPtr);
-                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
-            }
-
-            disposed = true;
-        }
-
-        public bool Empty()
-        {
-            bool ret = NDalicManualPINVOKE.WidgetResumeSignalType_Empty(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public uint GetConnectionCount()
-        {
-            uint ret = NDalicManualPINVOKE.WidgetResumeSignalType_GetConnectionCount(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public void Connect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetResumeSignalType_Connect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Disconnect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetResumeSignalType_Disconnect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Emit(string arg)
-        {
-            NDalicManualPINVOKE.WidgetResumeSignalType_Emit(swigCPtr, arg);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-        public WidgetResumeSignalType() : this(NDalicManualPINVOKE.new_WidgetResumeSignalType(), true)
-        {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-    }
-
-}
diff --git a/src/Tizen.NUI/src/internal/WidgetTerminateSignalType.cs b/src/Tizen.NUI/src/internal/WidgetTerminateSignalType.cs
deleted file mode 100755 (executable)
index feda42c..0000000
+++ /dev/null
@@ -1,143 +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.
- *
- */
-namespace Tizen.NUI
-{
-
-    internal class WidgetTerminateSignalType : global::System.IDisposable
-    {
-        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
-        protected bool swigCMemOwn;
-
-        internal WidgetTerminateSignalType(global::System.IntPtr cPtr, bool cMemoryOwn)
-        {
-            swigCMemOwn = cMemoryOwn;
-            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
-        }
-
-        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WidgetTerminateSignalType obj)
-        {
-            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
-        }
-
-        //A Flag to check who called Dispose(). (By User or DisposeQueue)
-        private bool isDisposeQueued = false;
-        //A Flat to check if it is already disposed.
-        protected bool disposed = false;
-
-        ~WidgetTerminateSignalType()
-        {
-            if (!isDisposeQueued)
-            {
-                isDisposeQueued = true;
-                DisposeQueue.Instance.Add(this);
-            }
-        }
-
-        public void Dispose()
-        {
-            //Throw excpetion if Dispose() is called in separate thread.
-            if (!Window.IsInstalled())
-            {
-                throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
-            }
-
-            if (isDisposeQueued)
-            {
-                Dispose(DisposeTypes.Implicit);
-            }
-            else
-            {
-                Dispose(DisposeTypes.Explicit);
-                System.GC.SuppressFinalize(this);
-            }
-        }
-
-        protected virtual void Dispose(DisposeTypes type)
-        {
-            if (disposed)
-            {
-                return;
-            }
-
-            if (type == DisposeTypes.Explicit)
-            {
-                //Called by User
-                //Release your own managed resources here.
-                //You should release all of your own disposable objects here.
-
-            }
-
-            //Release your own unmanaged resources here.
-            //You should not access any managed member here except static instance.
-            //because the execution order of Finalizes is non-deterministic.
-
-            if (swigCPtr.Handle != global::System.IntPtr.Zero)
-            {
-                swigCMemOwn = false;
-                NDalicManualPINVOKE.delete_WidgetTerminateSignalType(swigCPtr);
-                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
-            }
-
-            disposed = true;
-        }
-
-        public bool Empty()
-        {
-            bool ret = NDalicManualPINVOKE.WidgetTerminateSignalType_Empty(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public uint GetConnectionCount()
-        {
-            uint ret = NDalicManualPINVOKE.WidgetTerminateSignalType_GetConnectionCount(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public void Connect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetTerminateSignalType_Connect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Disconnect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetTerminateSignalType_Disconnect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Emit(string arg1, SWIGTYPE_p_bundle arg2, Widget.WidgetTerminateType arg3)
-        {
-            NDalicManualPINVOKE.WidgetTerminateSignalType_Emit(swigCPtr, arg1, SWIGTYPE_p_bundle.getCPtr(arg2), (int)arg3);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-        public WidgetTerminateSignalType() : this(NDalicManualPINVOKE.new_WidgetTerminateSignalType(), true)
-        {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-    }
-
-}
diff --git a/src/Tizen.NUI/src/internal/WidgetUpdateSignalType.cs b/src/Tizen.NUI/src/internal/WidgetUpdateSignalType.cs
deleted file mode 100755 (executable)
index 89fe674..0000000
+++ /dev/null
@@ -1,144 +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.
- *
- */
-
-namespace Tizen.NUI
-{
-
-    internal class WidgetUpdateSignalType : global::System.IDisposable
-    {
-        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
-        protected bool swigCMemOwn;
-
-        internal WidgetUpdateSignalType(global::System.IntPtr cPtr, bool cMemoryOwn)
-        {
-            swigCMemOwn = cMemoryOwn;
-            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
-        }
-
-        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WidgetUpdateSignalType obj)
-        {
-            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
-        }
-
-        //A Flag to check who called Dispose(). (By User or DisposeQueue)
-        private bool isDisposeQueued = false;
-        //A Flat to check if it is already disposed.
-        protected bool disposed = false;
-
-        ~WidgetUpdateSignalType()
-        {
-            if (!isDisposeQueued)
-            {
-                isDisposeQueued = true;
-                DisposeQueue.Instance.Add(this);
-            }
-        }
-
-        public void Dispose()
-        {
-            //Throw excpetion if Dispose() is called in separate thread.
-            if (!Window.IsInstalled())
-            {
-                throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
-            }
-
-            if (isDisposeQueued)
-            {
-                Dispose(DisposeTypes.Implicit);
-            }
-            else
-            {
-                Dispose(DisposeTypes.Explicit);
-                System.GC.SuppressFinalize(this);
-            }
-        }
-
-        protected virtual void Dispose(DisposeTypes type)
-        {
-            if (disposed)
-            {
-                return;
-            }
-
-            if (type == DisposeTypes.Explicit)
-            {
-                //Called by User
-                //Release your own managed resources here.
-                //You should release all of your own disposable objects here.
-
-            }
-
-            //Release your own unmanaged resources here.
-            //You should not access any managed member here except static instance.
-            //because the execution order of Finalizes is non-deterministic.
-
-            if (swigCPtr.Handle != global::System.IntPtr.Zero)
-            {
-                swigCMemOwn = false;
-                NDalicManualPINVOKE.delete_WidgetUpdateSignalType(swigCPtr);
-                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
-            }
-
-            disposed = true;
-        }
-
-        public bool Empty()
-        {
-            bool ret = NDalicManualPINVOKE.WidgetUpdateSignalType_Empty(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public uint GetConnectionCount()
-        {
-            uint ret = NDalicManualPINVOKE.WidgetUpdateSignalType_GetConnectionCount(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
-
-        public void Connect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetUpdateSignalType_Connect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Disconnect(System.Delegate func)
-        {
-            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
-            {
-                NDalicManualPINVOKE.WidgetUpdateSignalType_Disconnect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-        }
-
-        public void Emit(string arg1, SWIGTYPE_p_bundle arg2, int arg3)
-        {
-            NDalicManualPINVOKE.WidgetUpdateSignalType_Emit(swigCPtr, arg1, SWIGTYPE_p_bundle.getCPtr(arg2), arg3);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-        public WidgetUpdateSignalType() : this(NDalicManualPINVOKE.new_WidgetUpdateSignalType(), true)
-        {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-        }
-
-    }
-
-}
index f4ffc62..4611c05 100755 (executable)
@@ -40,15 +40,16 @@ namespace Tizen.NUI
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
 
             _registerMe = swigCMemOwn = cMemoryOwn;
-
             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
 
             // using copy constructor to create another native handle so Registry.Unregister works fine.
             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, NDalicPINVOKE.new_BaseHandle__SWIG_2(swigCPtr));
+
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
 
             if (_registerMe)
             {
+
                 // Register this instance of BaseHandle in the registry.
                 Registry.Register(this);
             }
index ce61032..70c52fd 100755 (executable)
  * limitations under the License.
  *
  */
-
-using System;
-using System.ComponentModel;
 using Tizen.Applications;
 using Tizen.Applications.CoreBackend;
-using Tizen.NUI;
+using System.Collections.Generic;
 
 namespace Tizen.NUI
 {
@@ -28,32 +25,34 @@ namespace Tizen.NUI
     /// Represents an application that have UI screen. The NUIWidgetApplication class has a default stage.
     /// </summary>
     /// <since_tizen> 4 </since_tizen>
-    [Obsolete("Please do not use! This will be deprecated!")]
-    [EditorBrowsable(EditorBrowsableState.Never)]
     public class NUIWidgetApplication : CoreApplication
     {
-
         /// <summary>
         /// The default constructor.
         /// </summary>
-        /// <since_tizen> 4 </since_tizen>
-        public NUIWidgetApplication() : base(new NUIWidgetCoreBackend())
+        /// <remarks>Widget ID will be replaced as the application ID.</remarks>
+        /// <param name="widgetType">Derived widget class type.</param>
+        public NUIWidgetApplication( System.Type widgetType ) : base(new NUIWidgetCoreBackend())
         {
-            Tizen.Log.Fatal("NUI", "### NUIWidgetApplication called");
+            NUIWidgetCoreBackend core = Backend as NUIWidgetCoreBackend;
+            core?.RegisterWidgetInfo(new Dictionary<System.Type, string> { { widgetType, ApplicationInfo.ApplicationId } });
         }
 
         /// <summary>
-        /// The constructor with stylesheet.
+        /// The default constructor with stylesheet.
         /// </summary>
+        /// <remarks>Widget ID will be replaced as the application ID.</remarks>
+        /// <param name="widgetType">Derived widget class type.</param>
         /// <param name="styleSheet">The styleSheet url.</param>
         /// <since_tizen> 4 </since_tizen>
-        public NUIWidgetApplication(string styleSheet) : base(new NUIWidgetCoreBackend(styleSheet))
+        public NUIWidgetApplication(System.Type widgetType, string styleSheet) : base(new NUIWidgetCoreBackend(styleSheet))
         {
-            Tizen.Log.Fatal("NUI", "### NUIWidgetApplication(string) called");
+            NUIWidgetCoreBackend core = Backend as NUIWidgetCoreBackend;
+            core?.RegisterWidgetInfo(new Dictionary<System.Type, string> { { widgetType, ApplicationInfo.ApplicationId } });
         }
 
         /// <summary>
-        /// Overrides this method if want to handle behavior.
+        /// Overrides this method if want to handle OnLocaleChanged behavior.
         /// </summary>
         /// <since_tizen> 4 </since_tizen>
         protected override void OnLocaleChanged(LocaleChangedEventArgs e)
@@ -63,7 +62,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Overrides this method if want to handle behavior.
+        /// Overrides this method if want to handle OnLowBattery behavior.
         /// </summary>
         /// <since_tizen> 4 </since_tizen>
         protected override void OnLowBattery(LowBatteryEventArgs e)
@@ -73,7 +72,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Overrides this method if want to handle behavior.
+        /// Overrides this method if want to handle OnLowMemory behavior.
         /// </summary>
         /// <since_tizen> 4 </since_tizen>
         protected override void OnLowMemory(LowMemoryEventArgs e)
@@ -83,7 +82,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Overrides this method if want to handle behavior.
+        /// Overrides this method if want to handle OnRegionFormatChanged behavior.
         /// </summary>
         /// <since_tizen> 4 </since_tizen>
         protected override void OnRegionFormatChanged(RegionFormatChangedEventArgs e)
@@ -93,7 +92,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Overrides this method if want to handle behavior.
+        /// Overrides this method if want to handle OnTerminate behavior.
         /// </summary>
         /// <since_tizen> 4 </since_tizen>
         protected override void OnTerminate()
@@ -103,7 +102,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Overrides this method if want to handle behavior.
+        /// Overrides this method if want to handle OnPreCreate behavior.
         /// </summary>
         /// <since_tizen> 4 </since_tizen>
         protected virtual void OnPreCreate()
@@ -112,7 +111,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Overrides this method if want to handle behavior.
+        /// Overrides this method if want to handle OnCreate behavior.
         /// </summary>
         /// <since_tizen> 4 </since_tizen>
         protected override void OnCreate()
index 4752cb7..cd4fc57 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * Copyright(c) 2017 Samsung Electronics Co., Ltd.
- *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ *Z:\Desktop\shared\tizenfx\src\Tizen.NUI\src\public\BaseComponents\CustomView.cs
  * 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
  * limitations under the License.
  *
  */
+
 using System;
-using System.ComponentModel;
-using System.Runtime.InteropServices;
 
 namespace Tizen.NUI
 {
     /// <summary>
-    /// Widget object should be created by WidgetApplication.
+    /// Widget provides some common functionality required by all custom widget.
     /// </summary>
-    /// This is an experimental feature. We do recommend not to use it.
     /// <since_tizen> 4 </since_tizen>
-    [Obsolete("Please do not use! This will be deprecated!")]
-    [EditorBrowsable(EditorBrowsableState.Never)]
     public class Widget : BaseHandle
     {
         private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+        internal WidgetImpl widgetImpl;
 
-        internal Widget(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicManualPINVOKE.Widget_SWIGUpcast(cPtr), cMemoryOwn)
+        internal Widget(WidgetImpl widgetImpl, bool swigCMemOwn) : this(NDalicManualPINVOKE.Widget_New__SWIG_1(WidgetImpl.getCPtr(widgetImpl)), swigCMemOwn)
         {
-            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
-        }
+            this.widgetImpl = widgetImpl;
+            widgetImpl.WidgetInstanceCreated += OnWidgetInstanceCreated;
+            widgetImpl.WidgetInstanceDestroyed += OnWidgetInstanceDestroyed;
+            widgetImpl.WidgetInstancePaused += OnWidgetInstancePaused;
+            widgetImpl.WidgetInstanceResumed += OnWidgetInstanceResumed;
+            widgetImpl.WidgetInstanceResized += OnWidgetInstanceResized;
+            widgetImpl.WidgetInstanceUpdated += OnWidgetInstanceUpdated;
 
-        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Widget obj)
-        {
-            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+            WidgetApplication.Instance?.AddWidgetInstance(this);
         }
 
-        /// <summary>
-        /// To make Widget instance be disposed.
-        /// </summary>
-        /// <since_tizen> 4 </since_tizen>
-        protected override void Dispose(DisposeTypes type)
+        internal Widget(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicManualPINVOKE.Widget_SWIGUpcast(cPtr), cMemoryOwn)
         {
-            if(disposed)
-            {
-                return;
-            }
-
-            if(type == DisposeTypes.Explicit)
-            {
-                //Called by User
-                //Release your own managed resources here.
-                //You should release all of your own disposable objects here.
-            }
-
-            //Release your own unmanaged resources here.
-            //You should not access any managed member here except static instance.
-            //because the execution order of Finalizes is non-deterministic.
-            if (_createCallback != null)
-            {
-                this.CreateSignal().Disconnect(_createCallback);
-            }
-
-            if (_pauseCallback != null)
-            {
-                this.PauseSignal().Disconnect(_pauseCallback);
-            }
-
-            if (_resizeCallback != null)
-            {
-                this.ResizeSignal().Disconnect(_resizeCallback);
-            }
-
-            if (_resumeCallback != null)
-            {
-                this.ResumeSignal().Disconnect(_resumeCallback);
-            }
-
-            if (_terminateCallback != null)
-            {
-                this.TerminateSignal().Disconnect(_terminateCallback);
-            }
-
-            if (_updateCallback != null)
-            {
-                this.UpdateSignal().Disconnect(_updateCallback);
-            }
-
-            if (swigCPtr.Handle != global::System.IntPtr.Zero)
-            {
-                if (swigCMemOwn)
-                {
-                    swigCMemOwn = false;
-                    NDalicManualPINVOKE.delete_Widget(swigCPtr);
-                }
-                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
-            }
-
-            base.Dispose(type);
+            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
         }
 
-        /// <summary>
-        /// This is the constructor for Widget.
-        /// </summary>
-        /// <param name="id">for widget instance</param>
-        /// <since_tizen> 4 </since_tizen>
-        public Widget(string id) : this(NDalicManualPINVOKE.Widget_New(id), true)
+        private void OnWidgetInstanceCreated(object sender, WidgetImpl.WIdgetInstanceOnCreateArgs e)
         {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            OnCreate(e.ContentInfo, e.Window);
         }
 
-        internal Widget(Widget widget) : this(NDalicManualPINVOKE.new_Widget__SWIG_1(Widget.getCPtr(widget)), true)
+        private void OnWidgetInstanceDestroyed(object sender, WidgetImpl.WIdgetInstanceOnDestroyArgs e)
         {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            OnTerminate(e.ContentInfo, e.TerminateType);
         }
 
-        internal Widget Assign(Widget widget)
+        private void OnWidgetInstancePaused(object sender, EventArgs e)
         {
-            Widget ret = new Widget(NDalicManualPINVOKE.Widget_Assign(swigCPtr, Widget.getCPtr(widget)), false);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
+            OnPause();
         }
 
-        /// <summary>
-        /// Event arguments that passed via KeyEvent signal.
-        /// </summary>
-        /// <since_tizen> 4 </since_tizen>
-        public class CreateEventArgs : EventArgs
+        private void OnWidgetInstanceResumed(object sender, EventArgs e)
         {
-            /// <summary>
-            /// widget id.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            public string ID
-            {
-                get;
-                set;
-            }
-
-            /// <summary>
-            /// a bundle.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            public SWIGTYPE_p_bundle Bundle
-            {
-                get;
-                set;
-            }
-
-            /// <summary>
-            /// window.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            public Window Window
-            {
-                get;
-                set;
-            }
+            OnResume();
         }
 
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void CreateCallbackType(string id, IntPtr bundle, IntPtr window);
-        private CreateCallbackType _createCallback;
-        private EventHandler<CreateEventArgs> _createEventHandler;
-
-        /// <summary>
-        /// Create event.
-        /// </summary>
-        /// <since_tizen> 4 </since_tizen>
-        public event EventHandler<CreateEventArgs> Create
+        private void OnWidgetInstanceResized(object sender, WidgetImpl.WidgetInstanceOnResizeArgs e)
         {
-            add
-            {
-                if (_createEventHandler == null)
-                {
-                    _createCallback = OnCreate;
-                    CreateSignal().Connect(_createCallback);
-                }
-
-                _createEventHandler += value;
-            }
-
-            remove
-            {
-                _createEventHandler -= value;
-
-                if (_createEventHandler == null && CreateSignal().Empty() == false)
-                {
-                   CreateSignal().Disconnect(_createCallback);
-                }
-            }
+            OnResize(e.Window);
         }
 
-        private void OnCreate(string id, IntPtr bundle, IntPtr window)
+        private void OnWidgetInstanceUpdated(object sender, WidgetImpl.WidgetInstanceOnUpdateArgs e)
         {
-            CreateEventArgs e = new CreateEventArgs();
-
-            e.ID = id;
-
-            if (bundle != null)
-            {
-                e.Bundle = new SWIGTYPE_p_bundle(bundle, false);
-            }
-            if (window != null)
-            {
-                e.Window = new Window(window, false);
-            }
-
-            _createEventHandler?.Invoke(this, e);
+            OnUpdate(e.ContentInfo, e.Force);
         }
 
-        internal WidgetCreateSignalType CreateSignal()
+        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Widget obj)
         {
-            WidgetCreateSignalType ret = new WidgetCreateSignalType(NDalicManualPINVOKE.Widget_CreateSignal(swigCPtr), false);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
+            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
         }
 
         /// <summary>
-        /// Event arguments that passed via terminate event signal.
+        /// Dispose.
         /// </summary>
+        /// <param name="type">The dispose type</param>
         /// <since_tizen> 4 </since_tizen>
-        public class TerminateEventArgs : EventArgs
+        protected override void Dispose(DisposeTypes type)
         {
-            /// <summary>
-            /// widget id.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            public string ID
-            {
-                get;
-                set;
-            }
-
-            /// <summary>
-            /// a bundle.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            public SWIGTYPE_p_bundle Bundle
-            {
-                get;
-                set;
-            }
-
-            /// <summary>
-            /// widget terminate type.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            public WidgetTerminateType WidgetTerminateType
+            if(disposed)
             {
-                get;
-                set;
+                return;
             }
-        }
-
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void TerminateCallbackType(string id, IntPtr bundle, WidgetTerminateType widgetTerminateType);
-        private TerminateCallbackType _terminateCallback;
-        private EventHandler<TerminateEventArgs> _terminateEventHandler;
 
-        /// <summary>
-        /// Terminate event.
-        /// </summary>
-        /// <since_tizen> 4 </since_tizen>
-        public event EventHandler<TerminateEventArgs> Terminate
-        {
-            add
+            if(type == DisposeTypes.Explicit)
             {
-                if (_terminateEventHandler == null)
-                {
-                    _terminateCallback = OnTerminate;
-                    TerminateSignal().Connect(_terminateCallback);
-                }
-
-                _terminateEventHandler += value;
+                //Called by User
+                //Release your own managed resources here.
+                //You should release all of your own disposable objects here.
             }
 
-            remove
+            if (swigCPtr.Handle != global::System.IntPtr.Zero)
             {
-                _terminateEventHandler -= value;
-
-                if (_terminateEventHandler == null && TerminateSignal().Empty() == false)
+                if (swigCMemOwn)
                 {
-                   TerminateSignal().Disconnect(_terminateCallback);
+                    swigCMemOwn = false;
+                    NDalicManualPINVOKE.delete_Widget(swigCPtr);
                 }
+                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
             }
-        }
-
-        private void OnTerminate(string id, IntPtr bundle, WidgetTerminateType widgetTerminateType)
-        {
-            TerminateEventArgs e = new TerminateEventArgs();
-            e.ID = id;
-
-            if (bundle != null)
-            {
-                e.Bundle = new SWIGTYPE_p_bundle(bundle, false);
-            }
-
-            e.WidgetTerminateType = widgetTerminateType;
-            _terminateEventHandler?.Invoke(this, e);
-        }
 
-        internal WidgetTerminateSignalType TerminateSignal()
-        {
-            WidgetTerminateSignalType ret = new WidgetTerminateSignalType(NDalicManualPINVOKE.Widget_TerminateSignal(swigCPtr), false);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
+            base.Dispose(type);
         }
-
         /// <summary>
-        /// Event arguments that passed via pause event signal.
+        /// Enumeration for termination type of widget
         /// </summary>
         /// <since_tizen> 4 </since_tizen>
-        public class PauseEventArgs : EventArgs
+        public enum TerminationType
         {
             /// <summary>
-            /// widget id.
+            /// User deleted this widget from the viewer
             /// </summary>
-        /// <since_tizen> 4 </since_tizen>
-            public string ID
-            {
-                get;
-                set;
-            }
+            /// <since_tizen> 4 </since_tizen>
+            Permanent,
+            /// <summary>
+            /// Widget is deleted because of other reasons (e.g. widget process is terminated temporarily by system)
+            /// </summary>
+            /// <since_tizen> 4 </since_tizen>
+            Temporary
         }
 
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void PauseCallbackType(string id);
-        private PauseCallbackType _pauseCallback;
-        private EventHandler<PauseEventArgs> _pauseEventHandler;
-
         /// <summary>
-        /// Pause event.
+        /// Creates a Widget handle.
         /// </summary>
         /// <since_tizen> 4 </since_tizen>
-        public event EventHandler<PauseEventArgs> Pause
-        {
-            add
-            {
-                if (_pauseEventHandler == null)
-                {
-                    _pauseCallback = OnPause;
-                    PauseSignal().Connect(_pauseCallback);
-                }
-
-                _pauseEventHandler += value;
-            }
-
-            remove
-            {
-                _pauseEventHandler -= value;
+        public Widget () : this (new WidgetImpl(), true) {
+                       if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+               }
 
-                if (_pauseEventHandler == null && PauseSignal().Empty() == false)
-                {
-                   PauseSignal().Disconnect(_pauseCallback);
-                }
-            }
-        }
-
-        private void OnPause(string id)
-        {
-            PauseEventArgs e = new PauseEventArgs();
-            e.ID = id;
-
-            _pauseEventHandler?.Invoke(this, e);
-        }
-
-        internal WidgetPauseSignalType PauseSignal()
+        internal Widget Assign(Widget widget)
         {
-            WidgetPauseSignalType ret = new WidgetPauseSignalType(NDalicManualPINVOKE.Widget_PauseSignal(swigCPtr), false);
+            Widget ret = new Widget(NDalicManualPINVOKE.Widget_Assign(swigCPtr, Widget.getCPtr(widget)), false);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
         }
 
         /// <summary>
-        /// Event arguments that passed via pause event signal.
+        /// The user should override this function to determine when they create widget.
         /// </summary>
+        /// <param name="contentInfo">Information from WidgetView for creating. It contains previous status of widget which is sent by SetContentInfo before.</param>
+        /// <param name="window">Window for widget</param>
         /// <since_tizen> 4 </since_tizen>
-        public class ResumeEventArgs : EventArgs
+        protected virtual void OnCreate(string contentInfo, Window window)
         {
-            /// <summary>
-            /// widget id.
-            /// </summary>
-        /// <since_tizen> 4 </since_tizen>
-            public string ID
-            {
-                get;
-                set;
-            }
         }
 
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void ResumeCallbackType(string id);
-        private ResumeCallbackType _resumeCallback;
-        private EventHandler<ResumeEventArgs> _resumeEventHandler;
-
         /// <summary>
-        /// Resume event.
+        /// The user should override this function to determine when they terminate widget.
         /// </summary>
+        /// <param name="contentInfo">Data from WidgetView for deleting</param>
+        /// <param name="type">Termination type. When user delete widget view, termination type is PERMANENT.</param>
         /// <since_tizen> 4 </since_tizen>
-        public event EventHandler<ResumeEventArgs> Resume
+        protected virtual void OnTerminate(string contentInfo, Widget.TerminationType type)
         {
-            add
-            {
-                if (_resumeEventHandler == null)
-                {
-                    _resumeCallback = OnResume;
-                    ResumeSignal().Connect(_resumeCallback);
-                }
-
-                _resumeEventHandler += value;
-            }
-
-            remove
-            {
-                _resumeEventHandler -= value;
-
-                if (_resumeEventHandler == null && ResumeSignal().Empty() == false)
-                {
-                   ResumeSignal().Disconnect(_resumeCallback);
-                }
-            }
-        }
-
-        private void OnResume(string id)
-        {
-            ResumeEventArgs e = new ResumeEventArgs();
-            e.ID = id;
-
-            _resumeEventHandler?.Invoke(this, e);
-        }
-
-        internal WidgetResumeSignalType ResumeSignal()
-        {
-            WidgetResumeSignalType ret = new WidgetResumeSignalType(NDalicManualPINVOKE.Widget_ResumeSignal(swigCPtr), false);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
         }
 
         /// <summary>
-        /// Event arguments that passed via resize signal.
+        /// The user should override this function to determine when they pause widget.
         /// </summary>
         /// <since_tizen> 4 </since_tizen>
-        public class ResizeEventArgs : EventArgs
+        protected virtual void OnPause()
         {
-            /// <summary>
-            /// widget id.
-            /// </summary>
-        /// <since_tizen> 4 </since_tizen>
-            public string ID
-            {
-                get;
-                set;
-            }
-
-            /// <summary>
-            /// window.
-            /// </summary>
-        /// <since_tizen> 4 </since_tizen>
-            public Window Window
-            {
-                get;
-                set;
-            }
         }
 
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void ResizeCallbackType(string id, IntPtr window);
-        private ResizeCallbackType _resizeCallback;
-        private EventHandler<ResizeEventArgs> _resizeEventHandler;
-
         /// <summary>
-        /// Resize event.
+        /// The user should override this function to determine when they resume widget.
         /// </summary>
         /// <since_tizen> 4 </since_tizen>
-        public event EventHandler<ResizeEventArgs> Resize
-        {
-            add
-            {
-                if (_resizeEventHandler == null)
-                {
-                    _resizeCallback = OnResize;
-                    ResizeSignal().Connect(_resizeCallback);
-                }
-
-                _resizeEventHandler += value;
-            }
-
-            remove
-            {
-                _resizeEventHandler -= value;
-
-                if (_resizeEventHandler == null && ResizeSignal().Empty() == false)
-                {
-                   ResizeSignal().Disconnect(_resizeCallback);
-                }
-            }
-        }
-
-        private void OnResize(string id, IntPtr window)
-        {
-            ResizeEventArgs e = new ResizeEventArgs();
-            e.ID = id;
-            if (window != null)
-            {
-                e.Window = new Window(window, false);
-            }
-
-            _resizeEventHandler?.Invoke(this, e);
-        }
-
-        internal WidgetResizeSignalType ResizeSignal()
+        protected virtual void OnResume()
         {
-            WidgetResizeSignalType ret = new WidgetResizeSignalType(NDalicManualPINVOKE.Widget_ResizeSignal(swigCPtr), false);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
         }
 
         /// <summary>
-        /// Event arguments that passed via update event signal.
+        /// The user should override this function to determine when they resize widget.
         /// </summary>
+        /// <param name="window">Window for widget</param>
         /// <since_tizen> 4 </since_tizen>
-        public class UpdateEventArgs : EventArgs
+        protected virtual void OnResize(Window window)
         {
-            /// <summary>
-            /// widget data.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            public string ID
-            {
-                get;
-                set;
-            }
-
-            /// <summary>
-            /// A bundle.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            public SWIGTYPE_p_bundle Bundle
-            {
-                get;
-                set;
-            }
-
-            /// <summary>
-            /// It means several steps.
-            /// </summary>
-            /// <remark>
-            /// 0 -> no force
-            /// 1 -> force but do something
-            /// 2 -> force
-            /// </remark>
-            /// <since_tizen> 4 </since_tizen>
-            public int Force
-            {
-                get;
-                set;
-            }
         }
 
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void UpdateCallbackType(string id, IntPtr bundle, int force);
-        private UpdateCallbackType _updateCallback;
-        private EventHandler<UpdateEventArgs> _updateEventHandler;
-
         /// <summary>
-        /// Update event.
+        /// The user should override this function to determine when they update widget.
         /// </summary>
+        /// <param name="contentInfo">Data from WidgetView for updating</param>
+        /// <param name="force">Although the widget is paused, if it is true, the widget can be updated</param>
         /// <since_tizen> 4 </since_tizen>
-        public event EventHandler<UpdateEventArgs> Update
+        protected virtual void OnUpdate(string contentInfo, int force)
         {
-            add
-            {
-                if (_updateEventHandler == null)
-                {
-                    _updateCallback = OnUpdate;
-                    UpdateSignal().Connect(_updateCallback);
-                }
-
-                _updateEventHandler += value;
-            }
-
-            remove
-            {
-                _updateEventHandler -= value;
-
-                if (_updateEventHandler == null && UpdateSignal().Empty() == false)
-                {
-                   UpdateSignal().Disconnect(_updateCallback);
-                }
-            }
-        }
-
-        private void OnUpdate(string id, IntPtr bundle, int force)
-        {
-            UpdateEventArgs e = new UpdateEventArgs();
-            e.ID = id;
-            if (bundle != null)
-            {
-                e.Bundle = new SWIGTYPE_p_bundle(bundle, false);
-            }
-            e.Force = force;
-
-            _updateEventHandler?.Invoke(this, e);
-        }
-
-        internal WidgetUpdateSignalType UpdateSignal()
-        {
-            WidgetUpdateSignalType ret = new WidgetUpdateSignalType(NDalicManualPINVOKE.Widget_UpdateSignal(swigCPtr), false);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
         }
 
         /// <summary>
-        /// Enumeration for terminate type of widget instance.
+        /// Set content info to WidgetView.
         /// </summary>
+        /// <param name="contentInfo">Content info is kind of context information which contains current status of widget.</param>
         /// <since_tizen> 4 </since_tizen>
-        public enum WidgetTerminateType
+        public void SetContentInfo(string contentInfo)
         {
-            /// <summary>
-            /// User deleted this widget from the viewer
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            Permanent,
-            /// <summary>
-            /// Widget is deleted because of other reasons (e.g. widget process is terminated temporarily by the system)
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            Temporary
+            widgetImpl.SetContentInfo(contentInfo);
         }
 
-        /// <summary>
-        /// Enumeration for lifecycle event type of widget instance.
-        /// </summary>
-        /// <since_tizen> 4 </since_tizen>
-        public enum WidgetLifecycleEventType
+        internal System.IntPtr GetIntPtr()
         {
-            /// <summary>
-            /// The widget is dead.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            AppDead = 0,
-            /// <summary>
-            /// The widget is dead.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            Create = 1,
-            /// <summary>
-            /// The widget is destroyed.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            Destroy = 2,
-            /// <summary>
-            /// The widget is paused.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            Pause = 3,
-            /// <summary>
-            /// The widget is resumed.
-            /// </summary>
-            /// <since_tizen> 4 </since_tizen>
-            Resume = 4
+            return swigCPtr.Handle;
         }
     }
 }