mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
37 lines
941 B
Rust
37 lines
941 B
Rust
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,
|
|
}
|
|
}
|
|
}
|