diff --git a/crates/tek_tui/src/tui_app_transport.rs b/crates/tek_tui/src/tui_app_transport.rs index d8ad4ae5..5c784da7 100644 --- a/crates/tek_tui/src/tui_app_transport.rs +++ b/crates/tek_tui/src/tui_app_transport.rs @@ -60,8 +60,8 @@ impl_focus!(TransportTui TransportFocus [ &[ PlayPause, Bpm, - Quant, Sync, + Quant, Clock, ], ]); diff --git a/crates/tek_tui/src/tui_view_phrase_selector.rs b/crates/tek_tui/src/tui_view_phrase_selector.rs index 818bc34f..1315ef23 100644 --- a/crates/tek_tui/src/tui_view_phrase_selector.rs +++ b/crates/tek_tui/src/tui_view_phrase_selector.rs @@ -8,20 +8,28 @@ pub struct PhraseSelector<'a> { } impl<'a> PhraseSelector<'a> { - pub fn play_phrase (state: &'a T) -> Self { + pub fn play_phrase ( + state: &'a T, + focused: bool, + entered: bool, + ) -> Self { Self { + focused, + entered: focused && entered, + phrase: state.next_phrase(), title: "Now:", - phrase: state.play_phrase(), - focused: false, - entered: false, } } - pub fn next_phrase (state: &'a T) -> Self { + pub fn next_phrase ( + state: &'a T, + focused: bool, + entered: bool, + ) -> Self { Self { - title: "Next:", + focused, + entered: focused && entered, phrase: state.next_phrase(), - focused: false, - entered: false, + title: "Next:", } } } diff --git a/crates/tek_tui/src/tui_view_sequencer.rs b/crates/tek_tui/src/tui_view_sequencer.rs index e345549a..5b44c5de 100644 --- a/crates/tek_tui/src/tui_view_sequencer.rs +++ b/crates/tek_tui/src/tui_view_sequencer.rs @@ -7,8 +7,16 @@ impl Content for SequencerTui { TransportView::from(self), Split::right(20, col_up!( - PhraseSelector::play_phrase(&self.player).fixed_y(4), - PhraseSelector::next_phrase(&self.player).fixed_y(4), + 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),