diff options
author | 2022-12-14 03:21:28 +0100 | |
---|---|---|
committer | 2022-12-14 03:21:28 +0100 | |
commit | c35ca2a3207ea24963eb87f4850bf3e3b38ca7d6 (patch) | |
tree | 9513cae51a673d4b8fea5c3bb98244c92be067bf /examples/slider/src | |
parent | b01be6b9321d26c167362f4515d3c895a081ba58 (diff) | |
parent | 55f36bc865652009f1c13e3da6f62d55964a10c2 (diff) | |
download | iced-c35ca2a3207ea24963eb87f4850bf3e3b38ca7d6.tar.gz iced-c35ca2a3207ea24963eb87f4850bf3e3b38ca7d6.tar.bz2 iced-c35ca2a3207ea24963eb87f4850bf3e3b38ca7d6.zip |
Merge pull request #1596 from casperstorm/feat/slider-orientation
Added a VerticalSlider widget.
Diffstat (limited to '')
-rw-r--r-- | examples/slider/src/main.rs | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/examples/slider/src/main.rs b/examples/slider/src/main.rs new file mode 100644 index 00000000..6286d625 --- /dev/null +++ b/examples/slider/src/main.rs @@ -0,0 +1,63 @@ +use iced::widget::{column, container, slider, text, vertical_slider}; +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> { + let value = self.slider_value; + + let h_slider = + container(slider(0..=100, value, Message::SliderChanged)) + .width(Length::Units(250)); + + let v_slider = + container(vertical_slider(0..=100, value, Message::SliderChanged)) + .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() + } +} |