[dali_1.2.40] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / plugins / dali-swig / SWIG / adaptor / window.i
1 /*
2  * Copyright (c) 2017 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 %typemap(csimports) Dali::Window %{
19     using System;
20     using System.Runtime.InteropServices;
21 %}
22
23
24 %typemap(cscode) Dali::Window %{
25
26     public void SetAcceptFocus( bool accept )
27     {
28       NDalicPINVOKE.SetAcceptFocus(swigCPtr, accept);
29       if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
30     }
31
32     public bool IsFocusAcceptable()
33     {
34       return NDalicPINVOKE.IsFocusAcceptable(swigCPtr);
35       if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
36     }
37
38     public void Show()
39     {
40       NDalicPINVOKE.Show(swigCPtr);
41       if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
42     }
43
44     public void Hide()
45     {
46       NDalicPINVOKE.Hide(swigCPtr);
47       if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
48     }
49
50     public void IsVisible()
51     {
52       NDalicPINVOKE.IsVisible(swigCPtr);
53       if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
54     }
55
56     public class WindowFocusChangedEventArgs : EventArgs
57     {
58         public bool FocusGained
59         {
60             get;
61             set;
62         }
63     }
64
65     private WindowFocusChangedEventCallbackType _windowFocusChangedEventCallback;
66     [UnmanagedFunctionPointer(CallingConvention.StdCall)]
67     private delegate void WindowFocusChangedEventCallbackType(bool focusGained);
68     private event EventHandler<WindowFocusChangedEventArgs> _windowFocusChangedEventHandler;
69
70     public event EventHandler<WindowFocusChangedEventArgs> WindowFocusChanged
71     {
72         add
73         {
74             if (_windowFocusChangedEventHandler == null)
75             {
76                 _windowFocusChangedEventCallback = OnWindowFocusedChanged;
77                 WindowFocusChangedSignal().Connect(_windowFocusChangedEventCallback);
78             }
79
80             _windowFocusChangedEventHandler += value;
81         }
82         remove
83         {
84             _windowFocusChangedEventHandler -= value;
85
86             if (_windowFocusChangedEventHandler == null && _windowFocusChangedEventCallback != null)
87             {
88                 WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback);
89             }
90         }
91     }
92
93     private void OnWindowFocusedChanged(bool focusGained)
94     {
95         WindowFocusChangedEventArgs e = new WindowFocusChangedEventArgs();
96
97         e.FocusGained = focusGained;
98
99         if (_windowFocusChangedEventHandler != null)
100         {
101             _windowFocusChangedEventHandler(this, e);
102         }
103     }
104
105     public WindowFocusSignalType WindowFocusChangedSignal() {
106       WindowFocusSignalType ret = new WindowFocusSignalType(NDalicPINVOKE.FocusChangedSignal(swigCPtr), false);
107       if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
108       return ret;
109     }
110
111 %}
112
113 %ignore Dali::Window::IndicatorVisibilityChangedSignal();