From fd95f8a146feed9184af77e871ce63201211cf8b Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Thu, 27 Aug 2020 22:06:28 +0200 Subject: [PATCH] [slider] automatic slider precision display --- egui/src/demos/app.rs | 6 +-- egui/src/style.rs | 22 +++++------ egui/src/widgets/slider.rs | 81 ++++++++++++++++++++++++-------------- 3 files changed, 63 insertions(+), 46 deletions(-) diff --git a/egui/src/demos/app.rs b/egui/src/demos/app.rs index bda1c408..72e25bd4 100644 --- a/egui/src/demos/app.rs +++ b/egui/src/demos/app.rs @@ -403,11 +403,7 @@ impl Widgets { ui.add(label!("The button has been clicked {} times", self.count)); }); - ui.add( - Slider::f32(&mut self.slider_value, -10.0..=10.0) - .text("value") - .precision(2), - ); + ui.add(Slider::f32(&mut self.slider_value, -10.0..=10.0).text("value")); if ui.add(Button::new("Double it")).clicked { self.slider_value *= 2.0; } diff --git a/egui/src/style.rs b/egui/src/style.rs index c1b4b645..4d9e9f28 100644 --- a/egui/src/style.rs +++ b/egui/src/style.rs @@ -248,16 +248,16 @@ impl Style { ui.add(Checkbox::new(&mut self.debug_widget_rects, "Paint debug rectangles around widgets")); ui.add(Checkbox::new(&mut self.debug_resize, "Debug Resize")); - ui.add(Slider::f32(&mut self.item_spacing.x, 0.0..=10.0).text("item_spacing.x").precision(0)); - ui.add(Slider::f32(&mut self.item_spacing.y, 0.0..=10.0).text("item_spacing.y").precision(0)); - ui.add(Slider::f32(&mut self.window_padding.x, 0.0..=10.0).text("window_padding.x").precision(0)); - ui.add(Slider::f32(&mut self.window_padding.y, 0.0..=10.0).text("window_padding.y").precision(0)); - ui.add(Slider::f32(&mut self.indent, 0.0..=100.0).text("indent").precision(0)); - ui.add(Slider::f32(&mut self.button_padding.x, 0.0..=20.0).text("button_padding.x").precision(0)); - ui.add(Slider::f32(&mut self.button_padding.y, 0.0..=20.0).text("button_padding.y").precision(0)); - ui.add(Slider::f32(&mut self.clickable_diameter, 0.0..=60.0).text("clickable_diameter").precision(0)); - ui.add(Slider::f32(&mut self.start_icon_width, 0.0..=60.0).text("start_icon_width").precision(0)); - ui.add(Slider::f32(&mut self.line_width, 0.0..=10.0).text("line_width").precision(1)); - ui.add(Slider::f32(&mut self.animation_time, 0.0..=1.0).text("animation_time").precision(2)); + ui.add(Slider::f32(&mut self.item_spacing.x, 0.0..=10.0).text("item_spacing.x")); + ui.add(Slider::f32(&mut self.item_spacing.y, 0.0..=10.0).text("item_spacing.y")); + ui.add(Slider::f32(&mut self.window_padding.x, 0.0..=10.0).text("window_padding.x")); + ui.add(Slider::f32(&mut self.window_padding.y, 0.0..=10.0).text("window_padding.y")); + ui.add(Slider::f32(&mut self.indent, 0.0..=100.0).text("indent")); + ui.add(Slider::f32(&mut self.button_padding.x, 0.0..=20.0).text("button_padding.x")); + ui.add(Slider::f32(&mut self.button_padding.y, 0.0..=20.0).text("button_padding.y")); + ui.add(Slider::f32(&mut self.clickable_diameter, 0.0..=60.0).text("clickable_diameter")); + ui.add(Slider::f32(&mut self.start_icon_width, 0.0..=60.0).text("start_icon_width")); + ui.add(Slider::f32(&mut self.line_width, 0.0..=10.0).text("line_width")); + ui.add(Slider::f32(&mut self.animation_time, 0.0..=1.0).text("animation_time")); } } diff --git a/egui/src/widgets/slider.rs b/egui/src/widgets/slider.rs index 3f72217f..e7b3ee47 100644 --- a/egui/src/widgets/slider.rs +++ b/egui/src/widgets/slider.rs @@ -12,7 +12,7 @@ pub struct Slider<'a> { range: RangeInclusive, // TODO: label: Option