blob: f6aed45923289677e92c7ad64a0c18867ae6d993 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.input;
/// A Fuchsia key represents a control that can be pressed or released such as a key or
/// a button on a keyboard or another input device.
///
/// The ordinal index for enum elements is derived from the USB HID Usage Tables at the
/// time of definition. It is a 32 bit unsigned integer representing the USB HID Usage
/// where the low 16 bits are the USB HID Usage ID and the high 16 bits are the
/// USB HID Usage Page.
///
/// The descriptions for each value in the enum assume a US English keyboard layout.
/// Actual behavior varies by layout.
enum Key : uint32 {
/// Keyboard a and A
A = 0x00070004;
/// Keyboard b and B
B = 0x00070005;
/// Keyboard c and C
C = 0x00070006;
/// Keyboard d and D
D = 0x00070007;
/// Keyboard e and E
E = 0x00070008;
/// Keyboard f and F
F = 0x00070009;
/// Keyboard g and G
G = 0x0007000a;
/// Keyboard h and H
H = 0x0007000b;
/// Keyboard i and I
I = 0x0007000c;
/// Keyboard j and J
J = 0x0007000d;
/// Keyboard k and K
K = 0x0007000e;
/// Keyboard l and L
L = 0x0007000f;
/// Keyboard m and M
M = 0x00070010;
/// Keyboard n and N
N = 0x00070011;
/// Keyboard o and O
O = 0x00070012;
/// Keyboard p and P
P = 0x00070013;
/// Keyboard q and Q
Q = 0x00070014;
/// Keyboard r and R
R = 0x00070015;
/// Keyboard s and S
S = 0x00070016;
/// Keyboard t and T
T = 0x00070017;
/// Keyboard u and U
U = 0x00070018;
/// Keyboard v and V
V = 0x00070019;
/// Keyboard w and W
W = 0x0007001a;
/// Keyboard x and X
X = 0x0007001b;
/// Keyboard y and Y
Y = 0x0007001c;
/// Keyboard z and Z
Z = 0x0007001d;
/// Keyboard 1 and !
KEY_1 = 0x0007001e;
/// Keyboard 2 and @
KEY_2 = 0x0007001f;
/// Keyboard 3 and #
KEY_3 = 0x00070020;
/// Keyboard 4 and $
KEY_4 = 0x00070021;
/// Keyboard 5 and %
KEY_5 = 0x00070022;
/// Keyboard 6 and ^
KEY_6 = 0x00070023;
/// Keyboard 7 and &
KEY_7 = 0x00070024;
/// Keyboard 8 and *
KEY_8 = 0x00070025;
/// Keyboard 9 and (
KEY_9 = 0x00070026;
/// Keyboard 0 and )
KEY_0 = 0x00070027;
/// Keyboard Enter (Return)
ENTER = 0x00070028;
/// Keyboard Escape
ESCAPE = 0x00070029;
/// Keyboard Backspace (Backward Delete)
BACKSPACE = 0x0007002a;
/// Keyboard Tab
TAB = 0x0007002b;
/// Keyboard Spacebar
SPACE = 0x0007002c;
/// Keyboard - and (underscore)
MINUS = 0x0007002d;
/// Keyboard = and +
EQUALS = 0x0007002e;
/// Keyboard [ and {
LEFT_BRACE = 0x0007002f;
/// Keyboard ] and }
RIGHT_BRACE = 0x00070030;
/// Keyboard \ and |
BACKSLASH = 0x00070031;
/// Keyboard Non-US # and ~
NON_US_HASH = 0x00070032;
/// Keyboard ; and :
SEMICOLON = 0x00070033;
/// Keyboard ' and "
APOSTROPHE = 0x00070034;
/// Keyboard Grave Accent and Tilde
GRAVE_ACCENT = 0x00070035;
/// Keyboard , and <
COMMA = 0x00070036;
/// Keyboard . and >
DOT = 0x00070037;
/// Keyboard / and ?
SLASH = 0x00070038;
/// Keyboard Caps Lock
CAPS_LOCK = 0x00070039;
/// Keyboard F1
F1 = 0x0007003a;
/// Keyboard F2
F2 = 0x0007003b;
/// Keyboard F3
F3 = 0x0007003c;
/// Keyboard F4
F4 = 0x0007003d;
/// Keyboard F5
F5 = 0x0007003e;
/// Keyboard F6
F6 = 0x0007003f;
/// Keyboard F7
F7 = 0x00070040;
/// Keyboard F8
F8 = 0x00070041;
/// Keyboard F9
F9 = 0x00070042;
/// Keyboard F10
F10 = 0x00070043;
/// Keyboard F11
F11 = 0x00070044;
/// Keyboard F12
F12 = 0x00070045;
/// Keyboard Print Screen
PRINT_SCREEN = 0x00070046;
/// Keyboard Scroll Lock
SCROLL_LOCK = 0x00070047;
/// Keyboard Pause
PAUSE = 0x00070048;
/// Keyboard Insert
INSERT = 0x00070049;
/// Keyboard Home
HOME = 0x0007004a;
/// Keyboard Page Up
PAGE_UP = 0x0007004b;
/// Keyboard Forward Delete
DELETE = 0x0007004c;
/// Keyboard End
END = 0x0007004d;
/// Keyboard Page Down
PAGE_DOWN = 0x0007004e;
/// Keyboard Right Arrow
RIGHT = 0x0007004f;
/// Keyboard Left Arrow
LEFT = 0x00070050;
/// Keyboard Down Arrow
DOWN = 0x00070051;
/// Keyboard Up Arrow
UP = 0x00070052;
/// Keyboard Non-US \ and |
NON_US_BACKSLASH = 0x00070064;
/// Keyboard Left Control
LEFT_CTRL = 0x000700e0;
/// Keyboard Left Shift
LEFT_SHIFT = 0x000700e1;
/// Keyboard Left Alt
LEFT_ALT = 0x000700e2;
/// Keyboard Left GUI (Meta, Windows)
LEFT_META = 0x000700e3;
/// Keyboard Right Control
RIGHT_CTRL = 0x000700e4;
/// Keyboard Right Shift
RIGHT_SHIFT = 0x000700e5;
/// Keyboard Right Alt
RIGHT_ALT = 0x000700e6;
/// Keyboard Right GUI (Meta, Windows)
RIGHT_META = 0x000700e7;
/// Keyboard Menu
MENU = 0x00070076;
/// Keypad Num Lock and Clear
NUM_LOCK = 0x00070053;
/// Keypad /
KEYPAD_SLASH = 0x00070054;
/// Keypad *
KEYPAD_ASTERISK = 0x00070055;
/// Keypad -
KEYPAD_MINUS = 0x00070056;
/// Keypad +
KEYPAD_PLUS = 0x00070057;
/// Keypad ENTER
KEYPAD_ENTER = 0x00070058;
/// Keypad 1 and End
KEYPAD_1 = 0x00070059;
/// Keypad 2 and Down Arrow
KEYPAD_2 = 0x0007005a;
/// Keypad 3 and Page Down
KEYPAD_3 = 0x0007005b;
/// Keypad 4 and Left Arrow
KEYPAD_4 = 0x0007005c;
/// Keypad 5
KEYPAD_5 = 0x0007005d;
/// Keypad 6 and Right Arrow
KEYPAD_6 = 0x0007005e;
/// Keypad 7 and Home
KEYPAD_7 = 0x0007005f;
/// Keypad 8 and Up Arrow
KEYPAD_8 = 0x00070060;
/// Keypad 9 and Page Up
KEYPAD_9 = 0x00070061;
/// Keypad 0 and Insert
KEYPAD_0 = 0x00070062;
/// Keypad . and Delete
KEYPAD_DOT = 0x00070063;
/// Keypad =
KEYPAD_EQUALS = 0x00070067;
/// Mute
MEDIA_MUTE = 0x000c00e2;
/// Volume Increment
MEDIA_VOLUME_INCREMENT = 0x000c00e9;
/// Volume Decrement
MEDIA_VOLUME_DECREMENT = 0x000c00ea;
};