Edit

kc3-lang/angle/util/Event.h

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2014-08-21 10:04:04
    Hash : 1cfaaf8a
    Message : Add a util project to share between samples and tests. This code shares the Window and EGL logic between the two projects. BUG=angle:730 Change-Id: I8940371226a8f7b02579c332f51679c4a5d0e2a5 Reviewed-on: https://chromium-review.googlesource.com/212799 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>

  • util/Event.h
  • //
    // Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    
    #ifndef SAMPLE_UTIL_EVENT_H
    #define SAMPLE_UTIL_EVENT_H
    
    #include "keyboard.h"
    #include "mouse.h"
    
    class Event
    {
      public:
        struct MoveEvent
        {
            int X;
            int Y;
        };
    
        struct SizeEvent
        {
            int Width;
            int Height;
        };
    
        struct KeyEvent
        {
            Key Code;
            bool Alt;
            bool Control;
            bool Shift;
            bool System;
        };
    
        struct MouseMoveEvent
        {
            int X;
            int Y;
        };
    
        struct MouseButtonEvent
        {
            MouseButton Button;
            int X;
            int Y;
        };
    
        struct MouseWheelEvent
        {
            int Delta;
        };
    
        enum EventType
        {
            EVENT_CLOSED,                // The window requested to be closed
            EVENT_MOVED,                 // The window has moved
            EVENT_RESIZED,               // The window was resized
            EVENT_LOST_FOCUS,            // The window lost the focus
            EVENT_GAINED_FOCUS,          // The window gained the focus
            EVENT_TEXT_ENTERED,          // A character was entered
            EVENT_KEY_PRESSED,           // A key was pressed
            EVENT_KEY_RELEASED,          // A key was released
            EVENT_MOUSE_WHEEL_MOVED,     // The mouse wheel was scrolled
            EVENT_MOUSE_BUTTON_PRESSED,  // A mouse button was pressed
            EVENT_MOUSE_BUTTON_RELEASED, // A mouse button was released
            EVENT_MOUSE_MOVED,           // The mouse cursor moved
            EVENT_MOUSE_ENTERED,         // The mouse cursor entered the area of the window
            EVENT_MOUSE_LEFT,            // The mouse cursor left the area of the window
        };
    
        EventType Type;
    
        union
        {
            MoveEvent               Move;               // Move event parameters
            SizeEvent               Size;               // Size event parameters
            KeyEvent                Key;                // Key event parameters
            MouseMoveEvent          MouseMove;          // Mouse move event parameters
            MouseButtonEvent        MouseButton;        // Mouse button event parameters
            MouseWheelEvent         MouseWheel;         // Mouse wheel event parameters
        };
    };
    
    #endif SAMPLE_UTIL_EVENT_H