diff --git a/egui_demo_lib/src/apps/demo/demo_windows.rs b/egui_demo_lib/src/apps/demo/demo_windows.rs index fa48595a..31483056 100644 --- a/egui_demo_lib/src/apps/demo/demo_windows.rs +++ b/egui_demo_lib/src/apps/demo/demo_windows.rs @@ -14,6 +14,7 @@ impl Default for Demos { fn default() -> Self { let demos: Vec> = vec![ Box::new(super::WidgetGallery::default()), + Box::new(super::sliders::Sliders::default()), Box::new(super::input_test::InputTest::default()), Box::new(super::FontBook::default()), Box::new(super::Painting::default()), diff --git a/egui_demo_lib/src/apps/demo/mod.rs b/egui_demo_lib/src/apps/demo/mod.rs index 7de770ad..7234dc02 100644 --- a/egui_demo_lib/src/apps/demo/mod.rs +++ b/egui_demo_lib/src/apps/demo/mod.rs @@ -15,7 +15,7 @@ pub mod font_contents_ubuntu; pub mod input_test; mod painting; mod scrolls; -mod sliders; +pub mod sliders; mod tests; pub mod toggle_switch; mod widget_gallery; diff --git a/egui_demo_lib/src/apps/demo/sliders.rs b/egui_demo_lib/src/apps/demo/sliders.rs index bbe78620..f9ee53a5 100644 --- a/egui_demo_lib/src/apps/demo/sliders.rs +++ b/egui_demo_lib/src/apps/demo/sliders.rs @@ -29,8 +29,24 @@ impl Default for Sliders { } } -impl Sliders { - pub fn ui(&mut self, ui: &mut Ui) { +impl super::Demo for Sliders { + fn name(&self) -> &str { + "⬌ Sliders" + } + + fn show(&mut self, ctx: &egui::CtxRef, open: &mut bool) { + egui::Window::new(self.name()) + .open(open) + .resizable(false) + .show(ctx, |ui| { + use super::View; + self.ui(ui); + }); + } +} + +impl super::View for Sliders { + fn ui(&mut self, ui: &mut Ui) { let Self { min, max, @@ -84,7 +100,7 @@ impl Sliders { } ui.separator(); - ui.label("Demo slider range:"); + ui.label("Slider range:"); ui.add( Slider::f64(min, full_range.clone()) .logarithmic(true) diff --git a/egui_demo_lib/src/apps/demo/widgets.rs b/egui_demo_lib/src/apps/demo/widgets.rs index 663be8c0..f077d435 100644 --- a/egui_demo_lib/src/apps/demo/widgets.rs +++ b/egui_demo_lib/src/apps/demo/widgets.rs @@ -20,7 +20,6 @@ pub struct Widgets { button_enabled: bool, count: usize, radio: Enum, - sliders: super::Sliders, angle: f32, color: Color32, single_line_text_input: String, @@ -34,7 +33,6 @@ impl Default for Widgets { button_enabled: true, radio: Enum::First, count: 0, - sliders: Default::default(), angle: std::f32::consts::TAU / 3.0, color: (Rgba::from_rgb(0.0, 1.0, 0.5) * 0.75).into(), single_line_text_input: "Hello World!".to_owned(), @@ -79,16 +77,20 @@ impl Widgets { ui.label("Tooltips can be more than just simple text.") .on_hover_ui(tooltip_ui); - ui.horizontal(|ui| { - ui.radio_value(&mut self.radio, Enum::First, "First"); - ui.radio_value(&mut self.radio, Enum::Second, "Second"); - ui.radio_value(&mut self.radio, Enum::Third, "Third"); - }); + egui::Frame::group(ui.style()).show(ui, |ui| { + ui.label("This is a group of widgets"); - egui::combo_box_with_label(ui, "Combo Box", format!("{:?}", self.radio), |ui| { - ui.selectable_value(&mut self.radio, Enum::First, "First"); - ui.selectable_value(&mut self.radio, Enum::Second, "Second"); - ui.selectable_value(&mut self.radio, Enum::Third, "Third"); + ui.horizontal(|ui| { + ui.radio_value(&mut self.radio, Enum::First, "First"); + ui.radio_value(&mut self.radio, Enum::Second, "Second"); + ui.radio_value(&mut self.radio, Enum::Third, "Third"); + }); + + egui::combo_box_with_label(ui, "Combo Box", format!("{:?}", self.radio), |ui| { + ui.selectable_value(&mut self.radio, Enum::First, "First"); + ui.selectable_value(&mut self.radio, Enum::Second, "Second"); + ui.selectable_value(&mut self.radio, Enum::Third, "Third"); + }); }); ui.checkbox(&mut self.button_enabled, "Button enabled"); @@ -104,25 +106,6 @@ impl Widgets { ui.label(format!("The button has been clicked {} times.", self.count)); }); - egui::Frame::group(ui.style()).show(ui, |ui| { - ui.horizontal(|ui| { - ui.label("Drag this value to change it:"); - ui.add(DragValue::f64(&mut self.sliders.value).speed(0.01)); - }); - - ui.add( - egui::Slider::f64(&mut self.sliders.value, 1.0..=100.0) - .logarithmic(true) - .text("A slider"), - ); - - egui::CollapsingHeader::new("More sliders") - .default_open(false) - .show(ui, |ui| { - self.sliders.ui(ui); - }); - }); - ui.separator(); ui.horizontal_for_text(TextStyle::Body, |ui| {