summaryrefslogtreecommitdiff
path: root/src/win.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/win.rs')
-rw-r--r--src/win.rs85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/win.rs b/src/win.rs
index 146ba54..5a30dc5 100644
--- a/src/win.rs
+++ b/src/win.rs
@@ -76,10 +76,24 @@ pub enum Key {
NumPad7,
NumPad8,
NumPad9,
+ NumPadPeriod,
+ NumPadPlus,
+ NumPadMinus,
+ NumPadDivide,
+ NumPadMultiply,
+ NumPadEnter,
+ NumLock,
Up,
Left,
Right,
Down,
+ PrintScreen,
+ ScrollLock,
+ Pause,
+ Home,
+ End,
+ Insert,
+ Delete,
PageUp,
PageDown,
Space,
@@ -91,6 +105,20 @@ pub enum Key {
RCtrl,
LAlt,
RAlt,
+ LGui,
+ RGui,
+ LeftBracket,
+ RightBracket,
+ Backslash,
+ Semicolon,
+ Quote,
+ Comma,
+ Period,
+ Slash,
+ Backtick,
+ Backspace,
+ Tab,
+ CapsLock,
F1,
F2,
F3,
@@ -153,6 +181,13 @@ impl Key {
LEFT => Key::Left,
RIGHT => Key::Right,
DOWN => Key::Down,
+ PRINTSCREEN => Key::PrintScreen,
+ SCROLLLOCK => Key::ScrollLock,
+ PAUSE => Key::Pause,
+ HOME => Key::Home,
+ END => Key::End,
+ INSERT => Key::Insert,
+ DELETE => Key::Delete,
ESCAPE => Key::Escape,
PAGEUP => Key::PageUp,
PAGEDOWN => Key::PageDown,
@@ -178,12 +213,33 @@ impl Key {
KP_7 => Key::NumPad7,
KP_8 => Key::NumPad8,
KP_9 => Key::NumPad9,
+ KP_PERIOD => Key::NumPadPeriod,
+ KP_PLUS => Key::NumPadPlus,
+ KP_MINUS => Key::NumPadMinus,
+ KP_DIVIDE => Key::NumPadDivide,
+ KP_MULTIPLY => Key::NumPadMultiply,
+ KP_ENTER => Key::NumPadEnter,
+ NUMLOCKCLEAR => Key::NumLock,
LSHIFT => Key::LShift,
RSHIFT => Key::RShift,
LCTRL => Key::LCtrl,
RCTRL => Key::RCtrl,
LALT => Key::LAlt,
RALT => Key::RAlt,
+ LGUI => Key::LGui,
+ RGUI => Key::RGui,
+ LEFTBRACKET => Key::LeftBracket,
+ RIGHTBRACKET => Key::RightBracket,
+ BACKSLASH => Key::Backslash,
+ SEMICOLON => Key::Semicolon,
+ APOSTROPHE => Key::Quote,
+ COMMA => Key::Comma,
+ PERIOD => Key::Period,
+ SLASH => Key::Slash,
+ GRAVE => Key::Backtick,
+ BACKSPACE => Key::Backspace,
+ TAB => Key::Tab,
+ CAPSLOCK => Key::CapsLock,
_ => return None,
})
}
@@ -231,6 +287,16 @@ impl Key {
Key::N9 => N9,
Key::Minus => MINUS,
Key::Equals => EQUALS,
+ Key::LeftBracket => LEFTBRACKET,
+ Key::RightBracket => RIGHTBRACKET,
+ Key::Backslash => BACKSLASH,
+ Key::Semicolon => SEMICOLON,
+ Key::Comma => COMMA,
+ Key::Period => PERIOD,
+ Key::Slash => SLASH,
+ Key::Quote => APOSTROPHE,
+ Key::Backtick => GRAVE,
+ Key::Backspace => BACKSPACE,
Key::Up => UP,
Key::Left => LEFT,
Key::Right => RIGHT,
@@ -238,6 +304,8 @@ impl Key {
Key::Escape => ESCAPE,
Key::PageUp => PAGEUP,
Key::PageDown => PAGEDOWN,
+ Key::Tab => TAB,
+ Key::CapsLock => CAPSLOCK,
Key::F1 => F1,
Key::F2 => F2,
Key::F3 => F3,
@@ -260,12 +328,28 @@ impl Key {
Key::NumPad7 => KP_7,
Key::NumPad8 => KP_8,
Key::NumPad9 => KP_9,
+ Key::NumPadPeriod => KP_PERIOD,
+ Key::NumPadPlus => KP_PLUS,
+ Key::NumPadMinus => KP_MINUS,
+ Key::NumPadMultiply => KP_MULTIPLY,
+ Key::NumPadDivide => KP_DIVIDE,
+ Key::NumPadEnter => KP_ENTER,
+ Key::NumLock => NUMLOCKCLEAR,
+ Key::ScrollLock => SCROLLLOCK,
+ Key::PrintScreen => PRINTSCREEN,
+ Key::Pause => PAUSE,
+ Key::Home => HOME,
+ Key::End => END,
+ Key::Insert => INSERT,
+ Key::Delete => DELETE,
Key::LShift => LSHIFT,
Key::RShift => RSHIFT,
Key::LCtrl => LCTRL,
Key::RCtrl => RCTRL,
Key::LAlt => LALT,
Key::RAlt => RALT,
+ Key::LGui => LGUI,
+ Key::RGui => RGUI,
}
}
}
@@ -1034,6 +1118,7 @@ impl Window {
}
unsafe {
+ sdl::set_main_ready();
sdl::set_hint("SDL_NO_SIGNAL_HANDLERS", "1"); // don't replace Ctrl+C, TERM with quit event
sdl::init()?;
#[cfg(debug_assertions)]