mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
more status bar
This commit is contained in:
parent
3010c9ef5d
commit
9abd0b7c50
2 changed files with 31 additions and 18 deletions
|
|
@ -39,7 +39,8 @@ pub enum ArrangerStatusBar {
|
|||
ArrangementScene,
|
||||
ArrangementClip,
|
||||
PhrasePool,
|
||||
PhraseEditor,
|
||||
PhraseView,
|
||||
PhraseEdit,
|
||||
}
|
||||
/// Represents the tracks and scenes of the composition.
|
||||
pub struct Arrangement<E: Engine> {
|
||||
|
|
@ -161,15 +162,18 @@ impl<E: Engine> Arranger<E> {
|
|||
/// Update status bar
|
||||
pub fn update_status (&mut self) {
|
||||
self.status = match self.focused() {
|
||||
ArrangerFocus::Transport => ArrangerStatusBar::Transport,
|
||||
ArrangerFocus::Arrangement => match self.arrangement.selected {
|
||||
ArrangementFocus::Mix => ArrangerStatusBar::ArrangementMix,
|
||||
ArrangementFocus::Track(_) => ArrangerStatusBar::ArrangementTrack,
|
||||
ArrangementFocus::Scene(_) => ArrangerStatusBar::ArrangementScene,
|
||||
ArrangerFocus::Transport => ArrangerStatusBar::Transport,
|
||||
ArrangerFocus::Arrangement => match self.arrangement.selected {
|
||||
ArrangementFocus::Mix => ArrangerStatusBar::ArrangementMix,
|
||||
ArrangementFocus::Track(_) => ArrangerStatusBar::ArrangementTrack,
|
||||
ArrangementFocus::Scene(_) => ArrangerStatusBar::ArrangementScene,
|
||||
ArrangementFocus::Clip(_, _) => ArrangerStatusBar::ArrangementClip,
|
||||
},
|
||||
ArrangerFocus::PhrasePool => ArrangerStatusBar::PhrasePool,
|
||||
ArrangerFocus::PhraseEditor => ArrangerStatusBar::PhraseEditor,
|
||||
ArrangerFocus::PhrasePool => ArrangerStatusBar::PhrasePool,
|
||||
ArrangerFocus::PhraseEditor => match self.editor.entered {
|
||||
true => ArrangerStatusBar::PhraseEdit,
|
||||
false => ArrangerStatusBar::PhraseView,
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,22 +26,31 @@ impl Content for ArrangerStatusBar {
|
|||
type Engine = Tui;
|
||||
fn content (&self) -> impl Widget<Engine = Tui> {
|
||||
let label = match self {
|
||||
Self::Transport => "TRANSPORT",
|
||||
Self::ArrangementMix => "COMPOSITION",
|
||||
Self::ArrangementTrack => "TRACK",
|
||||
Self::ArrangementScene => "SCENE",
|
||||
Self::ArrangementClip => "CLIP",
|
||||
Self::PhrasePool => "PHRASES",
|
||||
Self::PhraseEditor => "SEQUENCER",
|
||||
Self::Transport => "TRANSPORT",
|
||||
Self::ArrangementMix => "PROJECT",
|
||||
Self::ArrangementTrack => "TRACK",
|
||||
Self::ArrangementScene => "SCENE",
|
||||
Self::ArrangementClip => "CLIP",
|
||||
Self::PhrasePool => "SEQ LIST",
|
||||
Self::PhraseView => "SEQ VIEW",
|
||||
Self::PhraseEdit => "SEQ EDIT",
|
||||
};
|
||||
let label = TuiStyle::bg(format!(" {label} "), Color::Rgb(150, 160, 90))
|
||||
.fg(Color::Rgb(0, 0, 0))
|
||||
.bold(true);
|
||||
row!(label, " ", match self {
|
||||
Self::ArrangementMix =>
|
||||
"[<>]Resize arranger",
|
||||
Self::ArrangementClip =>
|
||||
"[G]et [S]et [A]dd [I]nsert [D]uplicate [E]dit [C]olor [,.]Choose",
|
||||
"[G]et [S]et [A]dd [I]nsert [D]uplicate [E]dit [C]olor re[N]ame [,.]Choose",
|
||||
Self::ArrangementTrack =>
|
||||
"[,.]Resize [<>]Move",
|
||||
Self::PhrasePool =>
|
||||
"[A]ppend [I]nsert [D]uplicate [C]olor re[N]ame leng[T]h [,.]Move [<>]Resize",
|
||||
"[A]ppend [I]nsert [D]uplicate [C]olor re[N]ame leng[T]h [,.]Move [<>]Resize list",
|
||||
Self::PhraseView =>
|
||||
"[Enter]Edit notes [Arrows/PgUp/PgDn]Scroll",
|
||||
Self::PhraseEdit =>
|
||||
"[Esc]Exit edit mode [A]ppend [S]et",
|
||||
_ => ""
|
||||
})
|
||||
}
|
||||
|
|
@ -132,7 +141,7 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
|
|||
|
||||
// scene titles
|
||||
let scene_name = |scene, playing: bool, height|row!(
|
||||
if playing { "▶ " } else { " " },
|
||||
if playing { " ▶" } else { " " },
|
||||
(scene as &Scene).name.read().unwrap().as_str(),
|
||||
).fixed_xy(offset.saturating_sub(1), height);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue