From fadaaa16208184f899a421035e26e428ea371cf0 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Tue, 14 Jan 2025 22:41:43 +0100 Subject: [PATCH] add debug borders to scene grid to diagnose misalignment --- tek/src/lib.rs | 25 +++++++++++++------------ tek/src/view_arranger.edn | 2 +- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/tek/src/lib.rs b/tek/src/lib.rs index bb406053..462811ec 100644 --- a/tek/src/lib.rs +++ b/tek/src/lib.rs @@ -103,8 +103,8 @@ edn_view!(TuiOut: |self: App| self.size.of(EdnView::from_source(self, self.edn.a ":tracks" => self.row(self.w(), 3, self.track_header(), self.track_cells()).boxed(), ":inputs" => self.row(self.w(), 3, self.input_header(), self.input_cells()).boxed(), ":outputs" => self.row(self.w(), 3, self.output_header(), self.output_cells()).boxed(), - ":scenes" => self.row(self.w(), self.size.h().saturating_sub(9) as u16, - self.scene_header(), self.scene_cells(self.is_editing())).boxed() }}); + ":scenes" => Rugged(Style::default()).enclose(self.row(self.w(), self.size.h().saturating_sub(12) as u16, + Rugged(Style::default()).enclose(self.scene_header()), self.scene_cells(self.is_editing()))).boxed() }}); impl App { pub fn clock ( jack: &Arc>, @@ -352,7 +352,7 @@ impl App { Fill::x(Fixed::y(h + 1, cell)) ) }); - let column = Fixed::x(w, Tui::bg(Color::Reset, Align::y(cells)).boxed()); + let column = Fixed::x(w, Align::y(Rugged(Style::default()).enclose(cells))).boxed(); Fixed::x(w, map_east(x1 as u16, w, column)) }))).boxed()).into() } @@ -651,8 +651,8 @@ pub trait HasTracks: HasSelection + HasClock + HasJack + HasEditor + Send + Sync } fn track_header <'a> (&'a self) -> BoxThunk<'a, TuiOut> { (||Tui::bg(TuiTheme::g(32), Bsp::s( - help_tag("add ", "t", "rack"), - help_tag("", "a", "dd scene"), + button(" C-t ", " add track "), + button(" C-a ", " add scene "), )).boxed()).into() } fn track_cells <'a> (&'a self) -> BoxThunk<'a, TuiOut> { @@ -673,7 +673,7 @@ pub trait HasTracks: HasSelection + HasClock + HasJack + HasEditor + Send + Sync fn input_header <'a> (&'a self) -> BoxThunk<'a, TuiOut> { let fg = TuiTheme::g(224); let bg = TuiTheme::g(64); - (move||Bsp::s(help_tag("midi ", "I", "ns"), self.midi_ins().get(0).map(|inp|Bsp::s( + (move||Bsp::s(button(" I ", " midi ins "), self.midi_ins().get(0).map(|inp|Bsp::s( Fill::x(Tui::bold(true, Tui::fg_bg(fg, bg, Align::w(inp.name.clone())))), inp.connect.get(0).map(|connect|Fill::x(Align::w(Tui::bold(false, Tui::fg_bg(fg, bg, connect.info()))))), @@ -701,7 +701,7 @@ pub trait HasTracks: HasSelection + HasClock + HasJack + HasEditor + Send + Sync fn output_header <'a> (&'a self) -> BoxThunk<'a, TuiOut> { let fg = TuiTheme::g(224); let bg = TuiTheme::g(64); - (move||Bsp::s(help_tag("midi ", "O", "uts"), self.midi_outs().get(0).map(|out|Bsp::s( + (move||Bsp::s(button(" O ", " midi outs "), self.midi_outs().get(0).map(|out|Bsp::s( Fill::x(Tui::bold(true, Tui::fg_bg(fg, bg, Align::w(out.name.clone())))), out.connect.get(0).map(|connect|Fill::x(Align::w(Tui::bold(false, Tui::fg_bg(fg, bg, connect.info()))))), @@ -969,10 +969,11 @@ audio!(|self: App, client, scope|{ self.perf.update(t0, scope); Control::Continue }); -fn help_tag <'a> (before: &'a str, key: &'a str, after: &'a str) -> impl Content + 'a { - let lo = TuiTheme::g(128); - let hi = TuiTheme::orange(); - Tui::bold(true, row!(Tui::fg(lo, before), Tui::fg(hi, key), Tui::fg(lo, after))) +fn button <'a> (key: &'a str, label: &'a str) -> impl Content + 'a { + Tui::bold(true, Bsp::e( + Margin::x(1, Tui::fg_bg(TuiTheme::g(0), TuiTheme::orange(), key)), + Margin::x(1, Tui::fg_bg(TuiTheme::g(255), TuiTheme::g(96), label)), + )) } #[derive(Debug, Default)] struct Meter<'a>(pub &'a str, pub f32); content!(TuiOut: |self: Meter<'a>| col!( @@ -999,7 +1000,7 @@ content!(TuiOut: |self: Meters<'a>| col!( format!("R/{:>+9.3}", self.0[1]) )); pub struct ClockView<'a> { pub compact: bool, pub clock: &'a Clock } -content!(TuiOut: |self: ClockView<'a>| Outer(Style::default().fg(TuiTheme::g(255))).enclose(row!( +content!(TuiOut: |self: ClockView<'a>| Outer(Style::default().fg(TuiTheme::g(0))).enclose(row!( OutputStats::new(self.compact, self.clock), " ", PlayPause { compact: false, playing: self.clock.is_rolling() }, diff --git a/tek/src/view_arranger.edn b/tek/src/view_arranger.edn index 0a6ae1ee..c30a2520 100644 --- a/tek/src/view_arranger.edn +++ b/tek/src/view_arranger.edn @@ -1,3 +1,3 @@ (bsp/s (fixed/y 2 :toolbar) (fill/x (align/c (bsp/w (fixed/x :pool-w :pool) - (bsp/s :outputs (bsp/s :inputs (bsp/s :tracks :scenes))))))) + (bsp/n (fixed/y 3 :outputs) (bsp/n (fixed/y 3 :inputs) (bsp/n (fixed/y 3 :tracks) :scenes)))))))