From 2433239eaa2a4c6afd83913fb789e51fd6d3c09b Mon Sep 17 00:00:00 2001 From: unspeaker Date: Thu, 23 Jan 2025 21:03:59 +0100 Subject: [PATCH] scenes still don't align, though --- tek/src/view.rs | 61 +++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/tek/src/view.rs b/tek/src/view.rs index d5db6875..2faf5120 100644 --- a/tek/src/view.rs +++ b/tek/src/view.rs @@ -194,7 +194,7 @@ impl Tek { ) -> impl Content + 'a { Fixed::y(h, Bsp::a( Fill::x(Align::w(Fixed::x(self.w_sidebar() as u16, a))), - Fill::x(Align::c(Fixed::xy(w, h, b))) + Fill::x(Align::c(Fixed::x(w, b))) )) } fn view_inputs (&self) -> impl Content + use<'_> { @@ -218,13 +218,11 @@ impl Tek { let rec = false; let mon = false; let cells: ThunkBox<_> = per_track!(self.size.w();|self, track, _t|Bsp::s(Tui::bold(true, row!( - Tui::fg_bg(if rec { White } else { track.color.light.rgb }, track.color.dark.rgb, "Rcrd"), - Tui::fg_bg(if rec { White } else { track.color.dark.rgb }, track.color.dark.rgb, "▐"), - Tui::fg_bg(if mon { White } else { track.color.light.rgb }, track.color.dark.rgb, "Mntr"), + Tui::fg_bg(if rec { White } else { track.color.light.rgb }, track.color.dark.rgb, "Recrd"), + Tui::fg_bg(if mon { White } else { track.color.light.rgb }, track.color.dark.rgb, "Monit"), )), row!( - Tui::fg_bg(if rec { White } else { track.color.light.rgb }, track.color.darker.rgb, "CH**"), - Tui::fg_bg(if rec { White } else { track.color.dark.rgb }, track.color.darker.rgb, "▐"), - Tui::fg_bg(if mon { White } else { track.color.light.rgb }, track.color.darker.rgb, "CH**"), + Tui::fg_bg(if rec { White } else { track.color.light.rgb }, track.color.darker.rgb, "R▞▞▞▞"), + Tui::fg_bg(if mon { White } else { track.color.light.rgb }, track.color.darker.rgb, "M▞▞▞▞"), ))); self.view_row(w, h as u16, header, cells) } @@ -245,13 +243,11 @@ impl Tek { let mute = false; let solo = false; let cells: ThunkBox<_> = per_track!(self.size.w();|self, track, _t|Bsp::s(Tui::bold(true, row!( - Tui::fg_bg(if mute { White } else { track.color.light.rgb }, track.color.dark.rgb, "Play"), - Tui::fg_bg(if mute { White } else { track.color.dark.rgb }, track.color.dark.rgb, "▐"), - Tui::fg_bg(if solo { White } else { track.color.light.rgb }, track.color.dark.rgb, "Solo"), + Tui::fg_bg(if mute { White } else { track.color.light.rgb }, track.color.dark.rgb, "Play "), + Tui::fg_bg(if solo { White } else { track.color.light.rgb }, track.color.dark.rgb, "Solo "), )), row!( - Tui::fg_bg(if mute { White } else { track.color.light.rgb }, track.color.darker.rgb, "CH**"), - Tui::fg_bg(if mute { White } else { track.color.darker.rgb }, track.color.darker.rgb, "▐"), - Tui::fg_bg(if solo { White } else { track.color.light.rgb }, track.color.darker.rgb, "CH**"), + Tui::fg_bg(if mute { White } else { track.color.light.rgb }, track.color.darker.rgb, "P▞▞▞▞"), + Tui::fg_bg(if solo { White } else { track.color.light.rgb }, track.color.darker.rgb, "S▞▞▞▞"), ))); self.view_row(self.w(), h as u16, header, cells) } @@ -298,11 +294,9 @@ impl Tek { let scenes = move||self.scenes_sizes(editing, 2, 15); let selected_track = self.selected().track(); let selected_scene = self.selected().scene(); - let border = move|h, cell|Push::y(1, Fixed::y(h, Outer(false, bstyle).enclose(cell))); let header = move||{ let last_color = Arc::new(RwLock::new(ItemPalette::G[0])); - let iter = ||self.scenes_sizes(self.is_editing(), 2, 15); - let cell = { + let cell = { let last_color = last_color.clone(); move|i, color: &ItemPalette, name: Arc|phat_sel_3( self.selected().scene() == Some(i), @@ -315,18 +309,21 @@ impl Tek { Some(Reset) ) }; - Map::new(iter, move|(_, scene, y1, y2), s| { - let cell = cell(s, &scene.color, scene.name.clone()); + Map::new(scenes, move|(_, scene, y1, y2), s| { let height = (1 + y2 - y1) as u16; + let cell = cell(s, &scene.color, scene.name.clone()); *last_color.write().unwrap() = scene.color; - map_south(y1 as u16, height, border(height, cell)) + Either(y2 > size_h, (), map_south(y1 as u16, height, + Push::y(1, Fixed::y(height, Outer(false, bstyle) + .enclose(cell))))) }).boxed() }; - let border = move|x|Outer(true, bstyle).enclose_bg(x); let content: ThunkBox<_> = per_track!(self.size.w(); |self, track, t|{ + let tab = " Tab "; let last_color = self.fmtd.read().unwrap().last_color.clone(); let same_track = selected_track == Some(t+1); - border(Map::new(scenes, move|(_, scene, y1, y2), s|{ + Outer(true, bstyle).enclose_bg(Map::new(scenes, move|(_, scene, y1, y2), s|{ + let height = (1 + y2 - y1) as u16; let last_color = last_color.clone(); Thunk::new(move||{ let last_color = last_color.clone(); @@ -348,11 +345,8 @@ impl Tek { } else { Some(last_color.read().unwrap().base.rgb) }; - let mid = if selected { bg.light } else { bg.base }.rgb; - let low = Some(Reset); - let h = (1 + y2 - y1) as u16; + let mid = if selected { bg.light } else { bg.base }.rgb; *last_color.write().unwrap() = bg; - let tab = " Tab "; let name = if active { self.editor.as_ref() .map(|e|e.clip().as_ref().map(|c|c.clone())) @@ -372,11 +366,18 @@ impl Tek { &self.editor)); let cell = Thunk::new(move||Bsp::a( When::new(selected, Fill::y(Align::n(button(tab, "edit")))), - phat_sel_3(selected, Fill::xy(label()), Fill::xy(label()), top, mid, low))); - let cell = Either::new(active, editor, cell); - Either(y2 > size_h, - (), - map_south(y1 as u16, h, Push::y(1, Fixed::y(h, cell)))) + phat_sel_3( + selected, + Fill::xy(label()), + Fill::xy(label()), + top, + mid, + Some(Reset) + ))); + + Either(y2 > size_h, (), map_south(y1 as u16, height, + Push::y(1, Fixed::y(height, Outer(false, bstyle) + .enclose(Either::new(active, editor, cell)))))) }) })) });