mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-25 14:51:30 +11:00
f0bab95c4d
Depending on the platform and device, scroll deltas may either be represented as pixel deltas specifying the amount in pixels to scroll or they may be expressed in 'lines' or 'chunks' for low resolution devices (eg. a traditional mouse wheel). Pixel deltas are currently available on OS X. X11 currently supports only integer line deltas, though pixel deltas are available via XInput2. Windows supports fractional line deltas.
50 lines
2 KiB
Rust
50 lines
2 KiB
Rust
#[cfg(target_os = "android")]
|
|
#[macro_use]
|
|
extern crate android_glue;
|
|
|
|
extern crate glutin;
|
|
|
|
use glutin::{Event, ElementState, MouseCursor};
|
|
|
|
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("A fantastic window!");
|
|
unsafe { window.make_current() };
|
|
|
|
let context = support::load(&window);
|
|
let cursors = [MouseCursor::Default, MouseCursor::Crosshair, MouseCursor::Hand, MouseCursor::Arrow, MouseCursor::Move, MouseCursor::Text, MouseCursor::Wait, MouseCursor::Help, MouseCursor::Progress, MouseCursor::NotAllowed, MouseCursor::ContextMenu, MouseCursor::NoneCursor, MouseCursor::Cell, MouseCursor::VerticalText, MouseCursor::Alias, MouseCursor::Copy, MouseCursor::NoDrop, MouseCursor::Grab, MouseCursor::Grabbing, MouseCursor::AllScroll, MouseCursor::ZoomIn, MouseCursor::ZoomOut, MouseCursor::EResize, MouseCursor::NResize, MouseCursor::NeResize, MouseCursor::NwResize, MouseCursor::SResize, MouseCursor::SeResize, MouseCursor::SwResize, MouseCursor::WResize, MouseCursor::EwResize, MouseCursor::NsResize, MouseCursor::NeswResize, MouseCursor::NwseResize, MouseCursor::ColResize, MouseCursor::RowResize];
|
|
let mut cursor_idx = 0;
|
|
|
|
while !window.is_closed() {
|
|
context.draw_frame((0.0, 1.0, 0.0, 1.0));
|
|
window.swap_buffers();
|
|
|
|
for event in window.wait_events() {
|
|
match event {
|
|
Event::KeyboardInput(ElementState::Pressed, _, _) => {
|
|
println!("Setting cursor to \"{:?}\"", cursors[cursor_idx]);
|
|
window.set_cursor(cursors[cursor_idx]);
|
|
if cursor_idx < cursors.len() - 1 {
|
|
cursor_idx += 1;
|
|
} else {
|
|
cursor_idx = 0;
|
|
}
|
|
},
|
|
_ => (),
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|