diff options
author | Pierre Krieger <pierre.krieger1708@gmail.com> | 2014-07-31 17:33:46 +0200 |
---|---|---|
committer | Pierre Krieger <pierre.krieger1708@gmail.com> | 2014-07-31 17:33:46 +0200 |
commit | 59b4d23d58f804e0d9ae05cf80da67784680d186 (patch) | |
tree | 916586bddab3a83e76b968990f2257d28336bc27 /src/x11 | |
parent | 0d45c7fcb491fc9d39b3b3ddd586741c277fcced (diff) | |
download | glutin-59b4d23d58f804e0d9ae05cf80da67784680d186.tar.gz glutin-59b4d23d58f804e0d9ae05cf80da67784680d186.zip |
Add mouse buttons press/release events for X11
Diffstat (limited to 'src/x11')
-rw-r--r-- | src/x11/ffi.rs | 6 | ||||
-rw-r--r-- | src/x11/mod.rs | 21 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/x11/ffi.rs b/src/x11/ffi.rs index f73d408..2c94820 100644 --- a/src/x11/ffi.rs +++ b/src/x11/ffi.rs @@ -30,6 +30,12 @@ pub type XID = uint; pub static AllocNone: libc::c_int = 0; pub static AllocAll: libc::c_int = 1; +pub static Button1: libc::c_uint = 1; +pub static Button2: libc::c_uint = 2; +pub static Button3: libc::c_uint = 3; +pub static Button4: libc::c_uint = 4; +pub static Button5: libc::c_uint = 5; + pub static InputOutput: libc::c_uint = 1; pub static InputOnly: libc::c_uint = 2; diff --git a/src/x11/mod.rs b/src/x11/mod.rs index 4bd186f..c2b2044 100644 --- a/src/x11/mod.rs +++ b/src/x11/mod.rs @@ -243,8 +243,27 @@ impl Window { ffi::ButtonPress | ffi::ButtonRelease => { use {Pressed, Released}; + use events; let event: &ffi::XButtonEvent = unsafe { mem::transmute(&xev) }; - //events.push(CursorPositionChanged(event.x as uint, event.y as uint)); + + let elem = match event.button { + ffi::Button1 => Some(events::Button1), + ffi::Button2 => Some(events::Button2), + ffi::Button3 => Some(events::Button3), + ffi::Button4 => Some(events::Button4), + ffi::Button5 => Some(events::Button5), + _ => None + }; + + if elem.is_some() { + let elem = elem.unwrap(); + + if xev.type_ == ffi::ButtonPress { + events.push(Pressed(elem)); + } else if xev.type_ == ffi::ButtonRelease { + events.push(Released(elem)); + } + } }, _ => () |