d193dab996501f6fb4b968c3b5153c0b93acd8f7
[platform/core/uifw/dali-toolkit.git] / plugins / dali-sharp / sharp / internal / PinchGestureDetector.cs
1 /** Copyright (c) 2017 Samsung Electronics Co., Ltd.
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 *
15 */
16 // This File has been auto-generated by SWIG and then modified using DALi Ruby Scripts
17 //------------------------------------------------------------------------------
18 // <auto-generated />
19 //
20 // This file was automatically generated by SWIG (http://www.swig.org).
21 // Version 3.0.10
22 //
23 // Do not make changes to this file unless you know what you are doing--modify
24 // the SWIG interface file instead.
25 //------------------------------------------------------------------------------
26
27 namespace Dali {
28
29 using System;
30 using System.Runtime.InteropServices;
31
32
33 public class PinchGestureDetector : GestureDetector {
34   private global::System.Runtime.InteropServices.HandleRef swigCPtr;
35
36   internal PinchGestureDetector(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.PinchGestureDetector_SWIGUpcast(cPtr), cMemoryOwn) {
37     swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
38   }
39
40   internal static global::System.Runtime.InteropServices.HandleRef getCPtr(PinchGestureDetector obj) {
41     return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
42   }
43
44   ~PinchGestureDetector() {
45     DisposeQueue.Instance.Add(this);
46   }
47
48   public override void Dispose() {
49     if (!Stage.IsInstalled()) {
50       DisposeQueue.Instance.Add(this);
51       return;
52     }
53
54     lock(this) {
55       if (swigCPtr.Handle != global::System.IntPtr.Zero) {
56         if (swigCMemOwn) {
57           swigCMemOwn = false;
58           NDalicPINVOKE.delete_PinchGestureDetector(swigCPtr);
59         }
60         swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
61       }
62       global::System.GC.SuppressFinalize(this);
63       base.Dispose();
64     }
65   }
66
67
68
69 public class DetectedEventArgs : EventArgs
70 {
71    private View _view;
72    private PinchGesture _pinchGesture;
73
74    public View View
75    {
76       get
77       {
78          return _view;
79       }
80       set
81       {
82         _view = value;
83       }
84    }
85
86    public PinchGesture PinchGesture
87    {
88       get
89       {
90          return _pinchGesture;
91       }
92       set
93       {
94          _pinchGesture = value;
95       }
96    }
97 }
98
99   [UnmanagedFunctionPointer(CallingConvention.StdCall)]
100   private delegate void DetectedCallbackDelegate(IntPtr actor, IntPtr pinchGesture);
101   private DaliEventHandler<object,DetectedEventArgs> _pinchGestureEventHandler;
102   private DetectedCallbackDelegate _pinchGestureCallbackDelegate;
103
104
105   public event DaliEventHandler<object,DetectedEventArgs> Detected
106   {
107      add
108      {
109         lock(this)
110         {
111            // Restricted to only one listener
112            if (_pinchGestureEventHandler == null)
113            {
114               _pinchGestureEventHandler += value;
115
116               _pinchGestureCallbackDelegate = new DetectedCallbackDelegate(OnPinchGestureDetected);
117               this.DetectedSignal().Connect(_pinchGestureCallbackDelegate);
118            }
119         }
120      }
121
122      remove
123      {
124         lock(this)
125         {
126            if (_pinchGestureEventHandler != null)
127            {
128               this.DetectedSignal().Disconnect(_pinchGestureCallbackDelegate);
129            }
130
131            _pinchGestureEventHandler -= value;
132         }
133      }
134   }
135
136  private void OnPinchGestureDetected(IntPtr actor, IntPtr pinchGesture)
137   {
138    DetectedEventArgs e = new DetectedEventArgs();
139
140    // Populate all members of "e" (DetectedEventArgs) with real data
141    e.View = View.GetViewFromPtr(actor);
142    e.PinchGesture = Dali.PinchGesture.GetPinchGestureFromPtr(pinchGesture);
143
144    if (_pinchGestureEventHandler != null)
145    {
146       //here we send all data to user event handlers
147       _pinchGestureEventHandler(this, e);
148    }
149
150   }
151
152
153 public static PinchGestureDetector GetPinchGestureDetectorFromPtr(global::System.IntPtr cPtr) {
154     PinchGestureDetector ret = new PinchGestureDetector(cPtr, false);
155    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
156     return ret;
157   }
158
159
160   public PinchGestureDetector () : this (NDalicPINVOKE.PinchGestureDetector_New(), true) {
161       if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
162
163   }
164   public new static PinchGestureDetector DownCast(BaseHandle handle) {
165     PinchGestureDetector ret = new PinchGestureDetector(NDalicPINVOKE.PinchGestureDetector_DownCast(BaseHandle.getCPtr(handle)), true);
166     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
167     return ret;
168   }
169
170   public PinchGestureDetector(PinchGestureDetector handle) : this(NDalicPINVOKE.new_PinchGestureDetector__SWIG_1(PinchGestureDetector.getCPtr(handle)), true) {
171     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
172   }
173
174   public PinchGestureDetector Assign(PinchGestureDetector rhs) {
175     PinchGestureDetector ret = new PinchGestureDetector(NDalicPINVOKE.PinchGestureDetector_Assign(swigCPtr, PinchGestureDetector.getCPtr(rhs)), false);
176     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
177     return ret;
178   }
179
180   public PinchGestureDetectedSignal DetectedSignal() {
181     PinchGestureDetectedSignal ret = new PinchGestureDetectedSignal(NDalicPINVOKE.PinchGestureDetector_DetectedSignal(swigCPtr), false);
182     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
183     return ret;
184   }
185
186 }
187
188 }