diff options
| author | Joe Carstairs <me@joeac.net> | 2026-02-07 11:52:08 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-02-07 12:02:27 +0000 |
| commit | 1664e741ad35ce52a01788c34029f0b2ea477e32 (patch) | |
| tree | dd6bd7c83a7e834c75815a786d67b5188cdd1f48 /schist_desktop_gui/src/gui/components/navigation/update_navigation.rs | |
| parent | 179878d12ba10ac242da2044f4c6dfe4d4829e59 (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.rs | 11 |
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), } } } |
