summaryrefslogtreecommitdiffstats
path: root/examples/slider
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector@hecrj.dev>2024-01-31 22:14:54 +0100
committerLibravatar GitHub <noreply@github.com>2024-01-31 22:14:54 +0100
commit4fcbcdab1c87a1badaf293b4aaaf2f39857e8736 (patch)
treec54ab1cac2a5957abb38c379bbd18347c5a6d410 /examples/slider
parent6bf34b074667e5e025de1e352a34ce255bc7e26e (diff)
parent41bffa448b8a5901bdb3461d6d364b22e8a84a3a (diff)
downloadiced-4fcbcdab1c87a1badaf293b4aaaf2f39857e8736.tar.gz
iced-4fcbcdab1c87a1badaf293b4aaaf2f39857e8736.tar.bz2
iced-4fcbcdab1c87a1badaf293b4aaaf2f39857e8736.zip
Merge pull request #2100 from jpttrssn/enhanced-slider
Enhance `Slider` and `VerticalSlider` functionality
Diffstat (limited to 'examples/slider')
-rw-r--r--examples/slider/src/main.rs38
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![