X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=plugins%2Fdali-swig%2FSWIG%2Fadaptor%2Fwindow.i;h=ca70dc9a0f065c63862dbadceb53cea17ef3031c;hp=5870e3662f59c70cd3da8a553eacc28cdd02fc48;hb=13f7f10f99c5253c500ffd644a1ac4a9039d4a07;hpb=05316fdb6779dced99b135c06326ddaeea1fc2ee diff --git a/plugins/dali-swig/SWIG/adaptor/window.i b/plugins/dali-swig/SWIG/adaptor/window.i index 5870e36..ca70dc9 100755 --- a/plugins/dali-swig/SWIG/adaptor/window.i +++ b/plugins/dali-swig/SWIG/adaptor/window.i @@ -15,7 +15,26 @@ * */ +%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); @@ -33,4 +52,62 @@ 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 _windowFocusChangedEventHandler; + + public event EventHandler 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();