diff --git a/core/src/events.rs b/core/src/events.rs index 05861e4ce100..f6e11a12b6cf 100644 --- a/core/src/events.rs +++ b/core/src/events.rs @@ -743,6 +743,26 @@ impl ButtonKeyCode { num_traits::FromPrimitive::from_u8(n) } + pub fn from_key_code(key_code: KeyCode) -> Option { + Some(match key_code { + KeyCode::LEFT => ButtonKeyCode::Left, + KeyCode::RIGHT => ButtonKeyCode::Right, + KeyCode::HOME => ButtonKeyCode::Home, + KeyCode::END => ButtonKeyCode::End, + KeyCode::INSERT => ButtonKeyCode::Insert, + KeyCode::DELETE => ButtonKeyCode::Delete, + KeyCode::BACKSPACE => ButtonKeyCode::Backspace, + KeyCode::RETURN => ButtonKeyCode::Return, + KeyCode::UP => ButtonKeyCode::Up, + KeyCode::DOWN => ButtonKeyCode::Down, + KeyCode::PG_UP => ButtonKeyCode::PgUp, + KeyCode::PG_DOWN => ButtonKeyCode::PgDown, + KeyCode::ESCAPE => ButtonKeyCode::Escape, + KeyCode::TAB => ButtonKeyCode::Tab, + _ => return None, + }) + } + pub fn from_player_event(event: PlayerEvent) -> Option { match event { // ASCII characters convert directly to keyPress button events. @@ -753,9 +773,7 @@ impl ButtonKeyCode { } // Special keys have custom values for keyPress. - PlayerEvent::KeyDown { key_code, .. } => { - crate::events::key_code_to_button_key_code(key_code) - } + PlayerEvent::KeyDown { key_code, .. } => Self::from_key_code(key_code), _ => None, } } @@ -765,27 +783,6 @@ impl ButtonKeyCode { } } -pub fn key_code_to_button_key_code(key_code: KeyCode) -> Option { - let out = match key_code { - KeyCode::LEFT => ButtonKeyCode::Left, - KeyCode::RIGHT => ButtonKeyCode::Right, - KeyCode::HOME => ButtonKeyCode::Home, - KeyCode::END => ButtonKeyCode::End, - KeyCode::INSERT => ButtonKeyCode::Insert, - KeyCode::DELETE => ButtonKeyCode::Delete, - KeyCode::BACKSPACE => ButtonKeyCode::Backspace, - KeyCode::RETURN => ButtonKeyCode::Return, - KeyCode::UP => ButtonKeyCode::Up, - KeyCode::DOWN => ButtonKeyCode::Down, - KeyCode::PG_UP => ButtonKeyCode::PgUp, - KeyCode::PG_DOWN => ButtonKeyCode::PgDown, - KeyCode::ESCAPE => ButtonKeyCode::Escape, - KeyCode::TAB => ButtonKeyCode::Tab, - _ => return None, - }; - Some(out) -} - #[cfg_attr(feature = "clap", derive(clap::ValueEnum))] #[derive(Debug, PartialEq, Eq, Copy, Clone, Hash)] pub enum GamepadButton {