FromEventHandle() public static method

public static FromEventHandle ( IntPtr e ) : ScreenEvent
e System.IntPtr
return ScreenEvent
示例#1
0
        void HandleEvent(IntPtr eventHandle)
        {
            var e = ScreenEvent.FromEventHandle(eventHandle);

            if (e.Type == EventType.SCREEN_EVENT_CLOSE ||
                e.Type == EventType.SCREEN_EVENT_CREATE)
            {
                if (HandleWindowEvent(e))
                {
                    return;
                }
            }

            switch (e.Type)
            {
            case EventType.SCREEN_EVENT_CLOSE:
                if (OnCloseWindow != null)
                {
                    OnCloseWindow(e);
                }
                break;

            case EventType.SCREEN_EVENT_CREATE:
                if (OnCreateWindow != null)
                {
                    OnCreateWindow(e);
                }
                break;

            case EventType.SCREEN_EVENT_MTOUCH_TOUCH:
                if (OnFingerTouch != null)
                {
                    OnFingerTouch(e.X, e.Y);
                }
                break;

            case EventType.SCREEN_EVENT_MTOUCH_MOVE:
                if (OnFingerMove != null)
                {
                    OnFingerMove(e.X, e.Y);
                }
                break;

            case EventType.SCREEN_EVENT_MTOUCH_RELEASE:
                if (OnFingerRelease != null)
                {
                    OnFingerRelease(e.X, e.Y);
                }
                break;

            default:
                Console.WriteLine("UNHANDLED SCREEN EVENT, TYPE: {0}", e.Type);
                if (e.Type == EventType.SCREEN_EVENT_PROPERTY)
                {
                    Console.WriteLine(" - Name: {0}", (Property)e.GetIntProperty(Property.SCREEN_PROPERTY_NAME));
                }
                break;
            }
        }
示例#2
0
        void HandleEvent(IntPtr eventHandle)
        {
            var e = ScreenEvent.FromEventHandle(eventHandle);

            if (e.Type == EventType.SCREEN_EVENT_CLOSE ||
                e.Type == EventType.SCREEN_EVENT_CREATE)
            {
                if (HandleWindowEvent(e))
                {
                    return;
                }
            }

            switch (e.Type)
            {
            case EventType.SCREEN_EVENT_CLOSE:
                if (OnCloseWindow != null)
                {
                    OnCloseWindow(e);
                }
                break;

            case EventType.SCREEN_EVENT_CREATE:
                if (OnCreateWindow != null)
                {
                    OnCreateWindow(e);
                }
                break;

            case EventType.SCREEN_EVENT_MTOUCH_TOUCH:
                if (OnFingerTouch != null)
                {
                    OnFingerTouch(e.X, e.Y);
                }
                break;

            case EventType.SCREEN_EVENT_MTOUCH_MOVE:
                if (OnFingerMove != null)
                {
                    OnFingerMove(e.X, e.Y);
                }
                break;

            case EventType.SCREEN_EVENT_MTOUCH_RELEASE:
                if (OnFingerRelease != null)
                {
                    OnFingerRelease(e.X, e.Y);
                }
                break;

            case EventType.SCREEN_EVENT_KEYBOARD:
                if (OnKeyDown == null && OnKeyRepeat == null && OnKeyUp == null)
                {
                    break;
                }
                KeyFlags     flags = (KeyFlags)e.GetIntProperty(Property.SCREEN_PROPERTY_KEY_FLAGS);
                KeyCode      code  = (KeyCode)e.GetIntProperty(Property.SCREEN_PROPERTY_KEY_SYM);
                KeyModifiers mods  = (KeyModifiers)e.GetIntProperty(Property.SCREEN_PROPERTY_KEY_MODIFIERS);

                if (flags.HasFlag(KeyFlags.KEY_DOWN) && OnKeyDown != null)
                {
                    OnKeyDown(code, mods);
                }
                else if (flags.HasFlag(KeyFlags.KEY_REPEAT) && OnKeyRepeat != null)
                {
                    OnKeyRepeat(code, mods);
                }
                else if (OnKeyUp != null)
                {
                    OnKeyUp(code, mods);
                }
                break;

            default:
                Console.WriteLine("UNHANDLED SCREEN EVENT, TYPE: {0}", e.Type);
                if (e.Type == EventType.SCREEN_EVENT_PROPERTY)
                {
                    Console.WriteLine(" - Name: {0}", (Property)e.GetIntProperty(Property.SCREEN_PROPERTY_NAME));
                }
                else if (e.Type == EventType.SCREEN_EVENT_DEVICE ||
                         e.Type == EventType.SCREEN_EVENT_GAMEPAD ||
                         e.Type == EventType.SCREEN_EVENT_JOYSTICK ||
                         e.Type == EventType.SCREEN_EVENT_POINTER)
                {
                    Console.WriteLine(" - Buttons: {0}", e.GetIntProperty(Property.SCREEN_PROPERTY_BUTTONS));
                }
                break;
            }
        }