aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2023-01-15 22:55:57 -0330
committerSam Anthony <sam@samanthony.xyz>2023-01-15 22:55:57 -0330
commite544e2bc800a284c41ded90e26617488537607b0 (patch)
tree70fed84424bf3b02cfa1c82bb9d653598ef09596 /src
parentb6247a8372eb18a19c35a924316941d6c1e585d2 (diff)
downloadvolute-e544e2bc800a284c41ded90e26617488537607b0.zip
iced ui hello world
Diffstat (limited to 'src')
-rw-r--r--src/main.rs52
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,
}