use crate::*;
pub fn mouse_wheel() -> (f32, f32) {
GLOBAL_STATE.borrow().mouse_wheel
}
pub fn is_mouse_button_down(button: MouseButton) -> bool {
GLOBAL_STATE.borrow().mouse_pressed.contains(&button)
}
pub fn is_mouse_button_pressed(button: MouseButton) -> bool {
GLOBAL_STATE.borrow().mouse_just_pressed.contains(&button)
}
pub fn is_mouse_button_released(button: MouseButton) -> bool {
GLOBAL_STATE.borrow().mouse_just_released.contains(&button)
}
pub fn is_key_pressed(keycode: KeyCode) -> bool {
GLOBAL_STATE.borrow().just_pressed.contains(&keycode)
}
pub fn is_key_released(keycode: KeyCode) -> bool {
GLOBAL_STATE.borrow().just_released.contains(&keycode)
}
pub fn is_key_down(keycode: KeyCode) -> bool {
GLOBAL_STATE.borrow().pressed.contains(&keycode)
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)]
pub enum MouseButton {
Left,
Right,
Middle,
Other(u16),
}
#[allow(dead_code)]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
pub enum KeyCode {
Backspace,
Tab,
Return,
Escape,
Space,
Exclaim,
Quotedbl,
Hash,
Dollar,
Percent,
Ampersand,
Quote,
LeftParen,
RightParen,
Asterisk,
Plus,
Comma,
Minus,
Period,
Slash,
Num0,
Num1,
Num2,
Num3,
Num4,
Num5,
Num6,
Num7,
Num8,
Num9,
Colon,
Semicolon,
Less,
Equals,
Greater,
Question,
At,
LeftBracket,
Backslash,
RightBracket,
Caret,
Underscore,
Backquote,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
Delete,
CapsLock,
F1,
F2,
F3,
F4,
F5,
F6,
F7,
F8,
F9,
F10,
F11,
F12,
PrintScreen,
ScrollLock,
Pause,
Insert,
Home,
PageUp,
End,
PageDown,
Right,
Left,
Down,
Up,
NumLockClear,
KpDivide,
KpMultiply,
KpMinus,
KpPlus,
KpEnter,
Kp1,
Kp2,
Kp3,
Kp4,
Kp5,
Kp6,
Kp7,
Kp8,
Kp9,
Kp0,
KpPeriod,
Application,
Power,
KpEquals,
F13,
F14,
F15,
F16,
F17,
F18,
F19,
F20,
F21,
F22,
F23,
F24,
Execute,
Help,
Menu,
Select,
Stop,
Again,
Undo,
Cut,
Copy,
Paste,
Find,
Mute,
VolumeUp,
VolumeDown,
KpComma,
KpEqualsAS400,
AltErase,
Sysreq,
Cancel,
Clear,
Prior,
Return2,
Separator,
Out,
Oper,
ClearAgain,
CrSel,
ExSel,
Kp00,
Kp000,
ThousandsSeparator,
DecimalSeparator,
CurrencyUnit,
CurrencySubUnit,
KpLeftParen,
KpRightParen,
KpLeftBrace,
KpRightBrace,
KpTab,
KpBackspace,
KpA,
KpB,
KpC,
KpD,
KpE,
KpF,
KpXor,
KpPower,
KpPercent,
KpLess,
KpGreater,
KpAmpersand,
KpDblAmpersand,
KpVerticalBar,
KpDblVerticalBar,
KpColon,
KpHash,
KpSpace,
KpAt,
KpExclam,
KpMemStore,
KpMemRecall,
KpMemClear,
KpMemAdd,
KpMemSubtract,
KpMemMultiply,
KpMemDivide,
KpPlusMinus,
KpClear,
KpClearEntry,
KpBinary,
KpOctal,
KpDecimal,
KpHexadecimal,
LCtrl,
LShift,
LAlt,
LGui,
RCtrl,
RShift,
RAlt,
RGui,
Mode,
AudioNext,
AudioPrev,
AudioStop,
AudioPlay,
AudioMute,
MediaSelect,
Www,
Mail,
Calculator,
Computer,
AcSearch,
AcHome,
AcBack,
AcForward,
AcStop,
AcRefresh,
AcBookmarks,
BrightnessDown,
BrightnessUp,
DisplaySwitch,
KbdIllumToggle,
KbdIllumDown,
KbdIllumUp,
Eject,
Sleep,
}
#[rustfmt::skip]
impl KeyCode {
pub fn try_from_winit(code: VirtualKeyCode) -> Option<KeyCode> {
match code {
winit::event::VirtualKeyCode::A => Some(KeyCode::A),
winit::event::VirtualKeyCode::B => Some(KeyCode::B),
winit::event::VirtualKeyCode::C => Some(KeyCode::C),
winit::event::VirtualKeyCode::D => Some(KeyCode::D),
winit::event::VirtualKeyCode::E => Some(KeyCode::E),
winit::event::VirtualKeyCode::F => Some(KeyCode::F),
winit::event::VirtualKeyCode::G => Some(KeyCode::G),
winit::event::VirtualKeyCode::H => Some(KeyCode::H),
winit::event::VirtualKeyCode::I => Some(KeyCode::I),
winit::event::VirtualKeyCode::J => Some(KeyCode::J),
winit::event::VirtualKeyCode::K => Some(KeyCode::K),
winit::event::VirtualKeyCode::L => Some(KeyCode::L),
winit::event::VirtualKeyCode::M => Some(KeyCode::M),
winit::event::VirtualKeyCode::N => Some(KeyCode::N),
winit::event::VirtualKeyCode::O => Some(KeyCode::O),
winit::event::VirtualKeyCode::P => Some(KeyCode::P),
winit::event::VirtualKeyCode::Q => Some(KeyCode::Q),
winit::event::VirtualKeyCode::R => Some(KeyCode::R),
winit::event::VirtualKeyCode::S => Some(KeyCode::S),
winit::event::VirtualKeyCode::T => Some(KeyCode::T),
winit::event::VirtualKeyCode::U => Some(KeyCode::U),
winit::event::VirtualKeyCode::V => Some(KeyCode::V),
winit::event::VirtualKeyCode::W => Some(KeyCode::W),
winit::event::VirtualKeyCode::X => Some(KeyCode::X),
winit::event::VirtualKeyCode::Y => Some(KeyCode::Y),
winit::event::VirtualKeyCode::Z => Some(KeyCode::Z),
winit::event::VirtualKeyCode::Grave => Some(KeyCode::Backquote),
winit::event::VirtualKeyCode::Tab => Some(KeyCode::Tab),
winit::event::VirtualKeyCode::Return => Some(KeyCode::Return),
winit::event::VirtualKeyCode::Escape => Some(KeyCode::Escape),
winit::event::VirtualKeyCode::Space => Some(KeyCode::Space),
winit::event::VirtualKeyCode::Plus => Some(KeyCode::Plus),
winit::event::VirtualKeyCode::Comma => Some(KeyCode::Comma),
winit::event::VirtualKeyCode::Minus => Some(KeyCode::Minus),
winit::event::VirtualKeyCode::Period => Some(KeyCode::Period),
winit::event::VirtualKeyCode::Slash => Some(KeyCode::Slash),
winit::event::VirtualKeyCode::Key0 => Some(KeyCode::Num0),
winit::event::VirtualKeyCode::Key1 => Some(KeyCode::Num1),
winit::event::VirtualKeyCode::Key2 => Some(KeyCode::Num2),
winit::event::VirtualKeyCode::Key3 => Some(KeyCode::Num3),
winit::event::VirtualKeyCode::Key4 => Some(KeyCode::Num4),
winit::event::VirtualKeyCode::Key5 => Some(KeyCode::Num5),
winit::event::VirtualKeyCode::Key6 => Some(KeyCode::Num6),
winit::event::VirtualKeyCode::Key7 => Some(KeyCode::Num7),
winit::event::VirtualKeyCode::Key8 => Some(KeyCode::Num8),
winit::event::VirtualKeyCode::Key9 => Some(KeyCode::Num9),
winit::event::VirtualKeyCode::Colon => Some(KeyCode::Colon),
winit::event::VirtualKeyCode::Semicolon => Some(KeyCode::Semicolon),
winit::event::VirtualKeyCode::Equals => Some(KeyCode::Equals),
winit::event::VirtualKeyCode::At => Some(KeyCode::At),
winit::event::VirtualKeyCode::Backslash => Some(KeyCode::Backslash),
winit::event::VirtualKeyCode::Caret => Some(KeyCode::Caret),
winit::event::VirtualKeyCode::Delete => Some(KeyCode::Delete),
winit::event::VirtualKeyCode::F1 => Some(KeyCode::F1),
winit::event::VirtualKeyCode::F2 => Some(KeyCode::F2),
winit::event::VirtualKeyCode::F3 => Some(KeyCode::F3),
winit::event::VirtualKeyCode::F4 => Some(KeyCode::F4),
winit::event::VirtualKeyCode::F5 => Some(KeyCode::F5),
winit::event::VirtualKeyCode::F6 => Some(KeyCode::F6),
winit::event::VirtualKeyCode::F7 => Some(KeyCode::F7),
winit::event::VirtualKeyCode::F8 => Some(KeyCode::F8),
winit::event::VirtualKeyCode::F9 => Some(KeyCode::F9),
winit::event::VirtualKeyCode::F10 => Some(KeyCode::F10),
winit::event::VirtualKeyCode::F11 => Some(KeyCode::F11),
winit::event::VirtualKeyCode::F12 => Some(KeyCode::F12),
winit::event::VirtualKeyCode::Pause => Some(KeyCode::Pause),
winit::event::VirtualKeyCode::Insert => Some(KeyCode::Insert),
winit::event::VirtualKeyCode::Home => Some(KeyCode::Home),
winit::event::VirtualKeyCode::PageUp => Some(KeyCode::PageUp),
winit::event::VirtualKeyCode::End => Some(KeyCode::End),
winit::event::VirtualKeyCode::PageDown => Some(KeyCode::PageDown),
winit::event::VirtualKeyCode::Right => Some(KeyCode::Right),
winit::event::VirtualKeyCode::Left => Some(KeyCode::Left),
winit::event::VirtualKeyCode::Down => Some(KeyCode::Down),
winit::event::VirtualKeyCode::Up => Some(KeyCode::Up),
winit::event::VirtualKeyCode::Power => Some(KeyCode::Power),
winit::event::VirtualKeyCode::F13 => Some(KeyCode::F13),
winit::event::VirtualKeyCode::F14 => Some(KeyCode::F14),
winit::event::VirtualKeyCode::F15 => Some(KeyCode::F15),
winit::event::VirtualKeyCode::F16 => Some(KeyCode::F16),
winit::event::VirtualKeyCode::F17 => Some(KeyCode::F17),
winit::event::VirtualKeyCode::F18 => Some(KeyCode::F18),
winit::event::VirtualKeyCode::F19 => Some(KeyCode::F19),
winit::event::VirtualKeyCode::F20 => Some(KeyCode::F20),
winit::event::VirtualKeyCode::F21 => Some(KeyCode::F21),
winit::event::VirtualKeyCode::F22 => Some(KeyCode::F22),
winit::event::VirtualKeyCode::F23 => Some(KeyCode::F23),
winit::event::VirtualKeyCode::F24 => Some(KeyCode::F24),
winit::event::VirtualKeyCode::Stop => Some(KeyCode::Stop),
winit::event::VirtualKeyCode::Cut => Some(KeyCode::Cut),
winit::event::VirtualKeyCode::Copy => Some(KeyCode::Copy),
winit::event::VirtualKeyCode::Paste => Some(KeyCode::Paste),
winit::event::VirtualKeyCode::Mute => Some(KeyCode::Mute),
winit::event::VirtualKeyCode::VolumeUp => Some(KeyCode::VolumeUp),
winit::event::VirtualKeyCode::VolumeDown => Some(KeyCode::VolumeDown),
winit::event::VirtualKeyCode::LControl => Some(KeyCode::LCtrl),
winit::event::VirtualKeyCode::LShift => Some(KeyCode::LShift),
winit::event::VirtualKeyCode::LAlt => Some(KeyCode::LAlt),
winit::event::VirtualKeyCode::LWin => Some(KeyCode::LGui),
winit::event::VirtualKeyCode::RControl => Some(KeyCode::RCtrl),
winit::event::VirtualKeyCode::RShift => Some(KeyCode::RShift),
winit::event::VirtualKeyCode::RAlt => Some(KeyCode::RAlt),
winit::event::VirtualKeyCode::RWin => Some(KeyCode::RGui),
_ => None,
}
}
#[cfg(feature = "use-glow")]
pub fn try_from_sdl(code: sdl2::keyboard::Keycode) -> Option<KeyCode> {
match code {
sdl2::keyboard::Keycode::A => Some(KeyCode::A),
sdl2::keyboard::Keycode::B => Some(KeyCode::B),
sdl2::keyboard::Keycode::C => Some(KeyCode::C),
sdl2::keyboard::Keycode::D => Some(KeyCode::D),
sdl2::keyboard::Keycode::E => Some(KeyCode::E),
sdl2::keyboard::Keycode::F => Some(KeyCode::F),
sdl2::keyboard::Keycode::G => Some(KeyCode::G),
sdl2::keyboard::Keycode::H => Some(KeyCode::H),
sdl2::keyboard::Keycode::I => Some(KeyCode::I),
sdl2::keyboard::Keycode::J => Some(KeyCode::J),
sdl2::keyboard::Keycode::K => Some(KeyCode::K),
sdl2::keyboard::Keycode::L => Some(KeyCode::L),
sdl2::keyboard::Keycode::M => Some(KeyCode::M),
sdl2::keyboard::Keycode::N => Some(KeyCode::N),
sdl2::keyboard::Keycode::O => Some(KeyCode::O),
sdl2::keyboard::Keycode::P => Some(KeyCode::P),
sdl2::keyboard::Keycode::Q => Some(KeyCode::Q),
sdl2::keyboard::Keycode::R => Some(KeyCode::R),
sdl2::keyboard::Keycode::S => Some(KeyCode::S),
sdl2::keyboard::Keycode::T => Some(KeyCode::T),
sdl2::keyboard::Keycode::U => Some(KeyCode::U),
sdl2::keyboard::Keycode::V => Some(KeyCode::V),
sdl2::keyboard::Keycode::W => Some(KeyCode::W),
sdl2::keyboard::Keycode::X => Some(KeyCode::X),
sdl2::keyboard::Keycode::Y => Some(KeyCode::Y),
sdl2::keyboard::Keycode::Z => Some(KeyCode::Z),
sdl2::keyboard::Keycode::Backspace => Some(KeyCode::Backspace),
sdl2::keyboard::Keycode::Tab => Some(KeyCode::Tab),
sdl2::keyboard::Keycode::Return => Some(KeyCode::Return),
sdl2::keyboard::Keycode::Escape => Some(KeyCode::Escape),
sdl2::keyboard::Keycode::Space => Some(KeyCode::Space),
sdl2::keyboard::Keycode::Exclaim => Some(KeyCode::Exclaim),
sdl2::keyboard::Keycode::Quotedbl => Some(KeyCode::Quotedbl),
sdl2::keyboard::Keycode::Hash => Some(KeyCode::Hash),
sdl2::keyboard::Keycode::Dollar => Some(KeyCode::Dollar),
sdl2::keyboard::Keycode::Percent => Some(KeyCode::Percent),
sdl2::keyboard::Keycode::Ampersand => Some(KeyCode::Ampersand),
sdl2::keyboard::Keycode::Quote => Some(KeyCode::Quote),
sdl2::keyboard::Keycode::LeftParen => Some(KeyCode::LeftParen),
sdl2::keyboard::Keycode::RightParen => Some(KeyCode::RightParen),
sdl2::keyboard::Keycode::Asterisk => Some(KeyCode::Asterisk),
sdl2::keyboard::Keycode::Plus => Some(KeyCode::Plus),
sdl2::keyboard::Keycode::Comma => Some(KeyCode::Comma),
sdl2::keyboard::Keycode::Minus => Some(KeyCode::Minus),
sdl2::keyboard::Keycode::Period => Some(KeyCode::Period),
sdl2::keyboard::Keycode::Slash => Some(KeyCode::Slash),
sdl2::keyboard::Keycode::Num0 => Some(KeyCode::Num0),
sdl2::keyboard::Keycode::Num1 => Some(KeyCode::Num1),
sdl2::keyboard::Keycode::Num2 => Some(KeyCode::Num2),
sdl2::keyboard::Keycode::Num3 => Some(KeyCode::Num3),
sdl2::keyboard::Keycode::Num4 => Some(KeyCode::Num4),
sdl2::keyboard::Keycode::Num5 => Some(KeyCode::Num5),
sdl2::keyboard::Keycode::Num6 => Some(KeyCode::Num6),
sdl2::keyboard::Keycode::Num7 => Some(KeyCode::Num7),
sdl2::keyboard::Keycode::Num8 => Some(KeyCode::Num8),
sdl2::keyboard::Keycode::Num9 => Some(KeyCode::Num9),
sdl2::keyboard::Keycode::Colon => Some(KeyCode::Colon),
sdl2::keyboard::Keycode::Semicolon => Some(KeyCode::Semicolon),
sdl2::keyboard::Keycode::Less => Some(KeyCode::Less),
sdl2::keyboard::Keycode::Equals => Some(KeyCode::Equals),
sdl2::keyboard::Keycode::Greater => Some(KeyCode::Greater),
sdl2::keyboard::Keycode::Question => Some(KeyCode::Question),
sdl2::keyboard::Keycode::At => Some(KeyCode::At),
sdl2::keyboard::Keycode::LeftBracket => Some(KeyCode::LeftBracket),
sdl2::keyboard::Keycode::Backslash => Some(KeyCode::Backslash),
sdl2::keyboard::Keycode::RightBracket => { Some(KeyCode::RightBracket) }
sdl2::keyboard::Keycode::Caret => Some(KeyCode::Caret),
sdl2::keyboard::Keycode::Underscore => Some(KeyCode::Underscore),
sdl2::keyboard::Keycode::Backquote => Some(KeyCode::Backquote),
sdl2::keyboard::Keycode::Delete => Some(KeyCode::Delete),
sdl2::keyboard::Keycode::CapsLock => Some(KeyCode::CapsLock),
sdl2::keyboard::Keycode::F1 => Some(KeyCode::F1),
sdl2::keyboard::Keycode::F2 => Some(KeyCode::F2),
sdl2::keyboard::Keycode::F3 => Some(KeyCode::F3),
sdl2::keyboard::Keycode::F4 => Some(KeyCode::F4),
sdl2::keyboard::Keycode::F5 => Some(KeyCode::F5),
sdl2::keyboard::Keycode::F6 => Some(KeyCode::F6),
sdl2::keyboard::Keycode::F7 => Some(KeyCode::F7),
sdl2::keyboard::Keycode::F8 => Some(KeyCode::F8),
sdl2::keyboard::Keycode::F9 => Some(KeyCode::F9),
sdl2::keyboard::Keycode::F10 => Some(KeyCode::F10),
sdl2::keyboard::Keycode::F11 => Some(KeyCode::F11),
sdl2::keyboard::Keycode::F12 => Some(KeyCode::F12),
sdl2::keyboard::Keycode::PrintScreen => Some(KeyCode::PrintScreen),
sdl2::keyboard::Keycode::ScrollLock => Some(KeyCode::ScrollLock),
sdl2::keyboard::Keycode::Pause => Some(KeyCode::Pause),
sdl2::keyboard::Keycode::Insert => Some(KeyCode::Insert),
sdl2::keyboard::Keycode::Home => Some(KeyCode::Home),
sdl2::keyboard::Keycode::PageUp => Some(KeyCode::PageUp),
sdl2::keyboard::Keycode::End => Some(KeyCode::End),
sdl2::keyboard::Keycode::PageDown => Some(KeyCode::PageDown),
sdl2::keyboard::Keycode::Right => Some(KeyCode::Right),
sdl2::keyboard::Keycode::Left => Some(KeyCode::Left),
sdl2::keyboard::Keycode::Down => Some(KeyCode::Down),
sdl2::keyboard::Keycode::Up => Some(KeyCode::Up),
sdl2::keyboard::Keycode::NumLockClear => { Some(KeyCode::NumLockClear) }
sdl2::keyboard::Keycode::KpDivide => Some(KeyCode::KpDivide),
sdl2::keyboard::Keycode::KpMultiply => Some(KeyCode::KpMultiply),
sdl2::keyboard::Keycode::KpMinus => Some(KeyCode::KpMinus),
sdl2::keyboard::Keycode::KpPlus => Some(KeyCode::KpPlus),
sdl2::keyboard::Keycode::KpEnter => Some(KeyCode::KpEnter),
sdl2::keyboard::Keycode::Kp1 => Some(KeyCode::Kp1),
sdl2::keyboard::Keycode::Kp2 => Some(KeyCode::Kp2),
sdl2::keyboard::Keycode::Kp3 => Some(KeyCode::Kp3),
sdl2::keyboard::Keycode::Kp4 => Some(KeyCode::Kp4),
sdl2::keyboard::Keycode::Kp5 => Some(KeyCode::Kp5),
sdl2::keyboard::Keycode::Kp6 => Some(KeyCode::Kp6),
sdl2::keyboard::Keycode::Kp7 => Some(KeyCode::Kp7),
sdl2::keyboard::Keycode::Kp8 => Some(KeyCode::Kp8),
sdl2::keyboard::Keycode::Kp9 => Some(KeyCode::Kp9),
sdl2::keyboard::Keycode::Kp0 => Some(KeyCode::Kp0),
sdl2::keyboard::Keycode::KpPeriod => Some(KeyCode::KpPeriod),
sdl2::keyboard::Keycode::Application => Some(KeyCode::Application),
sdl2::keyboard::Keycode::Power => Some(KeyCode::Power),
sdl2::keyboard::Keycode::KpEquals => Some(KeyCode::KpEquals),
sdl2::keyboard::Keycode::F13 => Some(KeyCode::F13),
sdl2::keyboard::Keycode::F14 => Some(KeyCode::F14),
sdl2::keyboard::Keycode::F15 => Some(KeyCode::F15),
sdl2::keyboard::Keycode::F16 => Some(KeyCode::F16),
sdl2::keyboard::Keycode::F17 => Some(KeyCode::F17),
sdl2::keyboard::Keycode::F18 => Some(KeyCode::F18),
sdl2::keyboard::Keycode::F19 => Some(KeyCode::F19),
sdl2::keyboard::Keycode::F20 => Some(KeyCode::F20),
sdl2::keyboard::Keycode::F21 => Some(KeyCode::F21),
sdl2::keyboard::Keycode::F22 => Some(KeyCode::F22),
sdl2::keyboard::Keycode::F23 => Some(KeyCode::F23),
sdl2::keyboard::Keycode::F24 => Some(KeyCode::F24),
sdl2::keyboard::Keycode::Execute => Some(KeyCode::Execute),
sdl2::keyboard::Keycode::Help => Some(KeyCode::Help),
sdl2::keyboard::Keycode::Menu => Some(KeyCode::Menu),
sdl2::keyboard::Keycode::Select => Some(KeyCode::Select),
sdl2::keyboard::Keycode::Stop => Some(KeyCode::Stop),
sdl2::keyboard::Keycode::Again => Some(KeyCode::Again),
sdl2::keyboard::Keycode::Undo => Some(KeyCode::Undo),
sdl2::keyboard::Keycode::Cut => Some(KeyCode::Cut),
sdl2::keyboard::Keycode::Copy => Some(KeyCode::Copy),
sdl2::keyboard::Keycode::Paste => Some(KeyCode::Paste),
sdl2::keyboard::Keycode::Find => Some(KeyCode::Find),
sdl2::keyboard::Keycode::Mute => Some(KeyCode::Mute),
sdl2::keyboard::Keycode::VolumeUp => Some(KeyCode::VolumeUp),
sdl2::keyboard::Keycode::VolumeDown => Some(KeyCode::VolumeDown),
sdl2::keyboard::Keycode::KpComma => Some(KeyCode::KpComma),
sdl2::keyboard::Keycode::Sysreq => Some(KeyCode::Sysreq),
sdl2::keyboard::Keycode::Cancel => Some(KeyCode::Cancel),
sdl2::keyboard::Keycode::Clear => Some(KeyCode::Clear),
sdl2::keyboard::Keycode::Prior => Some(KeyCode::Prior),
sdl2::keyboard::Keycode::Return2 => Some(KeyCode::Return2),
sdl2::keyboard::Keycode::Separator => Some(KeyCode::Separator),
sdl2::keyboard::Keycode::Out => Some(KeyCode::Out),
sdl2::keyboard::Keycode::Oper => Some(KeyCode::Oper),
sdl2::keyboard::Keycode::ExSel => Some(KeyCode::ExSel),
sdl2::keyboard::Keycode::Kp00 => Some(KeyCode::Kp00),
sdl2::keyboard::Keycode::Kp000 => Some(KeyCode::Kp000),
sdl2::keyboard::Keycode::ThousandsSeparator => { Some(KeyCode::ThousandsSeparator) }
sdl2::keyboard::Keycode::DecimalSeparator => { Some(KeyCode::DecimalSeparator) }
sdl2::keyboard::Keycode::CurrencyUnit => { Some(KeyCode::CurrencyUnit) }
sdl2::keyboard::Keycode::CurrencySubUnit => { Some(KeyCode::CurrencySubUnit) }
sdl2::keyboard::Keycode::KpLeftParen => Some(KeyCode::KpLeftParen),
sdl2::keyboard::Keycode::KpRightParen => { Some(KeyCode::KpRightParen) }
sdl2::keyboard::Keycode::KpLeftBrace => Some(KeyCode::KpLeftBrace),
sdl2::keyboard::Keycode::KpRightBrace => { Some(KeyCode::KpRightBrace) }
sdl2::keyboard::Keycode::KpTab => Some(KeyCode::KpTab),
sdl2::keyboard::Keycode::KpBackspace => Some(KeyCode::KpBackspace),
sdl2::keyboard::Keycode::LCtrl => Some(KeyCode::LCtrl),
sdl2::keyboard::Keycode::LShift => Some(KeyCode::LShift),
sdl2::keyboard::Keycode::LAlt => Some(KeyCode::LAlt),
sdl2::keyboard::Keycode::LGui => Some(KeyCode::LGui),
sdl2::keyboard::Keycode::RCtrl => Some(KeyCode::RCtrl),
sdl2::keyboard::Keycode::RShift => Some(KeyCode::RShift),
sdl2::keyboard::Keycode::RAlt => Some(KeyCode::RAlt),
sdl2::keyboard::Keycode::RGui => Some(KeyCode::RGui),
sdl2::keyboard::Keycode::Mode => Some(KeyCode::Mode),
_ => None,
}
}
}