diff options
| author | 2020-06-13 13:21:49 +0200 | |
|---|---|---|
| committer | 2020-06-13 13:21:49 +0200 | |
| commit | f131969c47bb4a32d60d5be4c2bece0688b0a418 (patch) | |
| tree | 769fbc48ce33bfcbe0504ae6efc9c9642cd78fc5 /web/src | |
| parent | 2a516dfc4823feb16054e8d484637014e4eedcce (diff) | |
| parent | c3643eaf6d90dc8b60c0b762200bf1f8097cdfe9 (diff) | |
| download | iced-f131969c47bb4a32d60d5be4c2bece0688b0a418.tar.gz iced-f131969c47bb4a32d60d5be4c2bece0688b0a418.tar.bz2 iced-f131969c47bb4a32d60d5be4c2bece0688b0a418.zip | |
Merge pull request #381 from loewenheim/slider_step
Added `step` member to slider widgets
Diffstat (limited to '')
| -rw-r--r-- | web/src/widget/slider.rs | 16 | 
1 files changed, 14 insertions, 2 deletions
| diff --git a/web/src/widget/slider.rs b/web/src/widget/slider.rs index 5aa6439e..60d69798 100644 --- a/web/src/widget/slider.rs +++ b/web/src/widget/slider.rs @@ -16,6 +16,8 @@ use std::{ops::RangeInclusive, rc::Rc};  ///  /// A [`Slider`] will try to fill the horizontal space of its container.  /// +/// The step size defaults to 1.0. +///  /// [`Slider`]: struct.Slider.html  ///  /// # Example @@ -37,6 +39,7 @@ use std::{ops::RangeInclusive, rc::Rc};  pub struct Slider<'a, Message> {      _state: &'a mut State,      range: RangeInclusive<f32>, +    step: f32,      value: f32,      on_change: Rc<Box<dyn Fn(f32) -> Message>>,      width: Length, @@ -69,6 +72,7 @@ impl<'a, Message> Slider<'a, Message> {              _state: state,              value: value.max(*range.start()).min(*range.end()),              range, +            step: 1.0,              on_change: Rc::new(Box::new(on_change)),              width: Length::Fill,              style: Default::default(), @@ -90,6 +94,14 @@ impl<'a, Message> Slider<'a, Message> {          self.style = style.into();          self      } + +    /// Sets the step size of the [`Slider`]. +    /// +    /// [`Slider`]: struct.Slider.html +    pub fn step(mut self, step: f32) -> Self { +        self.step = step; +        self +    }  }  impl<'a, Message> Widget<Message> for Slider<'a, Message> @@ -110,15 +122,15 @@ where          let min = bumpalo::format!(in bump, "{}", start);          let max = bumpalo::format!(in bump, "{}", end);          let value = bumpalo::format!(in bump, "{}", self.value); +        let step = bumpalo::format!(in bump, "{}", self.step);          let on_change = self.on_change.clone();          let event_bus = bus.clone(); -        // TODO: Make `step` configurable          // TODO: Styling          input(bump)              .attr("type", "range") -            .attr("step", "0.01") +            .attr("step", step.into_bump_str())              .attr("min", min.into_bump_str())              .attr("max", max.into_bump_str())              .attr("value", value.into_bump_str()) | 
