Added C# bindings for Window focus event and NPatchVisual property
[platform/core/uifw/dali-toolkit.git] / plugins / dali-swig / SWIG / adaptor / window.i
index 5870e36..ca70dc9 100755 (executable)
  *
  */
 
+%typemap(csimports) Dali::Window %{
+    using System;
+    using System.Runtime.InteropServices;
+%}
+
+
 %typemap(cscode) Dali::Window %{
+
+    public void SetAcceptFocus( bool accept )
+    {
+      NDalicPINVOKE.SetAcceptFocus(swigCPtr, accept);
+      if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+    }
+
+    public bool IsFocusAcceptable()
+    {
+      return NDalicPINVOKE.IsFocusAcceptable(swigCPtr);
+      if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+    }
+
     public void Show()
     {
       NDalicPINVOKE.Show(swigCPtr);
       NDalicPINVOKE.IsVisible(swigCPtr);
       if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
     }
+
+    public class WindowFocusChangedEventArgs : EventArgs
+    {
+        public bool FocusGained
+        {
+            get;
+            set;
+        }
+    }
+
+    private WindowFocusChangedEventCallbackType _windowFocusChangedEventCallback;
+    [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+    private delegate void WindowFocusChangedEventCallbackType(bool focusGained);
+    private event EventHandler<WindowFocusChangedEventArgs> _windowFocusChangedEventHandler;
+
+    public event EventHandler<WindowFocusChangedEventArgs> WindowFocusChanged
+    {
+        add
+        {
+            if (_windowFocusChangedEventHandler == null)
+            {
+                _windowFocusChangedEventCallback = OnWindowFocusedChanged;
+                WindowFocusChangedSignal().Connect(_windowFocusChangedEventCallback);
+            }
+
+            _windowFocusChangedEventHandler += value;
+        }
+        remove
+        {
+            _windowFocusChangedEventHandler -= value;
+
+            if (_windowFocusChangedEventHandler == null && _windowFocusChangedEventCallback != null)
+            {
+                WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback);
+            }
+        }
+    }
+
+    private void OnWindowFocusedChanged(bool focusGained)
+    {
+        WindowFocusChangedEventArgs e = new WindowFocusChangedEventArgs();
+
+        e.FocusGained = focusGained;
+
+        if (_windowFocusChangedEventHandler != null)
+        {
+            _windowFocusChangedEventHandler(this, e);
+        }
+    }
+
+    public WindowFocusSignalType WindowFocusChangedSignal() {
+      WindowFocusSignalType ret = new WindowFocusSignalType(NDalicPINVOKE.FocusChangedSignal(swigCPtr), false);
+      if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+      return ret;
+    }
+
 %}
+
+%ignore Dali::Window::IndicatorVisibilityChangedSignal();