diff options
author | 2022-12-12 15:27:00 +0100 | |
---|---|---|
committer | 2022-12-12 15:27:00 +0100 | |
commit | ba95042fff378213f5029b2b164d79e768482a47 (patch) | |
tree | 2c39410effb4da37a27fee4f2366defb7c04e65d /examples/slider/src/main.rs | |
parent | 1c00adad615f7c2909d175c696765dbe081bde33 (diff) | |
download | iced-ba95042fff378213f5029b2b164d79e768482a47.tar.gz iced-ba95042fff378213f5029b2b164d79e768482a47.tar.bz2 iced-ba95042fff378213f5029b2b164d79e768482a47.zip |
Vertical orientation added to Slider.
Diffstat (limited to 'examples/slider/src/main.rs')
-rw-r--r-- | examples/slider/src/main.rs | 69 |
1 files changed, 69 insertions, 0 deletions
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<Message> { + 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() + } +} |