From 7bcaa341b8685ba411d206c1a89dc3ca77aa71bb Mon Sep 17 00:00:00 2001 From: Max Verevkin Date: Fri, 1 Apr 2022 21:50:19 +0300 Subject: initial commit --- src/button_manager.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/button_manager.rs (limited to 'src/button_manager.rs') diff --git a/src/button_manager.rs b/src/button_manager.rs new file mode 100644 index 0000000..e46a139 --- /dev/null +++ b/src/button_manager.rs @@ -0,0 +1,19 @@ +#[derive(Default)] +pub struct ButtonManager(Vec<(f64, f64, T)>); + +impl ButtonManager { + pub fn push(&mut self, x_offset: f64, width: f64, elem: T) { + self.0.push((x_offset, width, elem)); + } + + pub fn clear(&mut self) { + self.0.clear() + } + + pub fn click(&self, x: f64) -> Option<&T> { + self.0 + .iter() + .find(|(x_off, w, _)| x >= *x_off && x <= *x_off + *w) + .map(|(_, _, e)| e) + } +} -- cgit v1.3.1