tge/
touchpad.rs

1use crate::error::GameResult;
2use crate::math::Vector;
3
4pub struct Touchpad {
5    scroll_delta: Vector,
6    pressure: f32,
7    click_stage: i64,
8}
9
10impl Touchpad {
11    pub(crate) fn new(_: TouchpadConfig) -> GameResult<Self> {
12        Ok(Self {
13            scroll_delta: Vector::zero(),
14            pressure: 0.0,
15            click_stage: 0,
16        })
17    }
18
19    pub(crate) fn handle_scroll_event(&mut self, delta: Vector) {
20        self.scroll_delta += delta;
21    }
22
23    pub(crate) fn handle_press_event(&mut self, pressure: f32, click_stage: i64) {
24        self.pressure = pressure;
25        self.click_stage = click_stage;
26    }
27
28    pub(crate) fn clear_states(&mut self) {
29        self.scroll_delta = Vector::zero();
30    }
31
32    pub fn scroll_delta(&self) -> Vector {
33        self.scroll_delta
34    }
35
36    pub fn pressure(&self) -> f32 {
37        self.pressure
38    }
39
40    pub fn click_stage(&self) -> i64 {
41        self.click_stage
42    }
43}
44
45#[derive(Debug, Clone)]
46pub struct TouchpadConfig {}
47
48impl TouchpadConfig {
49    pub fn new() -> Self {
50        Self {}
51    }
52}