From 75e6af529ad4b19915a882c72348e1dd5daae748 Mon Sep 17 00:00:00 2001 From: pml68 Date: Tue, 13 May 2025 00:51:32 +0200 Subject: feat: add example code to documentation and README --- src/lib.rs | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 3fba6f2..1e536a4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,7 +1,69 @@ //! Custom dialog for `iced` //! //! # Example -//! See [here](https://github.com/pml68/iced_dialog/tree/0.13/example) +//! ```no_run +//! 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 { +//! 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() +//! } +//! } +//! ``` pub mod dialog; pub use dialog::Dialog; use iced_core as core; -- cgit v1.2.3