From f35ca28c02945743257654b838293f24a67d4a1c Mon Sep 17 00:00:00 2001 From: CrispyPin Date: Tue, 24 Dec 2024 23:30:02 +0100 Subject: [PATCH] cleanup --- src/editor.rs | 8 ++------ src/ui.rs | 17 ++++++++--------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/src/editor.rs b/src/editor.rs index cf42bdb..b87a036 100644 --- a/src/editor.rs +++ b/src/editor.rs @@ -884,15 +884,11 @@ impl Editor { self.tooltip.add(368, 4, 48, 32, "Speed"); draw_usize(d, textures, 1 << self.sim_speed, (368, 4), SPEED_DIGITS, 1); slider( - d, - &self.mouse, + (d, &self.mouse), + rect(368, 24, 48, 12), &mut self.sim_speed, 0, MAX_SPEED_POWER, - 368, - 24, - 48, - 12, ); self.tooltip.add(420, 4, 180, 32, "Steps"); diff --git a/src/ui.rs b/src/ui.rs index 0fbd9c4..cbf4645 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -388,21 +388,20 @@ pub fn draw_usize_small( } pub fn slider( - d: &mut RaylibDrawHandle, - mouse: &MouseInput, + (d, mouse): (&mut RaylibDrawHandle, &MouseInput), + bounds: Rectangle, value: &mut u8, min: u8, max: u8, - x: i32, - y: i32, - width: i32, - height: i32, ) -> bool { + // draw state // the +1 makes the lowest state look slightly filled and the max state fully filled let percent = (*value - min + 1) as f32 / (max - min + 1) as f32; - d.draw_rectangle(x, y, width, height, BG_WIDGET); - d.draw_rectangle(x, y, (width as f32 * percent) as i32, height, Color::CYAN); - let bounds = Rectangle::new(x as f32, y as f32, width as f32, height as f32); + d.draw_rectangle_rec(bounds, BG_WIDGET); + let mut filled_bounds = bounds; + filled_bounds.width *= percent; + d.draw_rectangle_rec(filled_bounds, Color::CYAN); + // interaction if mouse.is_over(bounds) { if mouse.left_hold() { let percent = (mouse.pos().x - bounds.x) / bounds.width;