diff options
| author | pml68 <contact@pml68.dev> | 2025-06-02 22:57:07 +0200 |
|---|---|---|
| committer | pml68 <contact@pml68.dev> | 2025-06-02 23:09:46 +0200 |
| commit | 4742a63043906b5ff154730070f07dc6b9929eed (patch) | |
| tree | e2c19a4f22074f6b231cb8605c2b2414a39858f8 /examples/save.rs | |
| parent | feat: switch from `String` to `Fragment` for `title` (diff) | |
| download | iced_dialog-4742a63043906b5ff154730070f07dc6b9929eed.tar.gz | |
ci: fix workflow
Diffstat (limited to 'examples/save.rs')
| -rw-r--r-- | examples/save.rs | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/examples/save.rs b/examples/save.rs new file mode 100644 index 0000000..c81d3d6 --- /dev/null +++ b/examples/save.rs @@ -0,0 +1,62 @@ +#![allow(missing_docs)] +use iced::{ + Element, Length, Task, + widget::{button, center, column, text}, +}; +use iced_dialog::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<Message> { + 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), + 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(iced_dialog::button("Save", Message::Saved)) + .push_button(iced_dialog::button("Cancel", Message::Cancelled)) + .width(350) + .height(234) + .into() + } +} |
