Files

54 lines
611 B
Plaintext

namespace InputEvent;
enum KeyAction: byte {
DOWN,
UP,
}
table MouseMovement {
movement_x: int16;
movement_y: int16;
}
enum MouseButton: byte {
LEFT,
MIDDLE,
RIGHT,
X1,
X2
}
table MouseInput {
button: MouseButton;
button_action: KeyAction;
}
struct ModifierState {
shift: bool;
ctrl: bool;
alt: bool;
meta: bool;
}
table KeyboardInput {
key_code: int16;
key_action: KeyAction;
modifiers: ModifierState;
}
union Input {
Keyboard:KeyboardInput,
MouseMovement:MouseMovement,
MouseInput:MouseInput,
}
table InputEvent {
input: Input;
}
root_type InputEvent;