1*8975f5c5SAndroid Build Coastguard Worker // 2*8975f5c5SAndroid Build Coastguard Worker // Copyright 2014 The ANGLE Project Authors. All rights reserved. 3*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 4*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file. 5*8975f5c5SAndroid Build Coastguard Worker // 6*8975f5c5SAndroid Build Coastguard Worker 7*8975f5c5SAndroid Build Coastguard Worker #ifndef SAMPLE_UTIL_EVENT_H 8*8975f5c5SAndroid Build Coastguard Worker #define SAMPLE_UTIL_EVENT_H 9*8975f5c5SAndroid Build Coastguard Worker 10*8975f5c5SAndroid Build Coastguard Worker #include "keyboard.h" 11*8975f5c5SAndroid Build Coastguard Worker #include "mouse.h" 12*8975f5c5SAndroid Build Coastguard Worker 13*8975f5c5SAndroid Build Coastguard Worker class Event 14*8975f5c5SAndroid Build Coastguard Worker { 15*8975f5c5SAndroid Build Coastguard Worker public: 16*8975f5c5SAndroid Build Coastguard Worker struct MoveEvent 17*8975f5c5SAndroid Build Coastguard Worker { 18*8975f5c5SAndroid Build Coastguard Worker int X; 19*8975f5c5SAndroid Build Coastguard Worker int Y; 20*8975f5c5SAndroid Build Coastguard Worker }; 21*8975f5c5SAndroid Build Coastguard Worker 22*8975f5c5SAndroid Build Coastguard Worker struct SizeEvent 23*8975f5c5SAndroid Build Coastguard Worker { 24*8975f5c5SAndroid Build Coastguard Worker int Width; 25*8975f5c5SAndroid Build Coastguard Worker int Height; 26*8975f5c5SAndroid Build Coastguard Worker }; 27*8975f5c5SAndroid Build Coastguard Worker 28*8975f5c5SAndroid Build Coastguard Worker struct KeyEvent 29*8975f5c5SAndroid Build Coastguard Worker { 30*8975f5c5SAndroid Build Coastguard Worker Key Code; 31*8975f5c5SAndroid Build Coastguard Worker bool Alt; 32*8975f5c5SAndroid Build Coastguard Worker bool Control; 33*8975f5c5SAndroid Build Coastguard Worker bool Shift; 34*8975f5c5SAndroid Build Coastguard Worker bool System; 35*8975f5c5SAndroid Build Coastguard Worker }; 36*8975f5c5SAndroid Build Coastguard Worker 37*8975f5c5SAndroid Build Coastguard Worker struct MouseMoveEvent 38*8975f5c5SAndroid Build Coastguard Worker { 39*8975f5c5SAndroid Build Coastguard Worker int X; 40*8975f5c5SAndroid Build Coastguard Worker int Y; 41*8975f5c5SAndroid Build Coastguard Worker }; 42*8975f5c5SAndroid Build Coastguard Worker 43*8975f5c5SAndroid Build Coastguard Worker struct MouseButtonEvent 44*8975f5c5SAndroid Build Coastguard Worker { 45*8975f5c5SAndroid Build Coastguard Worker MouseButton Button; 46*8975f5c5SAndroid Build Coastguard Worker int X; 47*8975f5c5SAndroid Build Coastguard Worker int Y; 48*8975f5c5SAndroid Build Coastguard Worker }; 49*8975f5c5SAndroid Build Coastguard Worker 50*8975f5c5SAndroid Build Coastguard Worker struct MouseWheelEvent 51*8975f5c5SAndroid Build Coastguard Worker { 52*8975f5c5SAndroid Build Coastguard Worker int Delta; 53*8975f5c5SAndroid Build Coastguard Worker }; 54*8975f5c5SAndroid Build Coastguard Worker 55*8975f5c5SAndroid Build Coastguard Worker enum EventType 56*8975f5c5SAndroid Build Coastguard Worker { 57*8975f5c5SAndroid Build Coastguard Worker EVENT_CLOSED, // The window requested to be closed 58*8975f5c5SAndroid Build Coastguard Worker EVENT_MOVED, // The window has moved 59*8975f5c5SAndroid Build Coastguard Worker EVENT_RESIZED, // The window was resized 60*8975f5c5SAndroid Build Coastguard Worker EVENT_LOST_FOCUS, // The window lost the focus 61*8975f5c5SAndroid Build Coastguard Worker EVENT_GAINED_FOCUS, // The window gained the focus 62*8975f5c5SAndroid Build Coastguard Worker EVENT_TEXT_ENTERED, // A character was entered 63*8975f5c5SAndroid Build Coastguard Worker EVENT_KEY_PRESSED, // A key was pressed 64*8975f5c5SAndroid Build Coastguard Worker EVENT_KEY_RELEASED, // A key was released 65*8975f5c5SAndroid Build Coastguard Worker EVENT_MOUSE_WHEEL_MOVED, // The mouse wheel was scrolled 66*8975f5c5SAndroid Build Coastguard Worker EVENT_MOUSE_BUTTON_PRESSED, // A mouse button was pressed 67*8975f5c5SAndroid Build Coastguard Worker EVENT_MOUSE_BUTTON_RELEASED, // A mouse button was released 68*8975f5c5SAndroid Build Coastguard Worker EVENT_MOUSE_MOVED, // The mouse cursor moved 69*8975f5c5SAndroid Build Coastguard Worker EVENT_MOUSE_ENTERED, // The mouse cursor entered the area of the window 70*8975f5c5SAndroid Build Coastguard Worker EVENT_MOUSE_LEFT, // The mouse cursor left the area of the window 71*8975f5c5SAndroid Build Coastguard Worker EVENT_TEST, // Event for testing purposes 72*8975f5c5SAndroid Build Coastguard Worker }; 73*8975f5c5SAndroid Build Coastguard Worker 74*8975f5c5SAndroid Build Coastguard Worker EventType Type; 75*8975f5c5SAndroid Build Coastguard Worker 76*8975f5c5SAndroid Build Coastguard Worker union 77*8975f5c5SAndroid Build Coastguard Worker { 78*8975f5c5SAndroid Build Coastguard Worker MoveEvent Move; // Move event parameters 79*8975f5c5SAndroid Build Coastguard Worker SizeEvent Size; // Size event parameters 80*8975f5c5SAndroid Build Coastguard Worker KeyEvent Key; // Key event parameters 81*8975f5c5SAndroid Build Coastguard Worker MouseMoveEvent MouseMove; // Mouse move event parameters 82*8975f5c5SAndroid Build Coastguard Worker MouseButtonEvent MouseButton; // Mouse button event parameters 83*8975f5c5SAndroid Build Coastguard Worker MouseWheelEvent MouseWheel; // Mouse wheel event parameters 84*8975f5c5SAndroid Build Coastguard Worker }; 85*8975f5c5SAndroid Build Coastguard Worker }; 86*8975f5c5SAndroid Build Coastguard Worker 87*8975f5c5SAndroid Build Coastguard Worker #endif // SAMPLE_UTIL_EVENT_H 88