diff options
author | 2022-05-04 17:19:28 +0200 | |
---|---|---|
committer | 2022-05-04 17:19:28 +0200 | |
commit | 27fdc707562d4e229f07ed9496ed5d64f4e108bc (patch) | |
tree | 8a87286f0ccd125df1c2b5c597c2d2805ceb27c5 /pure/src/widget/button.rs | |
parent | a97c520c814a6d3cc538537791be39e0c3182d6d (diff) | |
parent | 02914e5e68d1fbaad53483cd32c74d9ac448d1eb (diff) | |
download | iced-27fdc707562d4e229f07ed9496ed5d64f4e108bc.tar.gz iced-27fdc707562d4e229f07ed9496ed5d64f4e108bc.tar.bz2 iced-27fdc707562d4e229f07ed9496ed5d64f4e108bc.zip |
Merge branch 'master' into dev/system-information
Diffstat (limited to 'pure/src/widget/button.rs')
-rw-r--r-- | pure/src/widget/button.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/pure/src/widget/button.rs b/pure/src/widget/button.rs index e083ea73..456c2509 100644 --- a/pure/src/widget/button.rs +++ b/pure/src/widget/button.rs @@ -1,3 +1,4 @@ +//! Allow your users to perform actions by pressing a button. use crate::overlay; use crate::widget::tree::{self, Tree}; use crate::{Element, Widget}; @@ -15,6 +16,40 @@ pub use iced_style::button::{Style, StyleSheet}; use button::State; +/// A generic widget that produces a message when pressed. +/// +/// ``` +/// # type Button<'a, Message> = +/// # iced_pure::widget::Button<'a, Message, iced_native::renderer::Null>; +/// # +/// #[derive(Clone)] +/// enum Message { +/// ButtonPressed, +/// } +/// +/// let button = Button::new("Press me!").on_press(Message::ButtonPressed); +/// ``` +/// +/// If a [`Button::on_press`] handler is not set, the resulting [`Button`] will +/// be disabled: +/// +/// ``` +/// # type Button<'a, Message> = +/// # iced_pure::widget::Button<'a, Message, iced_native::renderer::Null>; +/// # +/// #[derive(Clone)] +/// enum Message { +/// ButtonPressed, +/// } +/// +/// fn disabled_button<'a>() -> Button<'a, Message> { +/// Button::new("I'm disabled!") +/// } +/// +/// fn enabled_button<'a>() -> Button<'a, Message> { +/// disabled_button().on_press(Message::ButtonPressed) +/// } +/// ``` pub struct Button<'a, Message, Renderer> { content: Element<'a, Message, Renderer>, on_press: Option<Message>, @@ -25,6 +60,7 @@ pub struct Button<'a, Message, Renderer> { } impl<'a, Message, Renderer> Button<'a, Message, Renderer> { + /// Creates a new [`Button`] with the given content. pub fn new(content: impl Into<Element<'a, Message, Renderer>>) -> Self { Button { content: content.into(), |