events/
events.rs

1use macroquad::ui::{hash, root_ui, widgets};
2
3use macroquad::prelude::*;
4
5#[macroquad::main("Events")]
6async fn main() {
7    loop {
8        clear_background(WHITE);
9        root_ui().window(hash!(), Vec2::new(20., 20.), Vec2::new(450., 200.), |ui| {
10            let (mouse_x, mouse_y) = mouse_position();
11            ui.label(None, &format!("Mouse position: {mouse_x} {mouse_y}"));
12
13            let (mouse_wheel_x, mouse_wheel_y) = mouse_wheel();
14            ui.label(None, &format!("Mouse wheel x: {mouse_wheel_x}"));
15            ui.label(None, &format!("Mouse wheel y: {mouse_wheel_y}"));
16
17            widgets::Group::new(hash!(), Vec2::new(200., 90.))
18                .position(Vec2::new(240., 0.))
19                .ui(ui, |ui| {
20                    ui.label(None, "Pressed kbd keys");
21
22                    if let Some(key) = get_last_key_pressed() {
23                        ui.label(None, &format!("{key:?}"))
24                    }
25                });
26
27            widgets::Group::new(hash!(), Vec2::new(200., 90.))
28                .position(Vec2::new(240., 92.))
29                .ui(ui, |ui| {
30                    ui.label(None, "Pressed mouse keys");
31
32                    if is_mouse_button_down(MouseButton::Left) {
33                        ui.label(None, "Left");
34                    }
35                    if is_mouse_button_down(MouseButton::Right) {
36                        ui.label(None, "Right");
37                    }
38                    if is_mouse_button_down(MouseButton::Middle) {
39                        ui.label(None, "Middle");
40                    }
41                });
42        });
43        next_frame().await;
44    }
45}