From 77d033d672d5bcd6e3e933da682467e53414e934 Mon Sep 17 00:00:00 2001 From: Eduard Bopp Date: Wed, 25 Mar 2015 13:17:47 +0100 Subject: Add an example for (un-)grabbing the mouse cursor --- examples/grabbing.rs | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 examples/grabbing.rs diff --git a/examples/grabbing.rs b/examples/grabbing.rs new file mode 100644 index 0000000..436dd9b --- /dev/null +++ b/examples/grabbing.rs @@ -0,0 +1,50 @@ +#[cfg(target_os = "android")] +#[macro_use] +extern crate android_glue; + +extern crate glutin; + +use glutin::{Event, ElementState}; + +mod support; + +#[cfg(target_os = "android")] +android_start!(main); + +#[cfg(not(feature = "window"))] +fn main() { println!("This example requires glutin to be compiled with the `window` feature"); } + +#[cfg(feature = "window")] +fn main() { + + let window = glutin::Window::new().unwrap(); + window.set_title("glutin - Cursor grabbing test"); + unsafe { window.make_current() }; + + let context = support::load(&window); + let mut grabbed = false; + + while !window.is_closed() { + context.draw_frame((0.0, 1.0, 0.0, 1.0)); + window.swap_buffers(); + + for event in window.poll_events() { + match event { + Event::KeyboardInput(ElementState::Pressed, _, _) => { + if grabbed { + grabbed = false; + window.ungrab_cursor(); + } + else { + grabbed = true; + window.grab_cursor().ok().expect("could not grab mouse cursor"); + } + }, + _ => (), + } + + } + + } +} + -- cgit v1.2.3