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

51 lines
1.1 KiB
Rust
Raw Normal View History

use iced::widget::{button, column, text};
use iced::{Alignment, Element, Sandbox, Settings};
2019-11-26 22:31:46 +01:00
pub fn main() -> iced::Result {
2019-11-26 22:31:46 +01:00
Counter::run(Settings::default())
}
struct Counter {
value: i32,
}
#[derive(Debug, Clone, Copy)]
enum Message {
IncrementPressed,
DecrementPressed,
}
impl Sandbox for Counter {
type Message = Message;
fn new() -> Self {
Self { value: 0 }
2019-11-26 22:31:46 +01:00
}
fn title(&self) -> String {
String::from("Counter - Iced")
2019-11-26 22:31:46 +01:00
}
fn update(&mut self, message: Message) {
match message {
Message::IncrementPressed => {
self.value += 1;
}
Message::DecrementPressed => {
self.value -= 1;
}
}
}
fn view(&self) -> Element<Message> {
column![
button("Increment").on_press(Message::IncrementPressed),
text(self.value).size(50),
button("Decrement").on_press(Message::DecrementPressed)
]
.padding(20)
.align_items(Alignment::Center)
.into()
2019-11-26 22:31:46 +01:00
}
}