From d07ed000344a92305c237751901c30c7b26717fe Mon Sep 17 00:00:00 2001 From: unspeaker Date: Thu, 19 Dec 2024 13:40:41 +0100 Subject: [PATCH] fix arranger inverse border --- crates/tek/src/tui/app_arranger.rs | 68 ++++++++++++--------------- crates/tek/src/tui/arranger_mode_v.rs | 4 +- crates/tek/src/tui/arranger_scene.rs | 2 +- 3 files changed, 32 insertions(+), 42 deletions(-) diff --git a/crates/tek/src/tui/app_arranger.rs b/crates/tek/src/tui/app_arranger.rs index 60e2160f..a33d37b9 100644 --- a/crates/tek/src/tui/app_arranger.rs +++ b/crates/tek/src/tui/app_arranger.rs @@ -26,58 +26,48 @@ from_jack!(|jack| ArrangerTui { ))); Self { clock, - phrases: PhraseListModel::from(&phrase), - editor: PhraseEditorModel::from(&phrase), - selected: ArrangerSelection::Clip(0, 0), - scenes: vec![], - tracks: vec![], - color: TuiTheme::bg().into(), - mode: ArrangerMode::V(1), - size: Measure::new(), - splits: [12, 20], - midi_buf: vec![vec![];65536], - note_buf: vec![], - perf: PerfModel::default(), - jack: jack.clone(), + phrases: PhraseListModel::from(&phrase), + editor: PhraseEditorModel::from(&phrase), + selected: ArrangerSelection::Clip(0, 0), + scenes: vec![], + tracks: vec![], + color: TuiTheme::bg().into(), + mode: ArrangerMode::V(1), + size: Measure::new(), + splits: [12, 20], + midi_buf: vec![vec![];65536], + note_buf: vec![], + perf: PerfModel::default(), + jack: jack.clone(), } }); render!(|self: ArrangerTui|{ let arranger = ||lay!(|add|{ let color = self.color; - //add(&Fill::wh(Lozenge(Style::default().bg(color.light.rgb).fg(color.darker.rgb))))?; - add(&self.size)?; + add(&Fill::wh(Tui::bg(color.darkest.rgb, "x")))?; + add(&Fill::wh(Lozenge(Style::default().fg(color.light.rgb).bg(color.darker.rgb))))?; match self.mode { ArrangerMode::H => todo!("horizontal arranger"), - ArrangerMode::V(factor) => add(&lay!([ - Align::se(Fill::wh(Tui::pull_x(1, Tui::fg(TuiTheme::title_fg(true), - format!("{}x{}", self.size.w(), self.size.h())) - ))), - Tui::bg(color.darkest.rgb, lay!(![ - ArrangerVColumnSeparator::from(self), - ArrangerVRowSeparator::from((self, factor)), - col!(![ - ArrangerVHeader::from(self), - ArrangerVContent::from((self, factor)), - ]), - ArrangerVCursor::from((self, factor)), - ])), + ArrangerMode::V(factor) => add(&lay!(![ + ArrangerVColumnSeparator::from(self), + ArrangerVRowSeparator::from((self, factor)), + col!(![ + ArrangerVHeader::from(self), + ArrangerVContent::from((self, factor)), + ]), + ArrangerVCursor::from((self, factor)), ])), } }); - let with_pool = |x|Split::left(false, self.splits[1], PhraseListView(&self.phrases), x); let play = Fixed::wh(5, 2, PlayPause(self.clock.is_rolling())); let transport = TransportView::from((self, None, true)); let with_transport = |x|col!([row!(![&play, &transport]), &x]); - let color = self.color; - let with_frame = |x|lay!([ - Fill::wh(Tui::bg(color.darkest.rgb, " ")), - Fill::wh(Lozenge(Style::default().bg(color.light.rgb).fg(color.darker.rgb))), - x - ]); - with_transport(with_pool(with_frame(row!([ - Fixed::w(30, arranger()), - Fill::wh(&self.editor) - ])))) + let with_pool = |x|Split::left(false, self.splits[1], PhraseListView(&self.phrases), x); + with_transport(with_pool(col!([ + &self.size, + Fill::w(Fixed::h(20, arranger())), + Fill::w(Fixed::h(25, &self.editor)), + ]))) }); audio!(|self: ArrangerTui, client, scope|{ // Start profiling cycle diff --git a/crates/tek/src/tui/arranger_mode_v.rs b/crates/tek/src/tui/arranger_mode_v.rs index 0b09fc5e..1c03986e 100644 --- a/crates/tek/src/tui/arranger_mode_v.rs +++ b/crates/tek/src/tui/arranger_mode_v.rs @@ -198,8 +198,8 @@ render!(|self: ArrangerVHeader<'a>|row!( .unwrap_or("(none)".into())); Tui::push_x(self.scenes_w, Tui::bg(track.color().base.rgb, - Tui::min_xy(w as u16, self.header_h, - col!([name, timer])))) + Tui::min_xy(w as u16, self.header_h, + col!([name, timer])))) } )); diff --git a/crates/tek/src/tui/arranger_scene.rs b/crates/tek/src/tui/arranger_scene.rs index b9039f38..61278579 100644 --- a/crates/tek/src/tui/arranger_scene.rs +++ b/crates/tek/src/tui/arranger_scene.rs @@ -114,7 +114,7 @@ impl ArrangerTui { Ok(&mut self.scenes_mut()[index]) } fn scene_default_name (&self) -> String { - format!("S{:3>0}", self.scenes().len() + 1) + format!("S{:3>}", self.scenes().len() + 1) } pub fn selected_scene (&self) -> Option<&ArrangerScene> { self.selected.scene().map(|s|self.scenes().get(s)).flatten()