diff options
author | Tomaka17 <pierre.krieger1708@gmail.com> | 2014-07-27 18:55:14 +0200 |
---|---|---|
committer | Tomaka17 <pierre.krieger1708@gmail.com> | 2014-07-27 18:55:14 +0200 |
commit | a28282ef5f4b7e17d9897047dcf3c14f073c2d13 (patch) | |
tree | 78de6bd3c35f70babedc8a1bf6012f22157941cd /src/win32/mod.rs | |
parent | 754a6ef60f87946de3d54d53b27e26d05c1fc47a (diff) | |
download | glutin-a28282ef5f4b7e17d9897047dcf3c14f073c2d13.tar.gz glutin-a28282ef5f4b7e17d9897047dcf3c14f073c2d13.zip |
Implement Pressed and Released
Diffstat (limited to 'src/win32/mod.rs')
-rw-r--r-- | src/win32/mod.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/win32/mod.rs b/src/win32/mod.rs index d8e2df2..95df9a4 100644 --- a/src/win32/mod.rs +++ b/src/win32/mod.rs @@ -4,6 +4,7 @@ use std::sync::atomics::AtomicBool; use std::ptr; use {Event, Hints}; +mod event; mod ffi; pub struct Window { @@ -340,6 +341,24 @@ extern "stdcall" fn callback(window: ffi::HWND, msg: ffi::UINT, 0 }, + ffi::WM_KEYDOWN => { + use events::Pressed; + let element = event::vkeycode_to_element(wparam); + if element.is_some() { + send_event(window, Pressed(element.unwrap())); + } + 0 + }, + + ffi::WM_KEYUP => { + use events::Released; + let element = event::vkeycode_to_element(wparam); + if element.is_some() { + send_event(window, Released(element.unwrap())); + } + 0 + }, + _ => unsafe { ffi::DefWindowProcW(window, msg, wparam, lparam) } |