aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
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,
}