1use crate::binding;
2
3#[derive(Debug, Clone)]
5pub struct Event {
6 pub(crate) source: binding::Source,
7 pub(crate) state: State,
8}
9
10impl Event {
11 pub fn new(source: binding::Source, state: State) -> Self {
12 Self { source, state }
13 }
14}
15
16#[derive(Debug, Clone, Copy, PartialEq, Eq)]
18pub enum ButtonState {
19 Pressed,
20 Released,
21}
22
23pub enum Source {
25 Mouse,
26 Keyboard,
27}
28
29#[derive(Debug, Clone, Copy)]
32pub enum State {
33 ButtonState(ButtonState),
34 MouseMove(f64, f64),
35 MouseScroll(f32, f32),
36 ValueChanged(f32),
37}