mirror of
https://github.com/bevyengine/bevy
synced 2024-11-26 22:50:19 +00:00
008030357b
# Objective The goal of this PR is to receive touchpad magnification and rotation events. ## Solution Implement pendants for winit's `TouchpadMagnify` and `TouchpadRotate` events. Adjust the `mouse_input_events.rs` example to debug magnify and rotate events. Since winit only reports these events on macOS, the Bevy events for touchpad magnification and rotation are currently only fired on macOS.
52 lines
1.4 KiB
Rust
52 lines
1.4 KiB
Rust
//! Prints all mouse events to the console.
|
|
|
|
use bevy::{
|
|
input::{
|
|
mouse::{MouseButtonInput, MouseMotion, MouseWheel},
|
|
touchpad::{TouchpadMagnify, TouchpadRotate},
|
|
},
|
|
prelude::*,
|
|
};
|
|
|
|
fn main() {
|
|
App::new()
|
|
.add_plugins(DefaultPlugins)
|
|
.add_systems(Update, print_mouse_events_system)
|
|
.run();
|
|
}
|
|
|
|
/// This system prints out all mouse events as they come in
|
|
fn print_mouse_events_system(
|
|
mut mouse_button_input_events: EventReader<MouseButtonInput>,
|
|
mut mouse_motion_events: EventReader<MouseMotion>,
|
|
mut cursor_moved_events: EventReader<CursorMoved>,
|
|
mut mouse_wheel_events: EventReader<MouseWheel>,
|
|
mut touchpad_magnify_events: EventReader<TouchpadMagnify>,
|
|
mut touchpad_rotate_events: EventReader<TouchpadRotate>,
|
|
) {
|
|
for event in mouse_button_input_events.iter() {
|
|
info!("{:?}", event);
|
|
}
|
|
|
|
for event in mouse_motion_events.iter() {
|
|
info!("{:?}", event);
|
|
}
|
|
|
|
for event in cursor_moved_events.iter() {
|
|
info!("{:?}", event);
|
|
}
|
|
|
|
for event in mouse_wheel_events.iter() {
|
|
info!("{:?}", event);
|
|
}
|
|
|
|
// This event will only fire on macOS
|
|
for event in touchpad_magnify_events.iter() {
|
|
info!("{:?}", event);
|
|
}
|
|
|
|
// This event will only fire on macOS
|
|
for event in touchpad_rotate_events.iter() {
|
|
info!("{:?}", event);
|
|
}
|
|
}
|