diff options
author | 2020-08-01 08:18:52 +0200 | |
---|---|---|
committer | 2020-08-01 08:18:52 +0200 | |
commit | 9ba4cfd23f4620bab93df9616617643604db2c79 (patch) | |
tree | fda380f2fda871d0c3f736fb180d3eb4581758a7 /native | |
parent | 72cfe85f7f2d3cc1221b788b7d86b99057bb58eb (diff) | |
download | iced-9ba4cfd23f4620bab93df9616617643604db2c79.tar.gz iced-9ba4cfd23f4620bab93df9616617643604db2c79.tar.bz2 iced-9ba4cfd23f4620bab93df9616617643604db2c79.zip |
Add `height` method to `Slider`
Diffstat (limited to 'native')
-rw-r--r-- | native/src/renderer/null.rs | 4 | ||||
-rw-r--r-- | native/src/widget/slider.rs | 21 |
2 files changed, 16 insertions, 9 deletions
diff --git a/native/src/renderer/null.rs b/native/src/renderer/null.rs index 07f79319..2aee0da1 100644 --- a/native/src/renderer/null.rs +++ b/native/src/renderer/null.rs @@ -197,9 +197,7 @@ impl checkbox::Renderer for Null { impl slider::Renderer for Null { type Style = (); - fn height(&self) -> u32 { - 30 - } + const DEFAULT_HEIGHT: u16 = 30; fn draw( &mut self, diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs index 70f2b6ac..c49053f1 100644 --- a/native/src/widget/slider.rs +++ b/native/src/widget/slider.rs @@ -46,6 +46,7 @@ pub struct Slider<'a, T, Message, Renderer: self::Renderer> { on_change: Box<dyn Fn(T) -> Message>, on_release: Option<Message>, width: Length, + height: u16, style: Renderer::Style, } @@ -95,6 +96,7 @@ where on_change: Box::new(on_change), on_release: None, width: Length::Fill, + height: Renderer::DEFAULT_HEIGHT, style: Renderer::Style::default(), } } @@ -120,6 +122,14 @@ where self } + /// Sets the height of the [`Slider`]. + /// + /// [`Slider`]: struct.Slider.html + pub fn height(mut self, height: u16) -> Self { + self.height = height; + self + } + /// Sets the style of the [`Slider`]. /// /// [`Slider`]: struct.Slider.html @@ -171,12 +181,11 @@ where fn layout( &self, - renderer: &Renderer, + _renderer: &Renderer, limits: &layout::Limits, ) -> layout::Node { - let limits = limits - .width(self.width) - .height(Length::Units(renderer.height() as u16)); + let limits = + limits.width(self.width).height(Length::Units(self.height)); let size = limits.resolve(Size::ZERO); @@ -281,10 +290,10 @@ pub trait Renderer: crate::Renderer { /// The style supported by this renderer. type Style: Default; - /// Returns the height of the [`Slider`]. + /// The default height of a [`Slider`]. /// /// [`Slider`]: struct.Slider.html - fn height(&self) -> u32; + const DEFAULT_HEIGHT: u16; /// Draws a [`Slider`]. /// |