Add height method to Slider

This commit is contained in:
Héctor Ramón Jiménez 2020-08-01 08:18:52 +02:00
parent 72cfe85f7f
commit 9ba4cfd23f
3 changed files with 29 additions and 24 deletions

View file

@ -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,

View file

@ -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`].
///