use glam::Vec2;
#[derive(Debug, Clone)]
pub enum PlotEvent {
MousePress { position: Vec2, button: MouseButton },
MouseRelease { position: Vec2, button: MouseButton },
MouseMove { position: Vec2, delta: Vec2 },
MouseWheel { delta: f32 },
KeyPress { key: KeyCode },
KeyRelease { key: KeyCode },
Resize { width: u32, height: u32 },
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum MouseButton {
Left,
Right,
Middle,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum KeyCode {
Escape,
Space,
Enter,
Tab,
Backspace,
Delete,
Home,
End,
PageUp,
PageDown,
ArrowUp,
ArrowDown,
ArrowLeft,
ArrowRight,
}
pub trait EventHandler {
fn handle_event(&mut self, event: PlotEvent) -> bool;
}