diff options
author | 2024-03-12 18:17:19 +0100 | |
---|---|---|
committer | 2024-03-12 18:17:19 +0100 | |
commit | 3d915d3cb30e5d08829aa2928676a53c505a601e (patch) | |
tree | 4acb46e00ef3037aad6a8273ab67d4278d560784 /widget/src/vertical_slider.rs | |
parent | 34317bba5db0a0f9e3ffdbbac0d7136a32bd0f95 (diff) | |
parent | 98621aa344a7a0e1b23f320d21a4687af559998e (diff) | |
download | iced-3d915d3cb30e5d08829aa2928676a53c505a601e.tar.gz iced-3d915d3cb30e5d08829aa2928676a53c505a601e.tar.bz2 iced-3d915d3cb30e5d08829aa2928676a53c505a601e.zip |
Merge pull request #2326 from iced-rs/closure-styles
Use closures for widget styling
Diffstat (limited to '')
-rw-r--r-- | widget/src/vertical_slider.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/widget/src/vertical_slider.rs b/widget/src/vertical_slider.rs index f7030584..2aa8f4d1 100644 --- a/widget/src/vertical_slider.rs +++ b/widget/src/vertical_slider.rs @@ -51,7 +51,7 @@ pub struct VerticalSlider<'a, T, Message, Theme = crate::Theme> { on_release: Option<Message>, width: f32, height: Length, - style: Style<Theme>, + style: Style<'a, Theme>, } impl<'a, T, Message, Theme> VerticalSlider<'a, T, Message, Theme> @@ -72,7 +72,7 @@ where /// `Message`. pub fn new<F>(range: RangeInclusive<T>, value: T, on_change: F) -> Self where - Theme: DefaultStyle, + Theme: DefaultStyle + 'a, F: 'a + Fn(T) -> Message, { let value = if value >= *range.start() { @@ -97,7 +97,7 @@ where on_release: None, width: Self::DEFAULT_WIDTH, height: Length::Fill, - style: Theme::default_style(), + style: Box::new(Theme::default_style), } } @@ -133,8 +133,11 @@ where } /// Sets the style of the [`VerticalSlider`]. - pub fn style(mut self, style: fn(&Theme, Status) -> Appearance) -> Self { - self.style = style.into(); + pub fn style( + mut self, + style: impl Fn(&Theme, Status) -> Appearance + 'a, + ) -> Self { + self.style = Box::new(style); self } |