runmat_plot/core/
interaction.rs1use glam::Vec2;
7
8#[derive(Debug, Clone)]
10pub enum PlotEvent {
11 MousePress { position: Vec2, button: MouseButton },
12 MouseRelease { position: Vec2, button: MouseButton },
13 MouseMove { position: Vec2, delta: Vec2 },
14 MouseWheel { delta: f32 },
15 KeyPress { key: KeyCode },
16 KeyRelease { key: KeyCode },
17 Resize { width: u32, height: u32 },
18}
19
20#[derive(Debug, Clone, Copy, PartialEq, Eq)]
22pub enum MouseButton {
23 Left,
24 Right,
25 Middle,
26}
27
28#[derive(Debug, Clone, Copy, PartialEq, Eq)]
30pub enum KeyCode {
31 Escape,
32 Space,
33 Enter,
34 Tab,
35 Backspace,
36 Delete,
37 Home,
38 End,
39 PageUp,
40 PageDown,
41 ArrowUp,
42 ArrowDown,
43 ArrowLeft,
44 ArrowRight,
45 }
47
48pub trait EventHandler {
50 fn handle_event(&mut self, event: PlotEvent) -> bool;
51}