Example #1
0
        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);
 }