radar-g/gi/src/ui/io.rs
2024-09-03 13:57:27 +08:00

34 lines
864 B
Rust

#[derive(Debug, Default)]
pub struct MouseIO {
pub position: [f32; 2], // 鼠标当前位置
pub drag_delta: Option<[f32; 2]>, // 拖动开始时的鼠标位置
pub is_dragging: bool, // 是否正在拖动
pub left_button_pressed: bool, // 左键是否被按下
pub right_button_pressed: bool, // 右键是否被按下
pub wheel_delta: f32, // 鼠标滚轮变化值
pub drag_sum: [f32; 2], // 拖动累计值
}
#[derive(Debug)]
pub struct KeyboardIO {
pub keys: [bool; 4], // 键盘按键状态
}
impl Default for KeyboardIO {
fn default() -> Self {
Self { keys: [false; 4] }
}
}
#[derive(Debug, Default)]
pub struct IO {
pub mouse: MouseIO,
pub keyboard: KeyboardIO,
}
impl IO {
pub fn reset(&mut self) {
self.mouse.wheel_delta = 0.0;
}
}