add some status bar modes

This commit is contained in:
🪞👃🪞 2024-10-18 23:59:31 +03:00
parent 97af45b576
commit 794460b2e4
2 changed files with 17 additions and 2 deletions

View file

@ -118,7 +118,7 @@ impl<E: Engine> Arranger<E> {
let mut app = Self {
focus_cursor: (0, 1),
editor: PhraseEditor::new(),
status: ArrangerStatusBar::Transport,
status: ArrangerStatusBar::ArrangementClip,
transport,
arrangement,
phrases,
@ -180,6 +180,12 @@ impl<E: Engine> FocusGrid<ArrangerFocus> for Arranger<E> {
focused == ArrangerFocus::PhrasePool;
self.editor.focused =
focused == ArrangerFocus::PhraseEditor;
self.status = match focused {
ArrangerFocus::Transport => ArrangerStatusBar::Transport,
ArrangerFocus::Arrangement => ArrangerStatusBar::ArrangementMix,
ArrangerFocus::PhrasePool => ArrangerStatusBar::PhrasePool,
ArrangerFocus::PhraseEditor => ArrangerStatusBar::PhraseEditor,
}
}
}
/// General methods for arrangement

View file

@ -25,7 +25,16 @@ impl Content for Arranger<Tui> {
impl Content for ArrangerStatusBar {
type Engine = Tui;
fn content (&self) -> impl Widget<Engine = Tui> {
"status bar"
let label = match self {
Self::Transport => "Transport",
Self::ArrangementMix => "Arrangement",
Self::ArrangementTrack => "Track",
Self::ArrangementScene => "Scene",
Self::ArrangementClip => "Clip",
Self::PhrasePool => "Phrases",
Self::PhraseEditor => "Sequencer",
};
TuiStyle::bg(format!(" {label} "), Color::Rgb(150, 160, 90)).fg(Color::Rgb(0, 0, 0))
}
}
impl Content for Arrangement<Tui> {