From 72f47bc837e951003c5a9cf9cfd89e60e009bd36 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Wed, 21 Aug 2024 16:46:31 +0300 Subject: [PATCH] wip: broken collect enum --- crates/tek_core/src/lib.rs | 3 + crates/tek_core/src/render.rs | 185 ++++++++-------------- crates/tek_core/src/render_axis.rs | 35 ++++ crates/tek_core/src/render_collect.rs | 41 +++++ crates/tek_core/src/render_fill.rs | 42 +++++ crates/tek_sequencer/src/arranger_view.rs | 152 +++++++++++++----- 6 files changed, 301 insertions(+), 157 deletions(-) create mode 100644 crates/tek_core/src/render_axis.rs create mode 100644 crates/tek_core/src/render_collect.rs create mode 100644 crates/tek_core/src/render_fill.rs diff --git a/crates/tek_core/src/lib.rs b/crates/tek_core/src/lib.rs index 3b028d19..73ac37be 100644 --- a/crates/tek_core/src/lib.rs +++ b/crates/tek_core/src/lib.rs @@ -49,7 +49,10 @@ submod! { jack_event jack_ports render + render_axis render_border + render_collect + render_fill render_split render_theme time_base diff --git a/crates/tek_core/src/render.rs b/crates/tek_core/src/render.rs index 64d81f51..0e877f30 100644 --- a/crates/tek_core/src/render.rs +++ b/crates/tek_core/src/render.rs @@ -36,86 +36,17 @@ pub fn render_thread ( })) } -pub fn make_dim (buf: &mut Buffer) { - for cell in buf.content.iter_mut() { - cell.bg = ratatui::style::Color::Rgb(30,30,30); - cell.fg = ratatui::style::Color::Rgb(100,100,100); - cell.modifier = ratatui::style::Modifier::DIM; - } -} - -pub fn center_box (area: Rect, w: u16, h: u16) -> Rect { - let width = w.min(area.width * 3 / 5); - let height = h.min(area.width * 3 / 5); - let x = area.x + (area.width - width) / 2; - let y = area.y + (area.height - height) / 2; - Rect { x, y, width, height } -} - -pub fn buffer_update ( - buf: &mut Buffer, area: Rect, callback: &impl Fn(&mut Cell, u16, u16) -) { - for row in 0..area.height { - let y = area.y + row; - for col in 0..area.width { - let x = area.x + col; - if x < buf.area.width && y < buf.area.height { - callback(buf.get_mut(x, y), col, row); - } - } - } -} - -pub fn fill_fg (buf: &mut Buffer, area: Rect, color: Color) { - buffer_update(buf, area, &|cell,_,_|{cell.set_fg(color);}) -} - -pub fn fill_bg (buf: &mut Buffer, area: Rect, color: Color) { - buffer_update(buf, area, &|cell,_,_|{cell.set_bg(color);}) -} - -pub fn to_fill_bg (color: Color) -> impl Render { - move |buf: &mut Buffer, area: Rect|{ - fill_bg(buf, area, color); - Ok(area) - } -} - -pub fn fill_char (buf: &mut Buffer, area: Rect, c: char) { - buffer_update(buf, area, &|cell,_,_|{cell.set_char(c);}) -} - -pub fn half_block (lower: bool, upper: bool) -> Option { - match (lower, upper) { - (true, true) => Some('█'), - (true, false) => Some('▄'), - (false, true) => Some('▀'), - _ => None - } -} - -pub trait Blit { - // Render something to X, Y coordinates in a buffer, ignoring width/height. - fn blit (&self, buf: &mut Buffer, x: u16, y: u16, style: Option