RKTK API Docs RKTK Home Repo

rktk_keymanager/keycode/
key.rs

1//! Normal keys
2
3use macro_rules_attribute::apply;
4
5use crate::macros::{common_derive, impl_display, normal, with_consts};
6
7#[apply(with_consts)]
8#[apply(common_derive)]
9#[derive(Copy, strum::EnumIter, strum::IntoStaticStr)]
10pub enum Key {
11    A = 0x04,
12    B = 0x05,
13    C = 0x06,
14    D = 0x07,
15    E = 0x08,
16    F = 0x09,
17    G = 0x0A,
18    H = 0x0B,
19    I = 0x0C,
20    J = 0x0D,
21    K = 0x0E,
22    L = 0x0F,
23    M = 0x10,
24    N = 0x11,
25    O = 0x12,
26    P = 0x13,
27    Q = 0x14,
28    R = 0x15,
29    S = 0x16,
30    T = 0x17,
31    U = 0x18,
32    V = 0x19,
33    W = 0x1A,
34    X = 0x1B,
35    Y = 0x1C,
36    Z = 0x1D,
37    D1 = 0x1E,
38    D2 = 0x1F,
39    D3 = 0x20,
40    D4 = 0x21,
41    D5 = 0x22,
42    D6 = 0x23,
43    D7 = 0x24,
44    D8 = 0x25,
45    D9 = 0x26,
46    D0 = 0x27,
47    Enter = 0x28,
48    Escape = 0x29,
49    Backspace = 0x2A,
50    Tab = 0x2B,
51    Space = 0x2C,
52    Minus = 0x2D,
53    Equal = 0x2E,
54    LeftBracket = 0x2F,
55    RightBracket = 0x30,
56    Backslash = 0x31,
57    NonUsHash = 0x32,
58    Semicolon = 0x33,
59    Quote = 0x34,
60    Grave = 0x35,
61    Comma = 0x36,
62    Dot = 0x37,
63    Slash = 0x38,
64    CapsLock = 0x39,
65    F1 = 0x3A,
66    F2 = 0x3B,
67    F3 = 0x3C,
68    F4 = 0x3D,
69    F5 = 0x3E,
70    F6 = 0x3F,
71    F7 = 0x40,
72    F8 = 0x41,
73    F9 = 0x42,
74    F10 = 0x43,
75    F11 = 0x44,
76    F12 = 0x45,
77    PrintScreen = 0x46,
78    ScrollLock = 0x47,
79    Pause = 0x48,
80    Insert = 0x49,
81    Home = 0x4A,
82    PageUp = 0x4B,
83    Delete = 0x4C,
84    End = 0x4D,
85    PageDown = 0x4E,
86    Right = 0x4F,
87    Left = 0x50,
88    Down = 0x51,
89    Up = 0x52,
90    NumLock = 0x53,
91    KpSlash = 0x54,
92    KpAsterisk = 0x55,
93    KpMinus = 0x56,
94    KpPlus = 0x57,
95    KpEnter = 0x58,
96    Kp1 = 0x59,
97    Kp2 = 0x5A,
98    Kp3 = 0x5B,
99    Kp4 = 0x5C,
100    Kp5 = 0x5D,
101    Kp6 = 0x5E,
102    Kp7 = 0x5F,
103    Kp8 = 0x60,
104    Kp9 = 0x61,
105    Kp0 = 0x62,
106    KpDot = 0x63,
107    NonUsBackslash = 0x64,
108    Application = 0x65,
109    KbPower = 0x66,
110    KpEqual = 0x67,
111    F13 = 0x68,
112    F14 = 0x69,
113    F15 = 0x6A,
114    F16 = 0x6B,
115    F17 = 0x6C,
116    F18 = 0x6D,
117    F19 = 0x6E,
118    F20 = 0x6F,
119    F21 = 0x70,
120    F22 = 0x71,
121    F23 = 0x72,
122    F24 = 0x73,
123    Execute = 0x74,
124    Help = 0x75,
125    Menu = 0x76,
126    Select = 0x77,
127    Stop = 0x78,
128    Again = 0x79,
129    Undo = 0x7A,
130    Cut = 0x7B,
131    Copy = 0x7C,
132    Paste = 0x7D,
133    Find = 0x7E,
134    Mute = 0x7F,
135    VolumeUp = 0x80,
136    VolumeDown = 0x81,
137    LockingCapsLock = 0x82,
138    LockingNumLock = 0x83,
139    LockingScrollLock = 0x84,
140    KpComma = 0x85,
141    KpEqualSign = 0x86,
142    International1 = 0x87,
143    International2 = 0x88,
144    International3 = 0x89,
145    International4 = 0x8A,
146    International5 = 0x8B,
147    International6 = 0x8C,
148    International7 = 0x8D,
149    International8 = 0x8E,
150    International9 = 0x8F,
151    Lang1 = 0x90,
152    Lang2 = 0x91,
153    Lang3 = 0x92,
154    Lang4 = 0x93,
155    Lang5 = 0x94,
156    Lang6 = 0x95,
157    Lang7 = 0x96,
158    Lang8 = 0x97,
159    Lang9 = 0x98,
160    AltErase = 0x99,
161    SysReq = 0x9A,
162    Cancel = 0x9B,
163    Clear = 0x9C,
164    Prior = 0x9D,
165    Return = 0x9E,
166    Separator = 0x9F,
167    Out = 0xA0,
168    Oper = 0xA1,
169    ClearAgain = 0xA2,
170    CrSel = 0xA3,
171    ExSel = 0xA4,
172    Kp00 = 0xB0,
173    Kp000 = 0xB1,
174    ThousandsSeparator = 0xB2,
175    DecimalSeparator = 0xB3,
176    CurrencyUnit = 0xB4,
177    CurrencySubUnit = 0xB5,
178    KpLeftParen = 0xB6,
179    KpRightParen = 0xB7,
180    KpLeftBrace = 0xB8,
181    KpRightBrace = 0xB9,
182    KpTab = 0xBA,
183    KpBackspace = 0xBB,
184    KpA = 0xBC,
185    KpB = 0xBD,
186    KpC = 0xBE,
187    KpD = 0xBF,
188    KpE = 0xC0,
189    KpF = 0xC1,
190    KpXor = 0xC2,
191    KpPower = 0xC3,
192    KpPercent = 0xC4,
193    KpLess = 0xC5,
194    KpGreater = 0xC6,
195    KpAmpersand = 0xC7,
196    KpDblAmpersand = 0xC8,
197    KpVerticalBar = 0xC9,
198    KpDblVerticalBar = 0xCA,
199    KpColon = 0xCB,
200    KpHash = 0xCC,
201    KpSpace = 0xCD,
202    KpAt = 0xCE,
203    KpExclam = 0xCF,
204    KpMemStore = 0xD0,
205    KpMemRecall = 0xD1,
206    KpMemClear = 0xD2,
207    KpMemAdd = 0xD3,
208    KpMemSubtract = 0xD4,
209    KpMemMultiply = 0xD5,
210    KpMemDivide = 0xD6,
211    KpPlusMinus = 0xD7,
212    KpClear = 0xD8,
213    KpClearEntry = 0xD9,
214    KpBinary = 0xDA,
215    KpOctal = 0xDB,
216    KpDecimal = 0xDC,
217    KpHexadecimal = 0xDD,
218    // LeftCtrl = 0xE0,
219    // LeftShift = 0xE1,
220    // LeftAlt = 0xE2,
221    // LeftGui = 0xE3,
222    // RightCtrl = 0xE4,
223    // RightShift = 0xE5,
224    // RightAlt = 0xE6,
225    // RightGui = 0xE7,
226}
227
228impl_display!(Key);
229
230// aliases
231normal!(BS, Key, Backspace);
232normal!(DEL, Key, Delete);
233normal!(ESC, Key, Escape);
234normal!(SEMI, Key, Semicolon);
235normal!(COMM, Key, Comma);
236normal!(LBRC, Key, LeftBracket);
237normal!(RBRC, Key, RightBracket);
238normal!(PRTSC, Key, PrintScreen);
239normal!(BSLSH, Key, Backslash);
240normal!(SCLN, Key, Semicolon);
241normal!(PGUP, Key, PageUp);
242normal!(PGDN, Key, PageDown);
243
244// Japanese keys
245normal!(JCOLN, Key, Quote);
246normal!(JBSLSH, Key, International1);
247normal!(JBSLSH2, Key, International3);
248normal!(JAT, Key, LeftBracket);
249normal!(JCARET, Key, Equal);
250normal!(JZNHN, Key, Grave);
251normal!(JHNKN, Key, International4);
252normal!(JMHNKN, Key, International5);
253normal!(JLBRC, Key, RightBracket);
254normal!(JRBRC, Key, NonUsHash);