From ba95042fff378213f5029b2b164d79e768482a47 Mon Sep 17 00:00:00 2001 From: Casper Storm Date: Mon, 12 Dec 2022 15:27:00 +0100 Subject: Vertical orientation added to Slider. --- examples/slider/src/main.rs | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 examples/slider/src/main.rs (limited to 'examples/slider/src') diff --git a/examples/slider/src/main.rs b/examples/slider/src/main.rs new file mode 100644 index 00000000..44770382 --- /dev/null +++ b/examples/slider/src/main.rs @@ -0,0 +1,69 @@ +use iced::widget::{column, container, slider, text}; +use iced::{Element, Length, Sandbox, Settings}; + +pub fn main() -> 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() + } +} -- cgit From bb4161c1aec0a2a76de39ff2e5ed65f7acbad471 Mon Sep 17 00:00:00 2001 From: Casper Storm Date: Tue, 13 Dec 2022 10:05:52 +0100 Subject: Split vertical orientation into VerticalSlider --- examples/slider/src/main.rs | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'examples/slider/src') diff --git a/examples/slider/src/main.rs b/examples/slider/src/main.rs index 44770382..6286d625 100644 --- a/examples/slider/src/main.rs +++ b/examples/slider/src/main.rs @@ -1,4 +1,4 @@ -use iced::widget::{column, container, slider, text}; +use iced::widget::{column, container, slider, text, vertical_slider}; use iced::{Element, Length, Sandbox, Settings}; pub fn main() -> iced::Result { @@ -34,21 +34,15 @@ impl Sandbox for Slider { } 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 h_slider = + container(slider(0..=100, value, Message::SliderChanged)) + .width(Length::Units(250)); - let v_slider = container( - slider(0..=100, value, Message::SliderChanged) - .orientation(Vertical), - ) - .height(Length::Units(200)); + let v_slider = + container(vertical_slider(0..=100, value, Message::SliderChanged)) + .height(Length::Units(200)); let text = text(format!("{value}")); -- cgit