[EditorBrowsable(EditorBrowsableState.Never)]
public class LongPressGestureDetector : GestureDetector
{
-
- private DaliEventHandler<object, DetectedEventArgs> _longPressGestureEventHandler;
- private DetectedCallbackDelegate _longPressGestureCallbackDelegate;
-
/// <summary>
/// Constructor.
/// </summary>
{
}
+ private DaliEventHandler<object, DetectedEventArgs> _detectedEventHandler;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void DetectedCallbackDelegate(IntPtr actor, IntPtr longPressGesture);
+ private delegate void DetectedCallbackType(IntPtr actor, IntPtr longPressGesture);
+ private DetectedCallbackType _detectedCallback;
/// <summary>
/// This signal is emitted when the specified long press is detected on the attached view.
{
add
{
- lock (this)
+ if (_detectedEventHandler == null)
{
- // Restricted to only one listener.
- if (_longPressGestureEventHandler == null)
- {
- _longPressGestureEventHandler += value;
-
- _longPressGestureCallbackDelegate = new DetectedCallbackDelegate(OnLongPressGestureDetected);
- this.DetectedSignal().Connect(_longPressGestureCallbackDelegate);
- }
+ _detectedCallback = OnLongPressGestureDetected;
+ DetectedSignal().Connect(_detectedCallback);
}
+
+ _detectedEventHandler += value;
}
remove
{
- lock (this)
- {
- if (_longPressGestureEventHandler != null)
- {
- this.DetectedSignal().Disconnect(_longPressGestureCallbackDelegate);
- }
+ _detectedEventHandler -= value;
- _longPressGestureEventHandler -= value;
+ if (_detectedEventHandler == null && DetectedSignal().Empty() == false)
+ {
+ DetectedSignal().Disconnect(_detectedCallback);
}
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
{
+ if (_detectedEventHandler == null && DetectedSignal().Empty() == false)
+ {
+ DetectedSignal().Disconnect(_detectedCallback);
+ }
Interop.LongPressGestureDetector.delete_LongPressGestureDetector(swigCPtr);
}
e.LongPressGesture = Tizen.NUI.LongPressGesture.GetLongPressGestureFromPtr(longPressGesture);
- if (_longPressGestureEventHandler != null)
+ if (_detectedEventHandler != null)
{
//Here we send all data to user event handlers.
- _longPressGestureEventHandler(this, e);
+ _detectedEventHandler(this, e);
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
public class PanGestureDetector : GestureDetector
{
-
- private DaliEventHandler<object, DetectedEventArgs> _panGestureEventHandler;
- private DetectedCallbackDelegate _panGestureCallbackDelegate;
-
/// <summary>
/// Creates an initialized PanGestureDetector.
/// </summary>
{
}
-
+ private DaliEventHandler<object, DetectedEventArgs> _detectedEventHandler;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void DetectedCallbackDelegate(IntPtr actor, IntPtr panGesture);
+ private delegate void DetectedCallbackType(IntPtr actor, IntPtr panGesture);
+ private DetectedCallbackType _detectedCallback;
/// <summary>
/// This signal is emitted when the specified pan is detected on the attached view.
{
add
{
- lock (this)
+ if (_detectedEventHandler == null)
{
- // Restricted to only one listener
- if (_panGestureEventHandler == null)
- {
- _panGestureEventHandler += value;
-
- _panGestureCallbackDelegate = new DetectedCallbackDelegate(OnPanGestureDetected);
- this.DetectedSignal().Connect(_panGestureCallbackDelegate);
- }
+ _detectedCallback = OnPanGestureDetected;
+ DetectedSignal().Connect(_detectedCallback);
}
+
+ _detectedEventHandler += value;
}
remove
{
- lock (this)
- {
- if (_panGestureEventHandler != null)
- {
- this.DetectedSignal().Disconnect(_panGestureCallbackDelegate);
- }
+ _detectedEventHandler -= value;
- _panGestureEventHandler -= value;
+ if (_detectedEventHandler == null && DetectedSignal().Empty() == false)
+ {
+ DetectedSignal().Disconnect(_detectedCallback);
}
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
{
+ if (_detectedCallback != null)
+ {
+ DetectedSignal().Disconnect(_detectedCallback);
+ }
+
Interop.PanGestureDetector.delete_PanGestureDetector(swigCPtr);
}
e.PanGesture = Tizen.NUI.PanGesture.GetPanGestureFromPtr(panGesture);
- if (_panGestureEventHandler != null)
+ if (_detectedEventHandler != null)
{
- //here we send all data to user event handlers
- _panGestureEventHandler(this, e);
+ _detectedEventHandler(this, e);
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
public class PinchGestureDetector : GestureDetector
{
-
- private DaliEventHandler<object, DetectedEventArgs> _pinchGestureEventHandler;
- private DetectedCallbackDelegate _pinchGestureCallbackDelegate;
-
/// <summary>
/// Creates an initialized PinchGestureDetector.
/// </summary>
{
}
+ private DaliEventHandler<object, DetectedEventArgs> _detectedEventHandler;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void DetectedCallbackDelegate(IntPtr actor, IntPtr pinchGesture);
+ private delegate void DetectedCallbackType(IntPtr actor, IntPtr pinchGesture);
+ private DetectedCallbackType _detectedCallback;
/// <summary>
/// This signal is emitted when the specified pinch is detected on the attached view.
{
add
{
- lock (this)
+ if (_detectedEventHandler == null)
{
- // Restricted to only one listener
- if (_pinchGestureEventHandler == null)
- {
- _pinchGestureEventHandler += value;
-
- _pinchGestureCallbackDelegate = new DetectedCallbackDelegate(OnPinchGestureDetected);
- this.DetectedSignal().Connect(_pinchGestureCallbackDelegate);
- }
+ _detectedCallback = OnPinchGestureDetected;
+ DetectedSignal().Connect(_detectedCallback);
}
+
+ _detectedEventHandler += value;
}
remove
{
- lock (this)
- {
- if (_pinchGestureEventHandler != null)
- {
- this.DetectedSignal().Disconnect(_pinchGestureCallbackDelegate);
- }
+ _detectedEventHandler -= value;
- _pinchGestureEventHandler -= value;
+ if (_detectedEventHandler == null && DetectedSignal().Empty() == false)
+ {
+ DetectedSignal().Disconnect(_detectedCallback);
}
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
{
+ if (_detectedCallback != null)
+ {
+ DetectedSignal().Disconnect(_detectedCallback);
+ }
+
Interop.PinchGesture.delete_PinchGestureDetector(swigCPtr);
}
e.PinchGesture = Tizen.NUI.PinchGesture.GetPinchGestureFromPtr(pinchGesture);
- if (_pinchGestureEventHandler != null)
+ if (_detectedEventHandler != null)
{
//Here we send all data to user event handlers.
- _pinchGestureEventHandler(this, e);
+ _detectedEventHandler(this, e);
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
public class RotationGestureDetector : GestureDetector
{
-
- private DaliEventHandler<object, DetectedEventArgs> _rotationGestureEventHandler;
- private DetectedCallbackDelegate _rotationGestureCallbackDelegate;
-
-
/// <summary>
/// Creates an initialized RotationGestureDetector.
/// </summary>
{
}
+ private DaliEventHandler<object, DetectedEventArgs> _detectedEventHandler;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void DetectedCallbackDelegate(IntPtr actor, IntPtr rotationGesture);
+ private delegate void DetectedCallbackType(IntPtr actor, IntPtr rotationGesture);
+ private DetectedCallbackType _detectedCallback;
/// <summary>
/// This signal is emitted when the specified rotation is detected on the attached view.
{
add
{
- lock (this)
+ if (_detectedEventHandler == null)
{
- // Restricted to only one listener
- if (_rotationGestureEventHandler == null)
- {
- _rotationGestureEventHandler += value;
-
- _rotationGestureCallbackDelegate = new DetectedCallbackDelegate(OnRotationGestureDetected);
- this.DetectedSignal().Connect(_rotationGestureCallbackDelegate);
- }
+ _detectedCallback = OnRotationGestureDetected;
+ DetectedSignal().Connect(_detectedCallback);
}
+
+ _detectedEventHandler += value;
}
remove
{
- lock (this)
- {
- if (_rotationGestureEventHandler != null)
- {
- this.DetectedSignal().Disconnect(_rotationGestureCallbackDelegate);
- }
+ _detectedEventHandler -= value;
- _rotationGestureEventHandler -= value;
+ if (_detectedEventHandler == null && DetectedSignal().Empty() == false)
+ {
+ DetectedSignal().Disconnect(_detectedCallback);
}
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
{
+ if (_detectedCallback != null)
+ {
+ DetectedSignal().Disconnect(_detectedCallback);
+ }
+
Interop.RotationGesture.delete_RotationGestureDetector(swigCPtr);
}
e.RotationGesture = Tizen.NUI.RotationGesture.GetRotationGestureFromPtr(rotationGesture);
- if (_rotationGestureEventHandler != null)
+ if (_detectedEventHandler != null)
{
//Here we send all data to user event handlers.
- _rotationGestureEventHandler(this, e);
+ _detectedEventHandler(this, e);
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
public class TapGestureDetector : GestureDetector
{
- private DaliEventHandler<object, DetectedEventArgs> _tapGestureEventHandler;
- private DetectedCallbackDelegate _tapGestureCallbackDelegate;
-
/// <summary>
/// Creates an initialized TapGestureDetector.
/// </summary>
{
}
+ private DaliEventHandler<object, DetectedEventArgs> _detectedEventHandler;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void DetectedCallbackDelegate(IntPtr actor, IntPtr TapGesture);
+ private delegate void DetectedCallbackType(IntPtr actor, IntPtr TapGesture);
+ private DetectedCallbackType _detectedCallback;
/// <summary>
/// This signal is emitted when the specified tap is detected on the attached view.
{
add
{
- lock (this)
+ if (_detectedEventHandler == null)
{
- // Restricted to only one listener
- if (_tapGestureEventHandler == null)
- {
- _tapGestureEventHandler += value;
-
- _tapGestureCallbackDelegate = new DetectedCallbackDelegate(OnTapGestureDetected);
- this.DetectedSignal().Connect(_tapGestureCallbackDelegate);
- }
+ _detectedCallback = OnTapGestureDetected;
+ DetectedSignal().Connect(_detectedCallback);
}
+
+ _detectedEventHandler += value;
}
remove
{
- lock (this)
- {
- if (_tapGestureEventHandler != null)
- {
- this.DetectedSignal().Disconnect(_tapGestureCallbackDelegate);
- }
+ _detectedEventHandler -= value;
- _tapGestureEventHandler -= value;
+ if (_detectedEventHandler == null && DetectedSignal().Empty() == false)
+ {
+ DetectedSignal().Disconnect(_detectedCallback);
}
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
{
+ if (_detectedCallback != null)
+ {
+ DetectedSignal().Disconnect(_detectedCallback);
+ }
+
Interop.TapGestureDetector.delete_TapGestureDetector(swigCPtr);
}
e.TapGesture = Tizen.NUI.TapGesture.GetTapGestureFromPtr(tapGesture);
- if (_tapGestureEventHandler != null)
+ if (_detectedEventHandler != null)
{
//here we send all data to user event handlers
- _tapGestureEventHandler(this, e);
+ _detectedEventHandler(this, e);
}
}