using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
using UnityEngine.EventSystems;
namespace UIWidgets {
///
/// Pointer unity event.
///
[System.Serializable]
public class PointerUnityEvent : UnityEvent {
}
///
/// Button advanced. You can add callback on PointerEnter/Exit/Down/Up
///
public class ButtonAdvanced : UnityEngine.UI.Button,
IPointerDownHandler,
IPointerUpHandler,
IPointerEnterHandler,
IPointerExitHandler
{
///
/// What to do when the event system send a pointer down Event.
///
public PointerUnityEvent onPointerDown = new PointerUnityEvent();
///
/// What to do when the event system send a pointer up Event.
///
public PointerUnityEvent onPointerUp = new PointerUnityEvent();
///
/// What to do when the event system send a pointer enter Event.
///
public PointerUnityEvent onPointerEnter = new PointerUnityEvent();
///
/// What to do when the event system send a pointer exit Event.
///
public PointerUnityEvent onPointerExit = new PointerUnityEvent();
///
/// Raises the pointer down event.
///
/// Current event data.
public override void OnPointerDown(PointerEventData eventData)
{
onPointerDown.Invoke(eventData);
base.OnPointerDown(eventData);
}
///
/// Raises the pointer up event.
///
/// Current event data.
public override void OnPointerUp(PointerEventData eventData)
{
onPointerUp.Invoke(eventData);
base.OnPointerUp(eventData);
}
///
/// Raises the pointer enter event.
///
/// Current event data.
public override void OnPointerEnter(PointerEventData eventData)
{
onPointerEnter.Invoke(eventData);
base.OnPointerEnter(eventData);
}
///
/// Raises the pointer exit event.
///
/// Current event data.
public override void OnPointerExit(PointerEventData eventData)
{
onPointerExit.Invoke(eventData);
base.OnPointerExit(eventData);
}
}
}