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