From ba95042fff378213f5029b2b164d79e768482a47 Mon Sep 17 00:00:00 2001 From: Casper Storm Date: Mon, 12 Dec 2022 15:27:00 +0100 Subject: [PATCH 1/3] Vertical orientation added to Slider. --- Cargo.toml | 1 + examples/slider/Cargo.toml | 9 ++ examples/slider/README.md | 14 +++ examples/slider/sliders.gif | Bin 0 -> 87275 bytes examples/slider/src/main.rs | 69 +++++++++++++ native/src/widget/slider.rs | 199 ++++++++++++++++++++++++++++-------- 6 files changed, 251 insertions(+), 41 deletions(-) create mode 100644 examples/slider/Cargo.toml create mode 100644 examples/slider/README.md create mode 100644 examples/slider/sliders.gif create mode 100644 examples/slider/src/main.rs diff --git a/Cargo.toml b/Cargo.toml index 9c6a435a99..e0eec17f4d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -90,6 +90,7 @@ members = [ "examples/tour", "examples/url_handler", "examples/websocket", + "examples/slider", ] [dependencies] diff --git a/examples/slider/Cargo.toml b/examples/slider/Cargo.toml new file mode 100644 index 0000000000..112d7cff5e --- /dev/null +++ b/examples/slider/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "slider" +version = "0.1.0" +authors = ["Casper Rogild Storm"] +edition = "2021" +publish = false + +[dependencies] +iced = { path = "../.." } diff --git a/examples/slider/README.md b/examples/slider/README.md new file mode 100644 index 0000000000..0d409dc687 --- /dev/null +++ b/examples/slider/README.md @@ -0,0 +1,14 @@ +## Slider + +A bar and a handle that selects a single value from a range of values. +Can be oriented both vertical and horizontal. + +
+ +
+ +You can run it with `cargo run`: + +``` +cargo run --package slider +``` diff --git a/examples/slider/sliders.gif b/examples/slider/sliders.gif new file mode 100644 index 0000000000000000000000000000000000000000..f906d05ab1a6a43705e4a6911804fdbea3e0ca8a GIT binary patch literal 87275 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

