summaryrefslogtreecommitdiff
path: root/src/button_manager.rs
diff options
context:
space:
mode:
authorMax Verevkin <maxxverrr@gmail.com>2022-04-01 21:50:19 +0300
committerMax Verevkin <maxxverrr@gmail.com>2022-04-01 21:50:19 +0300
commit7bcaa341b8685ba411d206c1a89dc3ca77aa71bb (patch)
tree917dec11c47ce71fe9486e56f94015bd12c496b7 /src/button_manager.rs
downloadi3bar-mango-7bcaa341b8685ba411d206c1a89dc3ca77aa71bb.tar.gz
initial commit
Diffstat (limited to 'src/button_manager.rs')
-rw-r--r--src/button_manager.rs19
1 files changed, 19 insertions, 0 deletions
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<T = usize>(Vec<(f64, f64, T)>);
+
+impl<T> ButtonManager<T> {
+ 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)
+ }
+}