Implement Pressed and Released
This commit is contained in:
parent
754a6ef60f
commit
a28282ef5f
3 changed files with 341 additions and 0 deletions
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue