use crate::*; /// Different sections of the UI that may be focused. #[derive(PartialEq, Clone, Copy)] pub enum AppFocus { /// The transport is selected. Transport, /// The arranger is selected. Arranger, /// The sequencer is selected. Sequencer, /// The device chain is selected. Chain, } impl Default for AppFocus { fn default () -> Self { Self::Arranger } } impl AppFocus { pub fn prev (&mut self) { *self = match self { Self::Transport => Self::Chain, Self::Arranger => Self::Transport, Self::Sequencer => Self::Arranger, Self::Chain => Self::Sequencer, } } pub fn next (&mut self) { *self = match self { Self::Transport => Self::Arranger, Self::Arranger => Self::Sequencer, Self::Sequencer => Self::Chain, Self::Chain => Self::Transport, } } }