aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2023-01-19 13:26:50 -0330
committerSam Anthony <sam@samanthony.xyz>2023-01-19 13:26:50 -0330
commit74c5641b7a46c02e999f1e0cf506c983ede37995 (patch)
tree84d20595ad3fbe2916988994074e44cf59b31b9f /src
parent7dee0a25f3223935a83c770887cc0ae8f56664e9 (diff)
downloadvolute-74c5641b7a46c02e999f1e0cf506c983ede37995.zip
test iced text_input widget
Diffstat (limited to 'src')
-rw-r--r--src/main.rs49
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),
}