diff options
Diffstat (limited to 'examples/slider')
-rw-r--r-- | examples/slider/src/main.rs | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/examples/slider/src/main.rs b/examples/slider/src/main.rs index e83804c2..f71dac01 100644 --- a/examples/slider/src/main.rs +++ b/examples/slider/src/main.rs @@ -11,14 +11,22 @@ pub enum Message { } pub struct Slider { - slider_value: u8, + value: u8, + default: u8, + step: u8, + shift_step: u8, } impl Sandbox for Slider { type Message = Message; fn new() -> Slider { - Slider { slider_value: 50 } + Slider { + value: 50, + default: 50, + step: 5, + shift_step: 1, + } } fn title(&self) -> String { @@ -28,23 +36,29 @@ impl Sandbox for Slider { fn update(&mut self, message: Message) { match message { Message::SliderChanged(value) => { - self.slider_value = value; + self.value = value; } } } fn view(&self) -> Element<Message> { - let value = self.slider_value; - - let h_slider = - container(slider(0..=100, value, Message::SliderChanged)) - .width(250); + let h_slider = container( + slider(0..=100, self.value, Message::SliderChanged) + .default(self.default) + .step(self.step) + .shift_step(self.shift_step), + ) + .width(250); - let v_slider = - container(vertical_slider(0..=100, value, Message::SliderChanged)) - .height(200); + let v_slider = container( + vertical_slider(0..=100, self.value, Message::SliderChanged) + .default(self.default) + .step(self.step) + .shift_step(self.shift_step), + ) + .height(200); - let text = text(format!("{value}")); + let text = text(self.value); container( column![ |