use crate::*; impl Content for SequencerTui { type Engine = Tui; fn content (&self) -> impl Widget { 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 { 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() ) } }