// // 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