tek/crates/tek_tui/src/tui_view_sequencer.rs

48 lines
1.6 KiB
Rust

use crate::*;
impl Content for SequencerTui {
type Engine = Tui;
fn content (&self) -> impl Widget<Engine = Tui> {
lay!(self.size, SequencerStatusBar::with(self, col!(
TransportView::from(self),
Split::right(20,
col_up!(
PhraseSelector::play_phrase(
&self.player,
self.focused() == SequencerFocus::PhrasePlay,
self.entered()
).fixed_y(4),
PhraseSelector::next_phrase(
&self.player,
self.focused() == SequencerFocus::PhraseNext,
self.entered()
).fixed_y(4),
PhraseListView::from(self),
),
PhraseView::from(self),
).min_y(20)
)))
}
}
impl Content for SequencerStatusBar {
type Engine = Tui;
fn content (&self) -> impl Widget<Engine = Tui> {
let orange = Color::Rgb(255,128,0);
let yellow = Color::Rgb(255,255,0);
let black = Color::Rgb(0,0,0);
lay!(
row!(
widget(&self.mode).bg(orange).fg(black).bold(true),
row!((prefix, hotkey, suffix) in self.help => {
row!(" ", *prefix, TuiStyle::fg(*hotkey, yellow), *suffix)
})
),
row!(
widget(&self.cpu).fg(orange),
widget(&self.res).fg(orange),
widget(&self.size).fg(orange),
).align_se().fill_x()
)
}
}