// // 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 EVENT_TEST, // Event for testing purposes }; 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