Map Win32 virtual key code to Bloom key code.
(vk: u32)
| 13 | |
| 14 | /// Map Win32 virtual key code to Bloom key code. |
| 15 | fn map_keycode(vk: u32) -> usize { |
| 16 | match vk { |
| 17 | 0x41..=0x5A => vk as usize, // A-Z map directly (65-90) |
| 18 | 0x30..=0x39 => vk as usize, // 0-9 map directly (48-57) |
| 19 | 0x70..=0x7B => (vk - 0x70 + 112) as usize, // F1-F12 |
| 20 | 0x26 => 256, // VK_UP |
| 21 | 0x28 => 257, // VK_DOWN |
| 22 | 0x25 => 258, // VK_LEFT |
| 23 | 0x27 => 259, // VK_RIGHT |
| 24 | 0x20 => 32, // VK_SPACE |
| 25 | 0x0D => 265, // VK_RETURN → Bloom ENTER |
| 26 | 0x1B => 27, // VK_ESCAPE |
| 27 | 0x09 => 9, // VK_TAB |
| 28 | 0x08 => 8, // VK_BACK |
| 29 | 0x2E => 127, // VK_DELETE |
| 30 | 0x2D => 260, // VK_INSERT |
| 31 | 0x24 => 261, // VK_HOME |
| 32 | 0x23 => 262, // VK_END |
| 33 | 0x21 => 263, // VK_PRIOR (Page Up) |
| 34 | 0x22 => 264, // VK_NEXT (Page Down) |
| 35 | 0xA0 => 280, // VK_LSHIFT |
| 36 | 0xA1 => 281, // VK_RSHIFT |
| 37 | 0xA2 => 282, // VK_LCONTROL |
| 38 | 0xA3 => 283, // VK_RCONTROL |
| 39 | 0xA4 => 284, // VK_LMENU (Left Alt) |
| 40 | 0xA5 => 285, // VK_RMENU (Right Alt) |
| 41 | 0x5B => 286, // VK_LWIN |
| 42 | 0x5C => 287, // VK_RWIN |
| 43 | _ => 0, |
| 44 | } |
| 45 | } |
| 46 | |
| 47 | // Win32 windowing implementation |
| 48 | #[cfg(windows)] |