mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
122 lines
4.3 KiB
Rust
122 lines
4.3 KiB
Rust
//impl Bar for ArrangerStatus {
|
|
//type State = (ArrangerFocus, ArrangerSelection, bool);
|
|
//fn hotkey_fg () -> Color where Self: Sized {
|
|
//TuiTheme::HOTKEY_FG
|
|
//}
|
|
//fn update (&mut self, (focused, selected, entered): &Self::State) {
|
|
//*self = match focused {
|
|
////ArrangerFocus::Menu => { todo!() },
|
|
//ArrangerFocus::Transport(_) => ArrangerStatus::Transport,
|
|
//ArrangerFocus::Arranger => match selected {
|
|
//ArrangerSelection::Mix => ArrangerStatus::ArrangerMix,
|
|
//ArrangerSelection::Track(_) => ArrangerStatus::ArrangerTrack,
|
|
//ArrangerSelection::Scene(_) => ArrangerStatus::ArrangerScene,
|
|
//ArrangerSelection::Clip(_, _) => ArrangerStatus::ArrangerClip,
|
|
//},
|
|
//ArrangerFocus::Phrases => ArrangerStatus::PhrasePool,
|
|
//ArrangerFocus::PhraseEditor => match entered {
|
|
//true => ArrangerStatus::PhraseEdit,
|
|
//false => ArrangerStatus::PhraseView,
|
|
//},
|
|
//}
|
|
//}
|
|
//}
|
|
|
|
//render!(<Tui>|self: ArrangerStatus|{
|
|
|
|
//let label = match self {
|
|
//Self::Transport => "TRANSPORT",
|
|
//Self::ArrangerMix => "PROJECT",
|
|
//Self::ArrangerTrack => "TRACK",
|
|
//Self::ArrangerScene => "SCENE",
|
|
//Self::ArrangerClip => "CLIP",
|
|
//Self::PhrasePool => "SEQ LIST",
|
|
//Self::PhraseView => "VIEW SEQ",
|
|
//Self::PhraseEdit => "EDIT SEQ",
|
|
//};
|
|
|
|
//let status_bar_bg = TuiTheme::status_bar_bg();
|
|
|
|
//let mode_bg = TuiTheme::mode_bg();
|
|
//let mode_fg = TuiTheme::mode_fg();
|
|
//let mode = Tui::fg(mode_fg, Tui::bg(mode_bg, Tui::bold(true, format!(" {label} "))));
|
|
|
|
//let commands = match self {
|
|
//Self::ArrangerMix => Self::command(&[
|
|
//["", "c", "olor"],
|
|
//["", "<>", "resize"],
|
|
//["", "+-", "zoom"],
|
|
//["", "n", "ame/number"],
|
|
//["", "Enter", " stop all"],
|
|
//]),
|
|
//Self::ArrangerClip => Self::command(&[
|
|
//["", "g", "et"],
|
|
//["", "s", "et"],
|
|
//["", "a", "dd"],
|
|
//["", "i", "ns"],
|
|
//["", "d", "up"],
|
|
//["", "e", "dit"],
|
|
//["", "c", "olor"],
|
|
//["re", "n", "ame"],
|
|
//["", ",.", "select"],
|
|
//["", "Enter", " launch"],
|
|
//]),
|
|
//Self::ArrangerTrack => Self::command(&[
|
|
//["re", "n", "ame"],
|
|
//["", ",.", "resize"],
|
|
//["", "<>", "move"],
|
|
//["", "i", "nput"],
|
|
//["", "o", "utput"],
|
|
//["", "m", "ute"],
|
|
//["", "s", "olo"],
|
|
//["", "Del", "ete"],
|
|
//["", "Enter", " stop"],
|
|
//]),
|
|
//Self::ArrangerScene => Self::command(&[
|
|
//["re", "n", "ame"],
|
|
//["", "Del", "ete"],
|
|
//["", "Enter", " launch"],
|
|
//]),
|
|
//Self::PhrasePool => Self::command(&[
|
|
//["", "a", "ppend"],
|
|
//["", "i", "nsert"],
|
|
//["", "d", "uplicate"],
|
|
//["", "Del", "ete"],
|
|
//["", "c", "olor"],
|
|
//["re", "n", "ame"],
|
|
//["leng", "t", "h"],
|
|
//["", ",.", "move"],
|
|
//["", "+-", "resize view"],
|
|
//]),
|
|
//Self::PhraseView => Self::command(&[
|
|
//["", "enter", " edit"],
|
|
//["", "arrows/pgup/pgdn", " scroll"],
|
|
//["", "+=", "zoom"],
|
|
//]),
|
|
//Self::PhraseEdit => Self::command(&[
|
|
//["", "esc", " exit"],
|
|
//["", "a", "ppend"],
|
|
//["", "s", "et"],
|
|
//["", "][", "length"],
|
|
//["", "+-", "zoom"],
|
|
//]),
|
|
//_ => Self::command(&[])
|
|
//};
|
|
|
|
////let commands = commands.iter().reduce(String::new(), |s, (a, b, c)| format!("{s} {a}{b}{c}"));
|
|
//Tui::bg(status_bar_bg, Fill::w(row!([mode, commands])))
|
|
|
|
//});
|
|
|
|
///// Status bar for arranger app
|
|
//#[derive(Copy, Clone, Debug)]
|
|
//pub enum ArrangerStatus {
|
|
//Transport,
|
|
//ArrangerMix,
|
|
//ArrangerTrack,
|
|
//ArrangerScene,
|
|
//ArrangerClip,
|
|
//PhrasePool,
|
|
//PhraseView,
|
|
//PhraseEdit,
|
|
//}
|