From a51c3afcc735180aca88a48239d09991e18bbdd7 Mon Sep 17 00:00:00 2001 From: pml68 Date: Sun, 30 Mar 2025 16:24:46 +0200 Subject: feat: initial commit --- example/Cargo.toml | 8 +++++++ example/src/main.rs | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 example/Cargo.toml create mode 100644 example/src/main.rs (limited to 'example') diff --git a/example/Cargo.toml b/example/Cargo.toml new file mode 100644 index 0000000..9d6a50d --- /dev/null +++ b/example/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "example" +version = "0.0.1" +edition = "2021" + +[dependencies] +iced = "0.13.1" +iced_dialog = { path = ".." } diff --git a/example/src/main.rs b/example/src/main.rs new file mode 100644 index 0000000..0234319 --- /dev/null +++ b/example/src/main.rs @@ -0,0 +1,62 @@ +use iced::{ + Element, Length, Task, + widget::{center, column, text}, +}; +use iced_dialog::{button, dialog}; + +#[derive(Default)] +struct State { + is_open: bool, + action_text: String, +} + +#[derive(Debug, Clone)] +enum Message { + OpenDialog, + Saved, + Cancelled, +} + +fn main() -> iced::Result { + iced::run("Dialog Example", State::update, State::view) +} + +impl State { + fn update(&mut self, message: Message) -> Task { + match message { + Message::OpenDialog => self.is_open = true, + Message::Saved => { + self.action_text = "User saved their work".to_owned(); + self.is_open = false; + } + Message::Cancelled => { + self.action_text = "User cancelled the dialog".to_owned(); + self.is_open = false; + } + } + Task::none() + } + + fn view(&self) -> Element<'_, Message> { + let base = center( + column![ + text(&self.action_text), + iced::widget::button("Open Dialog") + .on_press(Message::OpenDialog) + ] + .spacing(14.0), + ) + .width(Length::Fill) + .height(Length::Fill); + + let dialog_content = text("Do you want to save?"); + + dialog(self.is_open, base, dialog_content) + .title("Save") + .push_button(button("Save").on_press(Message::Saved)) + .push_button(button("Cancel").on_press(Message::Cancelled)) + .width(350) + .height(234) + .into() + } +} -- cgit v1.2.3