iced-yoda/examples/counter/src/main.rs

41 lines
851 B
Rust
Raw Normal View History

2024-03-16 05:33:47 +01:00
use iced::widget::{button, column, text, Column};
use iced::Center;
2019-11-26 22:31:46 +01:00
pub fn main() -> iced::Result {
2024-03-16 05:33:47 +01:00
iced::run("A cool counter", Counter::update, Counter::view)
2019-11-26 22:31:46 +01:00
}
2024-03-16 05:33:47 +01:00
#[derive(Default)]
2019-11-26 22:31:46 +01:00
struct Counter {
2024-03-16 05:33:47 +01:00
value: i64,
2019-11-26 22:31:46 +01:00
}
#[derive(Debug, Clone, Copy)]
enum Message {
2024-03-16 05:33:47 +01:00
Increment,
Decrement,
2019-11-26 22:31:46 +01:00
}
2024-03-16 05:33:47 +01:00
impl Counter {
2019-11-26 22:31:46 +01:00
fn update(&mut self, message: Message) {
match message {
2024-03-16 05:33:47 +01:00
Message::Increment => {
2019-11-26 22:31:46 +01:00
self.value += 1;
}
2024-03-16 05:33:47 +01:00
Message::Decrement => {
2019-11-26 22:31:46 +01:00
self.value -= 1;
}
}
}
2024-03-16 05:33:47 +01:00
fn view(&self) -> Column<Message> {
column![
2024-03-16 05:33:47 +01:00
button("Increment").on_press(Message::Increment),
text(self.value).size(50),
2024-03-16 05:33:47 +01:00
button("Decrement").on_press(Message::Decrement)
]
.padding(20)
.align_x(Center)
2019-11-26 22:31:46 +01:00
}
}