xref: /aosp_15_r20/external/angle/util/Event.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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