public virtual void ProcessEvents(Event e) { if (e.isKey) { OnKeyDown(this, e); return; } if (!viewRect.Contains(e.mousePosition)) { return; } switch (e.button) { case 0: switch (e.type) { case EventType.MouseDown: OnLeftMouseDown?.Invoke(this, e); break; case EventType.MouseDrag: OnLeftMouseDrag?.Invoke(this, e); break; case EventType.MouseUp: OnLeftMouseUp?.Invoke(this, e); break; } break; case 1: switch (e.type) { case EventType.MouseDown: OnRightMouseDown?.Invoke(this, e); break; case EventType.MouseDrag: OnRightMouseDrag?.Invoke(this, e); break; case EventType.MouseUp: OnRightMouseUp?.Invoke(this, e); break; } break; } }
/// <summary>Register background left mouse up event handler.</summary> /// <param name="callback">callback function </param> public static void ObserveLeftMouseUp(OnLeftMouseUp callback) { RemoveOnLeftMouseUp(); _leftMouseUpGcHandle = GCHandle.Alloc(callback, GCHandleType.Normal); onLeftMouseUp((IntPtr)_leftMouseUpGcHandle.Value, OnLeftMouseUpFromNative); }