diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2023-01-15 22:55:57 -0330 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2023-01-15 22:55:57 -0330 |
| commit | e544e2bc800a284c41ded90e26617488537607b0 (patch) | |
| tree | 70fed84424bf3b02cfa1c82bb9d653598ef09596 /src/main.rs | |
| parent | b6247a8372eb18a19c35a924316941d6c1e585d2 (diff) | |
| download | volute-e544e2bc800a284c41ded90e26617488537607b0.zip | |
iced ui hello world
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 52 |
1 files changed, 50 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index e7a11a9..1e1bf7a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,51 @@ -fn main() { - println!("Hello, world!"); +use iced::{ + widget::{button, column, text}, + Element, Sandbox, Settings, +}; + +pub fn main() -> iced::Result { + Counter::run(Settings::default()) +} + +#[derive(Default)] +struct Counter { + value: i32, +} + +impl Sandbox for Counter { + type Message = Message; + + fn new() -> Self { + Self::default() + } + + fn title(&self) -> String { + String::from("volute") + } + + fn update(&mut self, message: Message) { + match message { + Message::IncrementPressed => { + self.value += 1; + } + Message::DecrementPressed => { + self.value -= 1; + } + } + } + + fn view(&self) -> Element<Self::Message> { + column![ + button("+").on_press(Message::IncrementPressed), + text(self.value).size(50), + button("-").on_press(Message::DecrementPressed), + ] + .into() + } +} + +#[derive(Debug, Clone, Copy)] +pub enum Message { + IncrementPressed, + DecrementPressed, } |