1use alloc::string::ToString as _;
7
8use ui_events::keyboard::{Code, Key, KeyState, KeyboardEvent, Location, Modifiers, NamedKey};
9use winit::keyboard::{KeyLocation, ModifiersState};
10
11extern crate alloc;
12
13pub fn from_winit_keyboard_event(
15 winit_event: winit::event::KeyEvent,
16 mods: ModifiersState,
17) -> KeyboardEvent {
18 KeyboardEvent {
19 key: from_winit_key(winit_event.logical_key),
20 code: from_winit_code(winit_event.physical_key),
21 modifiers: from_winit_modifier_state(mods),
22 location: from_winit_location(winit_event.location),
23 is_composing: false,
24 repeat: winit_event.repeat,
25 state: match winit_event.state {
26 winit::event::ElementState::Pressed => KeyState::Down,
27 winit::event::ElementState::Released => KeyState::Up,
28 },
29 }
30}
31
32pub fn from_winit_location(winit_location: KeyLocation) -> Location {
34 match winit_location {
35 KeyLocation::Standard => Location::Standard,
36 KeyLocation::Left => Location::Left,
37 KeyLocation::Right => Location::Right,
38 KeyLocation::Numpad => Location::Numpad,
39 }
40}
41
42pub fn from_winit_modifier_state(modifiers_state: ModifiersState) -> Modifiers {
44 let mut modifiers = Modifiers::default();
45 if modifiers_state.control_key() {
46 modifiers.insert(Modifiers::CONTROL);
47 }
48 if modifiers_state.alt_key() {
49 modifiers.insert(Modifiers::ALT);
50 }
51 if modifiers_state.shift_key() {
52 modifiers.insert(Modifiers::SHIFT);
53 }
54 if modifiers_state.meta_key() {
55 modifiers.insert(Modifiers::META);
56 }
57 modifiers
58}
59
60pub fn from_winit_key(winit_key: winit::keyboard::Key) -> Key {
62 use winit::keyboard::Key as WK;
63 use winit::keyboard::NamedKey as WNK;
64 match winit_key {
66 WK::Character(c) => Key::Character(c.to_string()),
67 WK::Unidentified(_) => Key::Named(NamedKey::Unidentified),
68 WK::Dead(_) => Key::Named(NamedKey::Dead),
69 WK::Named(k) => Key::Named(match k {
70 WNK::Alt => NamedKey::Alt,
71 WNK::AltGraph => NamedKey::AltGraph,
72 WNK::CapsLock => NamedKey::CapsLock,
73 WNK::Control => NamedKey::Control,
74 WNK::Fn => NamedKey::Fn,
75 WNK::FnLock => NamedKey::FnLock,
76 WNK::NumLock => NamedKey::NumLock,
77 WNK::ScrollLock => NamedKey::ScrollLock,
78 WNK::Shift => NamedKey::Shift,
79 WNK::Symbol => NamedKey::Symbol,
80 WNK::SymbolLock => NamedKey::SymbolLock,
81 WNK::Meta => NamedKey::Meta,
82 #[allow(deprecated)]
83 WNK::Hyper => NamedKey::Hyper,
84 #[allow(deprecated)]
85 WNK::Super => NamedKey::Super,
86 WNK::Enter => NamedKey::Enter,
87 WNK::Tab => NamedKey::Tab,
88 WNK::ArrowDown => NamedKey::ArrowDown,
89 WNK::ArrowLeft => NamedKey::ArrowLeft,
90 WNK::ArrowRight => NamedKey::ArrowRight,
91 WNK::ArrowUp => NamedKey::ArrowUp,
92 WNK::End => NamedKey::End,
93 WNK::Home => NamedKey::Home,
94 WNK::PageDown => NamedKey::PageDown,
95 WNK::PageUp => NamedKey::PageUp,
96 WNK::Backspace => NamedKey::Backspace,
97 WNK::Clear => NamedKey::Clear,
98 WNK::Copy => NamedKey::Copy,
99 WNK::CrSel => NamedKey::CrSel,
100 WNK::Cut => NamedKey::Cut,
101 WNK::Delete => NamedKey::Delete,
102 WNK::EraseEof => NamedKey::EraseEof,
103 WNK::ExSel => NamedKey::ExSel,
104 WNK::Insert => NamedKey::Insert,
105 WNK::Paste => NamedKey::Paste,
106 WNK::Redo => NamedKey::Redo,
107 WNK::Undo => NamedKey::Undo,
108 WNK::Accept => NamedKey::Accept,
109 WNK::Again => NamedKey::Again,
110 WNK::Attn => NamedKey::Attn,
111 WNK::Cancel => NamedKey::Cancel,
112 WNK::ContextMenu => NamedKey::ContextMenu,
113 WNK::Escape => NamedKey::Escape,
114 WNK::Execute => NamedKey::Execute,
115 WNK::Find => NamedKey::Find,
116 WNK::Help => NamedKey::Help,
117 WNK::Pause => NamedKey::Pause,
118 WNK::Play => NamedKey::Play,
119 WNK::Props => NamedKey::Props,
120 WNK::Select => NamedKey::Select,
121 WNK::ZoomIn => NamedKey::ZoomIn,
122 WNK::ZoomOut => NamedKey::ZoomOut,
123 WNK::BrightnessDown => NamedKey::BrightnessDown,
124 WNK::BrightnessUp => NamedKey::BrightnessUp,
125 WNK::Eject => NamedKey::Eject,
126 WNK::LogOff => NamedKey::LogOff,
127 WNK::Power => NamedKey::Power,
128 WNK::PowerOff => NamedKey::PowerOff,
129 WNK::PrintScreen => NamedKey::PrintScreen,
130 WNK::Hibernate => NamedKey::Hibernate,
131 WNK::Standby => NamedKey::Standby,
132 WNK::WakeUp => NamedKey::WakeUp,
133 WNK::AllCandidates => NamedKey::AllCandidates,
134 WNK::Alphanumeric => NamedKey::Alphanumeric,
135 WNK::CodeInput => NamedKey::CodeInput,
136 WNK::Compose => NamedKey::Compose,
137 WNK::Convert => NamedKey::Convert,
138 WNK::FinalMode => NamedKey::FinalMode,
139 WNK::GroupFirst => NamedKey::GroupFirst,
140 WNK::GroupLast => NamedKey::GroupLast,
141 WNK::GroupNext => NamedKey::GroupNext,
142 WNK::GroupPrevious => NamedKey::GroupPrevious,
143 WNK::ModeChange => NamedKey::ModeChange,
144 WNK::NextCandidate => NamedKey::NextCandidate,
145 WNK::NonConvert => NamedKey::NonConvert,
146 WNK::PreviousCandidate => NamedKey::PreviousCandidate,
147 WNK::Process => NamedKey::Process,
148 WNK::SingleCandidate => NamedKey::SingleCandidate,
149 WNK::HangulMode => NamedKey::HangulMode,
150 WNK::HanjaMode => NamedKey::HanjaMode,
151 WNK::JunjaMode => NamedKey::JunjaMode,
152 WNK::Eisu => NamedKey::Eisu,
153 WNK::Hankaku => NamedKey::Hankaku,
154 WNK::Hiragana => NamedKey::Hiragana,
155 WNK::HiraganaKatakana => NamedKey::HiraganaKatakana,
156 WNK::KanaMode => NamedKey::KanaMode,
157 WNK::KanjiMode => NamedKey::KanjiMode,
158 WNK::Katakana => NamedKey::Katakana,
159 WNK::Romaji => NamedKey::Romaji,
160 WNK::Zenkaku => NamedKey::Zenkaku,
161 WNK::ZenkakuHankaku => NamedKey::ZenkakuHankaku,
162 WNK::Soft1 => NamedKey::Soft1,
163 WNK::Soft2 => NamedKey::Soft2,
164 WNK::Soft3 => NamedKey::Soft3,
165 WNK::Soft4 => NamedKey::Soft4,
166 WNK::ChannelDown => NamedKey::ChannelDown,
167 WNK::ChannelUp => NamedKey::ChannelUp,
168 WNK::Close => NamedKey::Close,
169 WNK::MailForward => NamedKey::MailForward,
170 WNK::MailReply => NamedKey::MailReply,
171 WNK::MailSend => NamedKey::MailSend,
172 WNK::MediaClose => NamedKey::MediaClose,
173 WNK::MediaFastForward => NamedKey::MediaFastForward,
174 WNK::MediaPause => NamedKey::MediaPause,
175 WNK::MediaPlay => NamedKey::MediaPlay,
176 WNK::MediaPlayPause => NamedKey::MediaPlayPause,
177 WNK::MediaRecord => NamedKey::MediaRecord,
178 WNK::MediaRewind => NamedKey::MediaRewind,
179 WNK::MediaStop => NamedKey::MediaStop,
180 WNK::MediaTrackNext => NamedKey::MediaTrackNext,
181 WNK::MediaTrackPrevious => NamedKey::MediaTrackPrevious,
182 WNK::New => NamedKey::New,
183 WNK::Open => NamedKey::Open,
184 WNK::Print => NamedKey::Print,
185 WNK::Save => NamedKey::Save,
186 WNK::SpellCheck => NamedKey::SpellCheck,
187 WNK::Key11 => NamedKey::Key11,
188 WNK::Key12 => NamedKey::Key12,
189 WNK::AudioBalanceLeft => NamedKey::AudioBalanceLeft,
190 WNK::AudioBalanceRight => NamedKey::AudioBalanceRight,
191 WNK::AudioBassBoostDown => NamedKey::AudioBassBoostDown,
192 WNK::AudioBassBoostToggle => NamedKey::AudioBassBoostToggle,
193 WNK::AudioBassBoostUp => NamedKey::AudioBassBoostUp,
194 WNK::AudioFaderFront => NamedKey::AudioFaderFront,
195 WNK::AudioFaderRear => NamedKey::AudioFaderRear,
196 WNK::AudioSurroundModeNext => NamedKey::AudioSurroundModeNext,
197 WNK::AudioTrebleDown => NamedKey::AudioTrebleDown,
198 WNK::AudioTrebleUp => NamedKey::AudioTrebleUp,
199 WNK::AudioVolumeDown => NamedKey::AudioVolumeDown,
200 WNK::AudioVolumeUp => NamedKey::AudioVolumeUp,
201 WNK::AudioVolumeMute => NamedKey::AudioVolumeMute,
202 WNK::MicrophoneToggle => NamedKey::MicrophoneToggle,
203 WNK::MicrophoneVolumeDown => NamedKey::MicrophoneVolumeDown,
204 WNK::MicrophoneVolumeUp => NamedKey::MicrophoneVolumeUp,
205 WNK::MicrophoneVolumeMute => NamedKey::MicrophoneVolumeMute,
206 WNK::SpeechCorrectionList => NamedKey::SpeechCorrectionList,
207 WNK::SpeechInputToggle => NamedKey::SpeechInputToggle,
208 WNK::LaunchApplication1 => NamedKey::LaunchApplication1,
209 WNK::LaunchApplication2 => NamedKey::LaunchApplication2,
210 WNK::LaunchCalendar => NamedKey::LaunchCalendar,
211 WNK::LaunchContacts => NamedKey::LaunchContacts,
212 WNK::LaunchMail => NamedKey::LaunchMail,
213 WNK::LaunchMediaPlayer => NamedKey::LaunchMediaPlayer,
214 WNK::LaunchMusicPlayer => NamedKey::LaunchMusicPlayer,
215 WNK::LaunchPhone => NamedKey::LaunchPhone,
216 WNK::LaunchScreenSaver => NamedKey::LaunchScreenSaver,
217 WNK::LaunchSpreadsheet => NamedKey::LaunchSpreadsheet,
218 WNK::LaunchWebBrowser => NamedKey::LaunchWebBrowser,
219 WNK::LaunchWebCam => NamedKey::LaunchWebCam,
220 WNK::LaunchWordProcessor => NamedKey::LaunchWordProcessor,
221 WNK::BrowserBack => NamedKey::BrowserBack,
222 WNK::BrowserFavorites => NamedKey::BrowserFavorites,
223 WNK::BrowserForward => NamedKey::BrowserForward,
224 WNK::BrowserHome => NamedKey::BrowserHome,
225 WNK::BrowserRefresh => NamedKey::BrowserRefresh,
226 WNK::BrowserSearch => NamedKey::BrowserSearch,
227 WNK::BrowserStop => NamedKey::BrowserStop,
228 WNK::AppSwitch => NamedKey::AppSwitch,
229 WNK::Call => NamedKey::Call,
230 WNK::Camera => NamedKey::Camera,
231 WNK::CameraFocus => NamedKey::CameraFocus,
232 WNK::EndCall => NamedKey::EndCall,
233 WNK::GoBack => NamedKey::GoBack,
234 WNK::GoHome => NamedKey::GoHome,
235 WNK::HeadsetHook => NamedKey::HeadsetHook,
236 WNK::LastNumberRedial => NamedKey::LastNumberRedial,
237 WNK::Notification => NamedKey::Notification,
238 WNK::MannerMode => NamedKey::MannerMode,
239 WNK::VoiceDial => NamedKey::VoiceDial,
240 WNK::TV => NamedKey::TV,
241 WNK::TV3DMode => NamedKey::TV3DMode,
242 WNK::TVAntennaCable => NamedKey::TVAntennaCable,
243 WNK::TVAudioDescription => NamedKey::TVAudioDescription,
244 WNK::TVAudioDescriptionMixDown => NamedKey::TVAudioDescriptionMixDown,
245 WNK::TVAudioDescriptionMixUp => NamedKey::TVAudioDescriptionMixUp,
246 WNK::TVContentsMenu => NamedKey::TVContentsMenu,
247 WNK::TVDataService => NamedKey::TVDataService,
248 WNK::TVInput => NamedKey::TVInput,
249 WNK::TVInputComponent1 => NamedKey::TVInputComponent1,
250 WNK::TVInputComponent2 => NamedKey::TVInputComponent2,
251 WNK::TVInputComposite1 => NamedKey::TVInputComposite1,
252 WNK::TVInputComposite2 => NamedKey::TVInputComposite2,
253 WNK::TVInputHDMI1 => NamedKey::TVInputHDMI1,
254 WNK::TVInputHDMI2 => NamedKey::TVInputHDMI2,
255 WNK::TVInputHDMI3 => NamedKey::TVInputHDMI3,
256 WNK::TVInputHDMI4 => NamedKey::TVInputHDMI4,
257 WNK::TVInputVGA1 => NamedKey::TVInputVGA1,
258 WNK::TVMediaContext => NamedKey::TVMediaContext,
259 WNK::TVNetwork => NamedKey::TVNetwork,
260 WNK::TVNumberEntry => NamedKey::TVNumberEntry,
261 WNK::TVPower => NamedKey::TVPower,
262 WNK::TVRadioService => NamedKey::TVRadioService,
263 WNK::TVSatellite => NamedKey::TVSatellite,
264 WNK::TVSatelliteBS => NamedKey::TVSatelliteBS,
265 WNK::TVSatelliteCS => NamedKey::TVSatelliteCS,
266 WNK::TVSatelliteToggle => NamedKey::TVSatelliteToggle,
267 WNK::TVTerrestrialAnalog => NamedKey::TVTerrestrialAnalog,
268 WNK::TVTerrestrialDigital => NamedKey::TVTerrestrialDigital,
269 WNK::TVTimer => NamedKey::TVTimer,
270 WNK::AVRInput => NamedKey::AVRInput,
271 WNK::AVRPower => NamedKey::AVRPower,
272 WNK::ColorF0Red => NamedKey::ColorF0Red,
273 WNK::ColorF1Green => NamedKey::ColorF1Green,
274 WNK::ColorF2Yellow => NamedKey::ColorF2Yellow,
275 WNK::ColorF3Blue => NamedKey::ColorF3Blue,
276 WNK::ColorF4Grey => NamedKey::ColorF4Grey,
277 WNK::ColorF5Brown => NamedKey::ColorF5Brown,
278 WNK::ClosedCaptionToggle => NamedKey::ClosedCaptionToggle,
279 WNK::Dimmer => NamedKey::Dimmer,
280 WNK::DisplaySwap => NamedKey::DisplaySwap,
281 WNK::DVR => NamedKey::DVR,
282 WNK::Exit => NamedKey::Exit,
283 WNK::FavoriteClear0 => NamedKey::FavoriteClear0,
284 WNK::FavoriteClear1 => NamedKey::FavoriteClear1,
285 WNK::FavoriteClear2 => NamedKey::FavoriteClear2,
286 WNK::FavoriteClear3 => NamedKey::FavoriteClear3,
287 WNK::FavoriteRecall0 => NamedKey::FavoriteRecall0,
288 WNK::FavoriteRecall1 => NamedKey::FavoriteRecall1,
289 WNK::FavoriteRecall2 => NamedKey::FavoriteRecall2,
290 WNK::FavoriteRecall3 => NamedKey::FavoriteRecall3,
291 WNK::FavoriteStore0 => NamedKey::FavoriteStore0,
292 WNK::FavoriteStore1 => NamedKey::FavoriteStore1,
293 WNK::FavoriteStore2 => NamedKey::FavoriteStore2,
294 WNK::FavoriteStore3 => NamedKey::FavoriteStore3,
295 WNK::Guide => NamedKey::Guide,
296 WNK::GuideNextDay => NamedKey::GuideNextDay,
297 WNK::GuidePreviousDay => NamedKey::GuidePreviousDay,
298 WNK::Info => NamedKey::Info,
299 WNK::InstantReplay => NamedKey::InstantReplay,
300 WNK::Link => NamedKey::Link,
301 WNK::ListProgram => NamedKey::ListProgram,
302 WNK::LiveContent => NamedKey::LiveContent,
303 WNK::Lock => NamedKey::Lock,
304 WNK::MediaApps => NamedKey::MediaApps,
305 WNK::MediaAudioTrack => NamedKey::MediaAudioTrack,
306 WNK::MediaLast => NamedKey::MediaLast,
307 WNK::MediaSkipBackward => NamedKey::MediaSkipBackward,
308 WNK::MediaSkipForward => NamedKey::MediaSkipForward,
309 WNK::MediaStepBackward => NamedKey::MediaStepBackward,
310 WNK::MediaStepForward => NamedKey::MediaStepForward,
311 WNK::MediaTopMenu => NamedKey::MediaTopMenu,
312 WNK::NavigateIn => NamedKey::NavigateIn,
313 WNK::NavigateNext => NamedKey::NavigateNext,
314 WNK::NavigateOut => NamedKey::NavigateOut,
315 WNK::NavigatePrevious => NamedKey::NavigatePrevious,
316 WNK::NextFavoriteChannel => NamedKey::NextFavoriteChannel,
317 WNK::NextUserProfile => NamedKey::NextUserProfile,
318 WNK::OnDemand => NamedKey::OnDemand,
319 WNK::Pairing => NamedKey::Pairing,
320 WNK::PinPDown => NamedKey::PinPDown,
321 WNK::PinPMove => NamedKey::PinPMove,
322 WNK::PinPToggle => NamedKey::PinPToggle,
323 WNK::PinPUp => NamedKey::PinPUp,
324 WNK::PlaySpeedDown => NamedKey::PlaySpeedDown,
325 WNK::PlaySpeedReset => NamedKey::PlaySpeedReset,
326 WNK::PlaySpeedUp => NamedKey::PlaySpeedUp,
327 WNK::RandomToggle => NamedKey::RandomToggle,
328 WNK::RcLowBattery => NamedKey::RcLowBattery,
329 WNK::RecordSpeedNext => NamedKey::RecordSpeedNext,
330 WNK::RfBypass => NamedKey::RfBypass,
331 WNK::ScanChannelsToggle => NamedKey::ScanChannelsToggle,
332 WNK::ScreenModeNext => NamedKey::ScreenModeNext,
333 WNK::Settings => NamedKey::Settings,
334 WNK::SplitScreenToggle => NamedKey::SplitScreenToggle,
335 WNK::STBInput => NamedKey::STBInput,
336 WNK::STBPower => NamedKey::STBPower,
337 WNK::Subtitle => NamedKey::Subtitle,
338 WNK::Teletext => NamedKey::Teletext,
339 WNK::VideoModeNext => NamedKey::VideoModeNext,
340 WNK::Wink => NamedKey::Wink,
341 WNK::ZoomToggle => NamedKey::ZoomToggle,
342 WNK::F1 => NamedKey::F1,
343 WNK::F2 => NamedKey::F2,
344 WNK::F3 => NamedKey::F3,
345 WNK::F4 => NamedKey::F4,
346 WNK::F5 => NamedKey::F5,
347 WNK::F6 => NamedKey::F6,
348 WNK::F7 => NamedKey::F7,
349 WNK::F8 => NamedKey::F8,
350 WNK::F9 => NamedKey::F9,
351 WNK::F10 => NamedKey::F10,
352 WNK::F11 => NamedKey::F11,
353 WNK::F12 => NamedKey::F12,
354 WNK::F13 => NamedKey::F13,
355 WNK::F14 => NamedKey::F14,
356 WNK::F15 => NamedKey::F15,
357 WNK::F16 => NamedKey::F16,
358 WNK::F17 => NamedKey::F17,
359 WNK::F18 => NamedKey::F18,
360 WNK::F19 => NamedKey::F19,
361 WNK::F20 => NamedKey::F20,
362 WNK::F21 => NamedKey::F21,
363 WNK::F22 => NamedKey::F22,
364 WNK::F23 => NamedKey::F23,
365 WNK::F24 => NamedKey::F24,
366 WNK::F25 => NamedKey::F25,
367 WNK::F26 => NamedKey::F26,
368 WNK::F27 => NamedKey::F27,
369 WNK::F28 => NamedKey::F28,
370 WNK::F29 => NamedKey::F29,
371 WNK::F30 => NamedKey::F30,
372 WNK::F31 => NamedKey::F31,
373 WNK::F32 => NamedKey::F32,
374 WNK::F33 => NamedKey::F33,
375 WNK::F34 => NamedKey::F34,
376 WNK::F35 => NamedKey::F35,
377 _ => NamedKey::Unidentified,
378 }),
379 }
380}
381
382pub fn from_winit_code(physical_key: winit::keyboard::PhysicalKey) -> Code {
384 use winit::keyboard::KeyCode as KC;
385 use winit::keyboard::PhysicalKey;
386 match physical_key {
387 PhysicalKey::Unidentified(_) => Code::Unidentified,
388 PhysicalKey::Code(key_code) => match key_code {
389 KC::Backquote => Code::Backquote,
392 KC::Backslash => Code::Backslash,
393 KC::BracketLeft => Code::BracketLeft,
394 KC::BracketRight => Code::BracketRight,
395 KC::Comma => Code::Comma,
396 KC::Digit0 => Code::Digit0,
397 KC::Digit1 => Code::Digit1,
398 KC::Digit2 => Code::Digit2,
399 KC::Digit3 => Code::Digit3,
400 KC::Digit4 => Code::Digit4,
401 KC::Digit5 => Code::Digit5,
402 KC::Digit6 => Code::Digit6,
403 KC::Digit7 => Code::Digit7,
404 KC::Digit8 => Code::Digit8,
405 KC::Digit9 => Code::Digit9,
406 KC::Equal => Code::Equal,
407 KC::IntlBackslash => Code::IntlBackslash,
408 KC::IntlRo => Code::IntlRo,
409 KC::IntlYen => Code::IntlYen,
410 KC::KeyA => Code::KeyA,
411 KC::KeyB => Code::KeyB,
412 KC::KeyC => Code::KeyC,
413 KC::KeyD => Code::KeyD,
414 KC::KeyE => Code::KeyE,
415 KC::KeyF => Code::KeyF,
416 KC::KeyG => Code::KeyG,
417 KC::KeyH => Code::KeyH,
418 KC::KeyI => Code::KeyI,
419 KC::KeyJ => Code::KeyJ,
420 KC::KeyK => Code::KeyK,
421 KC::KeyL => Code::KeyL,
422 KC::KeyM => Code::KeyM,
423 KC::KeyN => Code::KeyN,
424 KC::KeyO => Code::KeyO,
425 KC::KeyP => Code::KeyP,
426 KC::KeyQ => Code::KeyQ,
427 KC::KeyR => Code::KeyR,
428 KC::KeyS => Code::KeyS,
429 KC::KeyT => Code::KeyT,
430 KC::KeyU => Code::KeyU,
431 KC::KeyV => Code::KeyV,
432 KC::KeyW => Code::KeyW,
433 KC::KeyX => Code::KeyX,
434 KC::KeyY => Code::KeyY,
435 KC::KeyZ => Code::KeyZ,
436 KC::Minus => Code::Minus,
437 KC::Period => Code::Period,
438 KC::Quote => Code::Quote,
439 KC::Semicolon => Code::Semicolon,
440 KC::Slash => Code::Slash,
441 KC::AltLeft => Code::AltLeft,
442 KC::AltRight => Code::AltRight,
443 KC::Backspace => Code::Backspace,
444 KC::CapsLock => Code::CapsLock,
445 KC::ContextMenu => Code::ContextMenu,
446 KC::ControlLeft => Code::ControlLeft,
447 KC::ControlRight => Code::ControlRight,
448 KC::Enter => Code::Enter,
449 KC::ShiftLeft => Code::ShiftLeft,
450 KC::ShiftRight => Code::ShiftRight,
451 KC::Space => Code::Space,
452 KC::Tab => Code::Tab,
453 KC::Convert => Code::Convert,
454 KC::KanaMode => Code::KanaMode,
455 KC::Lang1 => Code::Lang1,
456 KC::Lang2 => Code::Lang2,
457 KC::Lang3 => Code::Lang3,
458 KC::Lang4 => Code::Lang4,
459 KC::Lang5 => Code::Lang5,
460 KC::NonConvert => Code::NonConvert,
461 KC::Delete => Code::Delete,
462 KC::End => Code::End,
463 KC::Help => Code::Help,
464 KC::Home => Code::Home,
465 KC::Insert => Code::Insert,
466 KC::PageDown => Code::PageDown,
467 KC::PageUp => Code::PageUp,
468 KC::ArrowDown => Code::ArrowDown,
469 KC::ArrowLeft => Code::ArrowLeft,
470 KC::ArrowRight => Code::ArrowRight,
471 KC::ArrowUp => Code::ArrowUp,
472 KC::NumLock => Code::NumLock,
473 KC::Numpad0 => Code::Numpad0,
474 KC::Numpad1 => Code::Numpad1,
475 KC::Numpad2 => Code::Numpad2,
476 KC::Numpad3 => Code::Numpad3,
477 KC::Numpad4 => Code::Numpad4,
478 KC::Numpad5 => Code::Numpad5,
479 KC::Numpad6 => Code::Numpad6,
480 KC::Numpad7 => Code::Numpad7,
481 KC::Numpad8 => Code::Numpad8,
482 KC::Numpad9 => Code::Numpad9,
483 KC::NumpadAdd => Code::NumpadAdd,
484 KC::NumpadBackspace => Code::NumpadBackspace,
485 KC::NumpadClear => Code::NumpadClear,
486 KC::NumpadClearEntry => Code::NumpadClearEntry,
487 KC::NumpadComma => Code::NumpadComma,
488 KC::NumpadDecimal => Code::NumpadDecimal,
489 KC::NumpadDivide => Code::NumpadDivide,
490 KC::NumpadEnter => Code::NumpadEnter,
491 KC::NumpadEqual => Code::NumpadEqual,
492 KC::NumpadHash => Code::NumpadHash,
493 KC::NumpadMemoryAdd => Code::NumpadMemoryAdd,
494 KC::NumpadMemoryClear => Code::NumpadMemoryClear,
495 KC::NumpadMemoryRecall => Code::NumpadMemoryRecall,
496 KC::NumpadMemoryStore => Code::NumpadMemoryStore,
497 KC::NumpadMemorySubtract => Code::NumpadMemorySubtract,
498 KC::NumpadMultiply => Code::NumpadMultiply,
499 KC::NumpadParenLeft => Code::NumpadParenLeft,
500 KC::NumpadParenRight => Code::NumpadParenRight,
501 KC::NumpadStar => Code::NumpadStar,
502 KC::NumpadSubtract => Code::NumpadSubtract,
503 KC::Escape => Code::Escape,
504 KC::Fn => Code::Fn,
505 KC::FnLock => Code::FnLock,
506 KC::PrintScreen => Code::PrintScreen,
507 KC::ScrollLock => Code::ScrollLock,
508 KC::Pause => Code::Pause,
509 KC::BrowserBack => Code::BrowserBack,
510 KC::BrowserFavorites => Code::BrowserFavorites,
511 KC::BrowserForward => Code::BrowserForward,
512 KC::BrowserHome => Code::BrowserHome,
513 KC::BrowserRefresh => Code::BrowserRefresh,
514 KC::BrowserSearch => Code::BrowserSearch,
515 KC::BrowserStop => Code::BrowserStop,
516 KC::Eject => Code::Eject,
517 KC::LaunchApp1 => Code::LaunchApp1,
518 KC::LaunchApp2 => Code::LaunchApp2,
519 KC::LaunchMail => Code::LaunchMail,
520 KC::MediaPlayPause => Code::MediaPlayPause,
521 KC::MediaSelect => Code::MediaSelect,
522 KC::MediaStop => Code::MediaStop,
523 KC::MediaTrackNext => Code::MediaTrackNext,
524 KC::MediaTrackPrevious => Code::MediaTrackPrevious,
525 KC::Power => Code::Power,
526 KC::Sleep => Code::Sleep,
527 KC::AudioVolumeDown => Code::AudioVolumeDown,
528 KC::AudioVolumeMute => Code::AudioVolumeMute,
529 KC::AudioVolumeUp => Code::AudioVolumeUp,
530 KC::WakeUp => Code::WakeUp,
531 #[allow(deprecated)]
532 KC::Hyper => Code::Hyper,
533 #[allow(deprecated)]
534 KC::Turbo => Code::Turbo,
535 KC::Abort => Code::Abort,
536 KC::Resume => Code::Resume,
537 KC::Suspend => Code::Suspend,
538 KC::Again => Code::Again,
539 KC::Copy => Code::Copy,
540 KC::Cut => Code::Cut,
541 KC::Find => Code::Find,
542 KC::Open => Code::Open,
543 KC::Paste => Code::Paste,
544 KC::Props => Code::Props,
545 KC::Select => Code::Select,
546 KC::Undo => Code::Undo,
547 KC::Hiragana => Code::Hiragana,
548 KC::Katakana => Code::Katakana,
549 KC::F1 => Code::F1,
550 KC::F2 => Code::F2,
551 KC::F3 => Code::F3,
552 KC::F4 => Code::F4,
553 KC::F5 => Code::F5,
554 KC::F6 => Code::F6,
555 KC::F7 => Code::F7,
556 KC::F8 => Code::F8,
557 KC::F9 => Code::F9,
558 KC::F10 => Code::F10,
559 KC::F11 => Code::F11,
560 KC::F12 => Code::F12,
561 KC::F13 => Code::F13,
562 KC::F14 => Code::F14,
563 KC::F15 => Code::F15,
564 KC::F16 => Code::F16,
565 KC::F17 => Code::F17,
566 KC::F18 => Code::F18,
567 KC::F19 => Code::F19,
568 KC::F20 => Code::F20,
569 KC::F21 => Code::F21,
570 KC::F22 => Code::F22,
571 KC::F23 => Code::F23,
572 KC::F24 => Code::F24,
573 KC::F25 => Code::F25,
574 KC::F26 => Code::F26,
575 KC::F27 => Code::F27,
576 KC::F28 => Code::F28,
577 KC::F29 => Code::F29,
578 KC::F30 => Code::F30,
579 KC::F31 => Code::F31,
580 KC::F32 => Code::F32,
581 KC::F33 => Code::F33,
582 KC::F34 => Code::F34,
583 KC::F35 => Code::F35,
584 _ => Code::Unidentified,
585 },
586 }
587}