Implement Pressed and Released

This commit is contained in:
Tomaka17 2014-07-27 18:55:14 +02:00
parent 754a6ef60f
commit a28282ef5f
3 changed files with 341 additions and 0 deletions

View file

@ -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)
}