From 40b0cd7a901fdab5bb3573dfabb3b0b8ca709cfd Mon Sep 17 00:00:00 2001 From: Frank Villaro-Dixon Date: Thu, 16 May 2024 15:23:34 +0200 Subject: [PATCH] main menu: fix int overflow Signed-off-by: Frank Villaro-Dixon --- src/apps.rs | 17 +++++++++++++++++ src/ui.rs | 4 ++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/apps.rs b/src/apps.rs index 4c9bfd9..ad92285 100644 --- a/src/apps.rs +++ b/src/apps.rs @@ -8,6 +8,23 @@ pub struct MainMenu { pub names: Vec, } +impl MainMenu { + pub fn selected_name(&self) -> &str { + &self.names[self.selected_id] + } + + pub fn go_left(&mut self) { + if self.selected_id > 0 { + self.selected_id -= 1; + } + } + pub fn go_right(&mut self) { + if self.selected_id < self.names.len() - 1 { + self.selected_id += 1; + } + } +} + pub struct AppBase { name: String, pub main_menu: MainMenu, diff --git a/src/ui.rs b/src/ui.rs index cde188a..e7a4be5 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -44,13 +44,13 @@ impl BeoUi { Beo5Event::LeftButtonPressed => { println!("Left button pressed"); if let Some(selected_app) = self.current_app_mut() { - selected_app.base_mut().main_menu.selected_id += 1; + selected_app.base_mut().main_menu.go_left(); } } Beo5Event::RightButtonPressed => { println!("Right button pressed"); if let Some(selected_app) = self.current_app_mut() { - selected_app.base_mut().main_menu.selected_id -= 1; + selected_app.base_mut().main_menu.go_right(); } } _ => {