summaryrefslogtreecommitdiff
path: root/schist_desktop_gui/src/gui/components/navigation/update_navigation.rs
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-02-07 11:52:08 +0000
committerJoe Carstairs <me@joeac.net>2026-02-07 12:02:27 +0000
commit1664e741ad35ce52a01788c34029f0b2ea477e32 (patch)
treedd6bd7c83a7e834c75815a786d67b5188cdd1f48 /schist_desktop_gui/src/gui/components/navigation/update_navigation.rs
parent179878d12ba10ac242da2044f4c6dfe4d4829e59 (diff)
task-001: can navigate file screen options with keyboard
Diffstat (limited to 'schist_desktop_gui/src/gui/components/navigation/update_navigation.rs')
-rw-r--r--schist_desktop_gui/src/gui/components/navigation/update_navigation.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/schist_desktop_gui/src/gui/components/navigation/update_navigation.rs b/schist_desktop_gui/src/gui/components/navigation/update_navigation.rs
index 1d5a734..7bcef98 100644
--- a/schist_desktop_gui/src/gui/components/navigation/update_navigation.rs
+++ b/schist_desktop_gui/src/gui/components/navigation/update_navigation.rs
@@ -4,14 +4,14 @@ use crate::{
gui::components::navigation::{
navigation_select_option::SelectOptionResult, navigation_set_options::SetOptionsResult,
},
- traits::{Component, Navigable, NavigationResult},
+ traits::{Component, Focusable, Navigable, NavigationResult},
};
use super::{Action, Message, Navigation};
impl<'a, TOption> Component<'a, Message<TOption>, Action<TOption>> for Navigation<TOption>
where
- TOption: Clone + PartialEq + 'a,
+ TOption: Clone + Focusable + PartialEq + 'a,
Element<'a, Message<TOption>>: From<&'a TOption>,
{
fn update(&mut self, message: Message<TOption>) -> Action<TOption> {
@@ -21,23 +21,22 @@ where
| SelectOptionResult::SelectedNewOption(option) => Action::SelectOption(option),
SelectOptionResult::AlreadySelected => Action::None,
},
-
- Message::SetOptions(options) => match self.set_options(options) {
+ Message::SetOptions(mut options) => match self.set_options(&mut options) {
SetOptionsResult::SetOptionsAndKeptSelection => Action::None,
SetOptionsResult::SetOptionsAndSetSelectedOption(option) => {
Action::SelectOption(option)
}
},
-
Message::SelectNext => match self.move_next() {
NavigationResult::Moved(option) => Action::SelectOption(option),
NavigationResult::LastOption => Action::None,
},
-
Message::SelectPrev => match self.move_prev() {
NavigationResult::Moved(option) => Action::SelectOption(option),
NavigationResult::LastOption => Action::None,
},
+
+ Message::ActivateOption(option) => Action::ActivateOption(option),
}
}
}