This commit is contained in:
Crispy 2024-12-24 23:30:02 +01:00
parent 3906c76b13
commit f35ca28c02
2 changed files with 10 additions and 15 deletions

View file

@ -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");

View file

@ -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;