-g;MVdQeHt)E?)#Ye9^NKyr;%Ke@{4B0F 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 iced::Result { + Slider::run(Settings::default()) +} + +#[derive(Debug, Clone)] +pub enum Message { + SliderChanged(u8), +} + +pub struct Slider { + slider_value: u8, +} + +impl Sandbox for Slider { + type Message = Message; + + fn new() -> Slider { + Slider { slider_value: 50 } + } + + fn title(&self) -> String { + String::from("Slider - Iced") + } + + fn update(&mut self, message: Message) { + match message { + Message::SliderChanged(value) => { + self.slider_value = value; + } + } + } + + fn view(&self) -> Element { + use slider::Orientation::{Horizontal, Vertical}; + + let value = self.slider_value; + + let h_slider = container( + slider(0..=100, value, Message::SliderChanged) + .orientation(Horizontal), + ) + .width(Length::Units(250)); + + let v_slider = container( + slider(0..=100, value, Message::SliderChanged) + .orientation(Vertical), + ) + .height(Length::Units(200)); + + let text = text(format!("{value}")); + + container( + column![ + container(v_slider).width(Length::Fill).center_x(), + container(h_slider).width(Length::Fill).center_x(), + container(text).width(Length::Fill).center_x(), + ] + .spacing(25), + ) + .height(Length::Fill) + .width(Length::Fill) + .center_x() + .center_y() + .into() + } +} diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs index 585d9c35c9..33d8701406 100644 --- a/native/src/widget/slider.rs +++ b/native/src/widget/slider.rs @@ -16,10 +16,9 @@ use std::ops::RangeInclusive; pub use iced_style::slider::{Appearance, Handle, HandleShape, StyleSheet}; -/// An horizontal bar and a handle that selects a single value from a range of -/// values. +/// A bar and a handle that selects a single value from a range of values. /// -/// A [`Slider`] will try to fill the horizontal space of its container. +/// A [`Slider`] will try to fill the space of its container, based on its orientation. /// /// The [`Slider`] range of numeric values is generic and its step size defaults /// to 1 unit. @@ -53,8 +52,9 @@ where value: T, on_change: Box Message + 'a>, on_release: Option, - width: Length, - height: u16, + width: Option, + height: Option, + orientation: Orientation, style: ::Style, } @@ -65,9 +65,6 @@ where Renderer: crate::Renderer, Renderer::Theme: StyleSheet, { - /// The default height of a [`Slider`]. - pub const DEFAULT_HEIGHT: u16 = 22; - /// Creates a new [`Slider`]. /// /// It expects: @@ -98,8 +95,9 @@ where step: T::from(1), on_change: Box::new(on_change), on_release: None, - width: Length::Fill, - height: Self::DEFAULT_HEIGHT, + width: None, + height: None, + orientation: Default::default(), style: Default::default(), } } @@ -117,13 +115,13 @@ where /// Sets the width of the [`Slider`]. pub fn width(mut self, width: Length) -> Self { - self.width = width; + self.width = Some(width); self } /// Sets the height of the [`Slider`]. - pub fn height(mut self, height: u16) -> Self { - self.height = height; + pub fn height(mut self, height: Length) -> Self { + self.height = Some(height); self } @@ -141,6 +139,12 @@ where self.step = step; self } + + /// Sets the orientation of the [`Slider`]. + pub fn orientation(mut self, orientation: Orientation) -> Self { + self.orientation = orientation; + self + } } impl<'a, T, Message, Renderer> Widget @@ -160,11 +164,17 @@ where } fn width(&self) -> Length { - self.width + match self.orientation { + Orientation::Horizontal => self.width.unwrap_or(Length::Fill), + Orientation::Vertical => Length::Shrink, + } } fn height(&self) -> Length { - Length::Shrink + match self.orientation { + Orientation::Horizontal => Length::Shrink, + Orientation::Vertical => self.height.unwrap_or(Length::Fill), + } } fn layout( @@ -172,9 +182,14 @@ where _renderer: &Renderer, limits: &layout::Limits, ) -> layout::Node { - let limits = - limits.width(self.width).height(Length::Units(self.height)); - + let width = self + .width + .unwrap_or_else(|| self.orientation.default_width()); + let height = self + .height + .unwrap_or_else(|| self.orientation.default_height()); + + let limits = limits.width(width).height(height); let size = limits.resolve(Size::ZERO); layout::Node::new(size) @@ -201,6 +216,7 @@ where self.step, self.on_change.as_ref(), &self.on_release, + self.orientation, ) } @@ -223,6 +239,7 @@ where &self.range, theme, self.style, + self.orientation, ) } @@ -270,6 +287,7 @@ pub fn update( step: T, on_change: &dyn Fn(T) -> Message, on_release: &Option, + orientation: Orientation, ) -> event::Status where T: Copy + Into + num_traits::FromPrimitive, @@ -279,17 +297,40 @@ where let mut change = || { let bounds = layout.bounds(); - let new_value = if cursor_position.x <= bounds.x { + + let cursor_below_bounds = match orientation { + Orientation::Horizontal => cursor_position.x <= bounds.x, + Orientation::Vertical => { + cursor_position.y >= bounds.y + bounds.height + } + }; + + let cursor_above_bounds = match orientation { + Orientation::Horizontal => { + cursor_position.x >= bounds.x + bounds.width + } + Orientation::Vertical => cursor_position.y <= bounds.y, + }; + + let new_value = if cursor_below_bounds { *range.start() - } else if cursor_position.x >= bounds.x + bounds.width { + } else if cursor_above_bounds { *range.end() } else { let step = step.into(); let start = (*range.start()).into(); let end = (*range.end()).into(); - let percent = f64::from(cursor_position.x - bounds.x) - / f64::from(bounds.width); + let percent = match orientation { + Orientation::Horizontal => { + f64::from(cursor_position.x - bounds.x) + / f64::from(bounds.width) + } + Orientation::Vertical => { + 1.00 - (f64::from(cursor_position.y - bounds.y) + / f64::from(bounds.height)) + } + }; let steps = (percent * (end - start) / step).round(); let value = steps * step + start; @@ -354,6 +395,7 @@ pub fn draw( range: &RangeInclusive, style_sheet: &dyn StyleSheet