diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2023-01-19 13:26:50 -0330 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2023-01-19 13:26:50 -0330 |
| commit | 74c5641b7a46c02e999f1e0cf506c983ede37995 (patch) | |
| tree | 84d20595ad3fbe2916988994074e44cf59b31b9f /src/main.rs | |
| parent | 7dee0a25f3223935a83c770887cc0ae8f56664e9 (diff) | |
| download | volute-74c5641b7a46c02e999f1e0cf506c983ede37995.zip | |
test iced text_input widget
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 49 |
1 files changed, 31 insertions, 18 deletions
diff --git a/src/main.rs b/src/main.rs index 1e1bf7a..9bf6c51 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,18 +1,35 @@ use iced::{ - widget::{button, column, text}, + widget::{column, text_input}, Element, Sandbox, Settings, }; pub fn main() -> iced::Result { - Counter::run(Settings::default()) + App::run(Settings::default()) } #[derive(Default)] -struct Counter { - value: i32, +struct App { + displacement: f64, + ui: UI, } -impl Sandbox for Counter { +#[derive(Default)] +struct UI { + displacement: String, +} + +impl App { + fn set_displacement(&mut self, displacement: &str) { + if displacement.len() == 0 { + self.displacement = 0.; + } else if let Ok(d) = displacement.parse::<f64>() { + self.displacement = d; + } + self.ui.displacement = String::from(displacement); + } +} + +impl Sandbox for App { type Message = Message; fn new() -> Self { @@ -25,27 +42,23 @@ impl Sandbox for Counter { fn update(&mut self, message: Message) { match message { - Message::IncrementPressed => { - self.value += 1; - } - Message::DecrementPressed => { - self.value -= 1; + Message::DisplacementChanged(displacement) => { + self.set_displacement(&displacement); } } } fn view(&self) -> Element<Self::Message> { - column![ - button("+").on_press(Message::IncrementPressed), - text(self.value).size(50), - button("-").on_press(Message::DecrementPressed), - ] + column![text_input( + "placeholder", + &self.ui.displacement, + Message::DisplacementChanged, + ),] .into() } } -#[derive(Debug, Clone, Copy)] +#[derive(Debug, Clone)] pub enum Message { - IncrementPressed, - DecrementPressed, + DisplacementChanged(String), } |