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/traits | |
| parent | 179878d12ba10ac242da2044f4c6dfe4d4829e59 (diff) | |
task-001: can navigate file screen options with keyboard
Diffstat (limited to 'schist_desktop_gui/src/traits')
| -rw-r--r-- | schist_desktop_gui/src/traits/focusable.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/schist_desktop_gui/src/traits/focusable.rs b/schist_desktop_gui/src/traits/focusable.rs new file mode 100644 index 0000000..8eb9628 --- /dev/null +++ b/schist_desktop_gui/src/traits/focusable.rs @@ -0,0 +1,18 @@ +pub trait Focusable { + fn focus(&mut self); + fn unfocus(&mut self); +} + +#[macro_export] +macro_rules! impl_focusable { + ($target:ty) => { + impl $crate::traits::Focusable for $target { + fn focus(&mut self) { + self.is_focused = true; + } + fn unfocus(&mut self) { + self.is_focused = false; + } + } + }; +} |
