diff options
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) } |