From b3db10607a5db2968b234d6d885129db7d8a4759 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sat, 19 Oct 2024 23:32:20 +0300 Subject: [PATCH] transport toolbar layout --- crates/tek_sequencer/src/transport_tui.rs | 31 +++++++++++++---------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/crates/tek_sequencer/src/transport_tui.rs b/crates/tek_sequencer/src/transport_tui.rs index 18683b9e..e011b7b1 100644 --- a/crates/tek_sequencer/src/transport_tui.rs +++ b/crates/tek_sequencer/src/transport_tui.rs @@ -2,7 +2,7 @@ use crate::*; impl Content for TransportToolbar { type Engine = Tui; fn content (&self) -> impl Widget { - row!( + lay!( self.focus.wrap(self.focused, TransportToolbarFocus::PlayPause, &Styled( match self.playing { Some(TransportState::Stopped) => Some(GRAY_DIM.bold()), @@ -16,16 +16,20 @@ impl Content for TransportToolbar { Some(TransportState::Stopped) => "⏹ STOPPED", _ => unreachable!(), } - ).min_xy(11, 2).push_x(1)), - self.focus.wrap(self.focused, TransportToolbarFocus::Bpm, &Outset::X(1u16, row! { - "BPM ", format!("{}.{:03}", self.bpm as usize, (self.bpm * 1000.0) % 1000.0) - })), - self.focus.wrap(self.focused, TransportToolbarFocus::Quant, &Outset::X(1u16, row! { - "QUANT ", ppq_to_name(self.quant as usize) - })), - self.focus.wrap(self.focused, TransportToolbarFocus::Sync, &Outset::X(1u16, row! { - "SYNC ", ppq_to_name(self.sync as usize) - })), + ).min_xy(11, 2).push_x(1)).align_x().fill_x(), + + row!( + self.focus.wrap(self.focused, TransportToolbarFocus::Bpm, &Outset::X(1u16, row! { + "BPM ", format!("{}.{:03}", self.bpm as usize, (self.bpm * 1000.0) % 1000.0) + })), + //self.focus.wrap(self.focused, TransportToolbarFocus::Quant, &Outset::X(1u16, row! { + //"QUANT ", ppq_to_name(self.quant as usize) + //})), + self.focus.wrap(self.focused, TransportToolbarFocus::Sync, &Outset::X(1u16, row! { + "SYNC ", ppq_to_name(self.sync as usize) + })), + ).align_w().fill_x(), + self.focus.wrap(self.focused, TransportToolbarFocus::Clock, &{ let Self { frame: _frame, pulse, ppq, usecs, .. } = self; let (beats, pulses) = if *ppq > 0 { (pulse / ppq, pulse % ppq) } else { (0, 0) }; @@ -34,8 +38,9 @@ impl Content for TransportToolbar { let (minutes, seconds) = (seconds / 60, seconds % 60); let time1 = format!("{bars}.{beats}.{pulses:02}"); let time2 = format!("{minutes}:{seconds:02}:{msecs:03}"); - row!(time1.as_str(), time2.as_str()).outset_x(1) - }), + row!("B" ,time1.as_str(), " T", time2.as_str()).outset_x(1) + }).align_e().fill_x(), + ).fill_x().bg(Color::Rgb(40, 50, 30)) } }