telar_platform_winit/
map.rs1use winit::event::{Modifiers, MouseButton as WinitMouseButton};
2use winit::keyboard::NamedKey as WinitNamedKey;
3
4pub fn map_named_key(key: WinitNamedKey) -> Option<platform_core::NamedKey> {
7 let nk = match key {
8 WinitNamedKey::Enter => platform_core::NamedKey::Enter,
9 WinitNamedKey::Backspace => platform_core::NamedKey::Backspace,
10 WinitNamedKey::Escape => platform_core::NamedKey::Escape,
11 WinitNamedKey::Tab => platform_core::NamedKey::Tab,
12 WinitNamedKey::Delete => platform_core::NamedKey::Delete,
13 WinitNamedKey::Home => platform_core::NamedKey::Home,
14 WinitNamedKey::End => platform_core::NamedKey::End,
15 WinitNamedKey::PageUp => platform_core::NamedKey::PageUp,
16 WinitNamedKey::PageDown => platform_core::NamedKey::PageDown,
17 WinitNamedKey::ArrowUp => platform_core::NamedKey::ArrowUp,
18 WinitNamedKey::ArrowDown => platform_core::NamedKey::ArrowDown,
19 WinitNamedKey::ArrowLeft => platform_core::NamedKey::ArrowLeft,
20 WinitNamedKey::ArrowRight => platform_core::NamedKey::ArrowRight,
21 WinitNamedKey::F1 => platform_core::NamedKey::F1,
22 WinitNamedKey::F2 => platform_core::NamedKey::F2,
23 WinitNamedKey::F3 => platform_core::NamedKey::F3,
24 WinitNamedKey::F4 => platform_core::NamedKey::F4,
25 WinitNamedKey::F5 => platform_core::NamedKey::F5,
26 WinitNamedKey::F6 => platform_core::NamedKey::F6,
27 WinitNamedKey::F7 => platform_core::NamedKey::F7,
28 WinitNamedKey::F8 => platform_core::NamedKey::F8,
29 WinitNamedKey::F9 => platform_core::NamedKey::F9,
30 WinitNamedKey::F10 => platform_core::NamedKey::F10,
31 WinitNamedKey::F11 => platform_core::NamedKey::F11,
32 WinitNamedKey::F12 => platform_core::NamedKey::F12,
33 WinitNamedKey::Space => platform_core::NamedKey::Space,
34 WinitNamedKey::Insert => platform_core::NamedKey::Insert,
35 WinitNamedKey::CapsLock => platform_core::NamedKey::CapsLock,
36 _ => return None,
37 };
38 Some(nk)
39}
40
41pub fn map_mouse_button(button: WinitMouseButton) -> Option<platform_core::PointerButton> {
42 match button {
43 WinitMouseButton::Left => Some(platform_core::PointerButton::Primary),
44 WinitMouseButton::Right => Some(platform_core::PointerButton::Secondary),
45 WinitMouseButton::Middle => Some(platform_core::PointerButton::Auxiliary),
46 _ => None,
47 }
48}
49
50pub fn map_modifiers(mods: &Modifiers) -> platform_core::ModifiersState {
51 platform_core::ModifiersState {
52 is_shift: mods.state().shift_key(),
53 is_ctrl: mods.state().control_key(),
54 is_alt: mods.state().alt_key(),
55 is_meta: mods.state().super_key(),
56 }
57}