Show radio doc example in multiple places
This commit is contained in:
parent
1595e78b1a
commit
b778d5cd56
2 changed files with 160 additions and 41 deletions
|
|
@ -832,7 +832,64 @@ where
|
||||||
|
|
||||||
/// Creates a new [`Radio`].
|
/// Creates a new [`Radio`].
|
||||||
///
|
///
|
||||||
/// [`Radio`]: crate::Radio
|
/// Radio buttons let users choose a single option from a bunch of options.
|
||||||
|
///
|
||||||
|
/// # Example
|
||||||
|
/// ```no_run
|
||||||
|
/// # mod iced { pub mod widget { pub use iced_widget::*; } pub use iced_widget::Renderer; pub use iced_widget::core::*; }
|
||||||
|
/// # pub type Element<'a, Message> = iced_widget::core::Element<'a, Message, iced_widget::Theme, iced_widget::Renderer>;
|
||||||
|
/// #
|
||||||
|
/// use iced::widget::{column, radio};
|
||||||
|
///
|
||||||
|
/// struct State {
|
||||||
|
/// selection: Option<Choice>,
|
||||||
|
/// }
|
||||||
|
///
|
||||||
|
/// #[derive(Debug, Clone, Copy)]
|
||||||
|
/// enum Message {
|
||||||
|
/// RadioSelected(Choice),
|
||||||
|
/// }
|
||||||
|
///
|
||||||
|
/// #[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
|
/// enum Choice {
|
||||||
|
/// A,
|
||||||
|
/// B,
|
||||||
|
/// C,
|
||||||
|
/// All,
|
||||||
|
/// }
|
||||||
|
///
|
||||||
|
/// fn view(state: &State) -> Element<'_, Message> {
|
||||||
|
/// let a = radio(
|
||||||
|
/// "A",
|
||||||
|
/// Choice::A,
|
||||||
|
/// state.selection,
|
||||||
|
/// Message::RadioSelected,
|
||||||
|
/// );
|
||||||
|
///
|
||||||
|
/// let b = radio(
|
||||||
|
/// "B",
|
||||||
|
/// Choice::B,
|
||||||
|
/// state.selection,
|
||||||
|
/// Message::RadioSelected,
|
||||||
|
/// );
|
||||||
|
///
|
||||||
|
/// let c = radio(
|
||||||
|
/// "C",
|
||||||
|
/// Choice::C,
|
||||||
|
/// state.selection,
|
||||||
|
/// Message::RadioSelected,
|
||||||
|
/// );
|
||||||
|
///
|
||||||
|
/// let all = radio(
|
||||||
|
/// "All of the above",
|
||||||
|
/// Choice::All,
|
||||||
|
/// state.selection,
|
||||||
|
/// Message::RadioSelected
|
||||||
|
/// );
|
||||||
|
///
|
||||||
|
/// column![a, b, c, all].into()
|
||||||
|
/// }
|
||||||
|
/// ```
|
||||||
pub fn radio<'a, Message, Theme, Renderer, V>(
|
pub fn radio<'a, Message, Theme, Renderer, V>(
|
||||||
label: impl Into<String>,
|
label: impl Into<String>,
|
||||||
value: V,
|
value: V,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,61 @@
|
||||||
//! Create choices using radio buttons.
|
//! Radio buttons let users choose a single option from a bunch of options.
|
||||||
|
//!
|
||||||
|
//! # Example
|
||||||
|
//! ```no_run
|
||||||
|
//! # mod iced { pub mod widget { pub use iced_widget::*; } pub use iced_widget::Renderer; pub use iced_widget::core::*; }
|
||||||
|
//! # pub type Element<'a, Message> = iced_widget::core::Element<'a, Message, iced_widget::Theme, iced_widget::Renderer>;
|
||||||
|
//! #
|
||||||
|
//! use iced::widget::{column, radio};
|
||||||
|
//!
|
||||||
|
//! struct State {
|
||||||
|
//! selection: Option<Choice>,
|
||||||
|
//! }
|
||||||
|
//!
|
||||||
|
//! #[derive(Debug, Clone, Copy)]
|
||||||
|
//! enum Message {
|
||||||
|
//! RadioSelected(Choice),
|
||||||
|
//! }
|
||||||
|
//!
|
||||||
|
//! #[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
|
//! enum Choice {
|
||||||
|
//! A,
|
||||||
|
//! B,
|
||||||
|
//! C,
|
||||||
|
//! All,
|
||||||
|
//! }
|
||||||
|
//!
|
||||||
|
//! fn view(state: &State) -> Element<'_, Message> {
|
||||||
|
//! let a = radio(
|
||||||
|
//! "A",
|
||||||
|
//! Choice::A,
|
||||||
|
//! state.selection,
|
||||||
|
//! Message::RadioSelected,
|
||||||
|
//! );
|
||||||
|
//!
|
||||||
|
//! let b = radio(
|
||||||
|
//! "B",
|
||||||
|
//! Choice::B,
|
||||||
|
//! state.selection,
|
||||||
|
//! Message::RadioSelected,
|
||||||
|
//! );
|
||||||
|
//!
|
||||||
|
//! let c = radio(
|
||||||
|
//! "C",
|
||||||
|
//! Choice::C,
|
||||||
|
//! state.selection,
|
||||||
|
//! Message::RadioSelected,
|
||||||
|
//! );
|
||||||
|
//!
|
||||||
|
//! let all = radio(
|
||||||
|
//! "All of the above",
|
||||||
|
//! Choice::All,
|
||||||
|
//! state.selection,
|
||||||
|
//! Message::RadioSelected
|
||||||
|
//! );
|
||||||
|
//!
|
||||||
|
//! column![a, b, c, all].into()
|
||||||
|
//! }
|
||||||
|
//! ```
|
||||||
use crate::core::alignment;
|
use crate::core::alignment;
|
||||||
use crate::core::border::{self, Border};
|
use crate::core::border::{self, Border};
|
||||||
use crate::core::event::{self, Event};
|
use crate::core::event::{self, Event};
|
||||||
|
|
@ -18,54 +75,59 @@ use crate::core::{
|
||||||
///
|
///
|
||||||
/// # Example
|
/// # Example
|
||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// # type Radio<'a, Message> =
|
/// # mod iced { pub mod widget { pub use iced_widget::*; } pub use iced_widget::Renderer; pub use iced_widget::core::*; }
|
||||||
/// # iced_widget::Radio<'a, Message, iced_widget::Theme, iced_widget::renderer::Renderer>;
|
/// # pub type Element<'a, Message> = iced_widget::core::Element<'a, Message, iced_widget::Theme, iced_widget::Renderer>;
|
||||||
/// #
|
/// #
|
||||||
/// # use iced_widget::column;
|
/// use iced::widget::{column, radio};
|
||||||
|
///
|
||||||
|
/// struct State {
|
||||||
|
/// selection: Option<Choice>,
|
||||||
|
/// }
|
||||||
|
///
|
||||||
|
/// #[derive(Debug, Clone, Copy)]
|
||||||
|
/// enum Message {
|
||||||
|
/// RadioSelected(Choice),
|
||||||
|
/// }
|
||||||
|
///
|
||||||
/// #[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
/// #[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
/// pub enum Choice {
|
/// enum Choice {
|
||||||
/// A,
|
/// A,
|
||||||
/// B,
|
/// B,
|
||||||
/// C,
|
/// C,
|
||||||
/// All,
|
/// All,
|
||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// #[derive(Debug, Clone, Copy)]
|
/// fn view(state: &State) -> Element<'_, Message> {
|
||||||
/// pub enum Message {
|
/// let a = radio(
|
||||||
/// RadioSelected(Choice),
|
/// "A",
|
||||||
|
/// Choice::A,
|
||||||
|
/// state.selection,
|
||||||
|
/// Message::RadioSelected,
|
||||||
|
/// );
|
||||||
|
///
|
||||||
|
/// let b = radio(
|
||||||
|
/// "B",
|
||||||
|
/// Choice::B,
|
||||||
|
/// state.selection,
|
||||||
|
/// Message::RadioSelected,
|
||||||
|
/// );
|
||||||
|
///
|
||||||
|
/// let c = radio(
|
||||||
|
/// "C",
|
||||||
|
/// Choice::C,
|
||||||
|
/// state.selection,
|
||||||
|
/// Message::RadioSelected,
|
||||||
|
/// );
|
||||||
|
///
|
||||||
|
/// let all = radio(
|
||||||
|
/// "All of the above",
|
||||||
|
/// Choice::All,
|
||||||
|
/// state.selection,
|
||||||
|
/// Message::RadioSelected
|
||||||
|
/// );
|
||||||
|
///
|
||||||
|
/// column![a, b, c, all].into()
|
||||||
/// }
|
/// }
|
||||||
///
|
|
||||||
/// let selected_choice = Some(Choice::A);
|
|
||||||
///
|
|
||||||
/// let a = Radio::new(
|
|
||||||
/// "A",
|
|
||||||
/// Choice::A,
|
|
||||||
/// selected_choice,
|
|
||||||
/// Message::RadioSelected,
|
|
||||||
/// );
|
|
||||||
///
|
|
||||||
/// let b = Radio::new(
|
|
||||||
/// "B",
|
|
||||||
/// Choice::B,
|
|
||||||
/// selected_choice,
|
|
||||||
/// Message::RadioSelected,
|
|
||||||
/// );
|
|
||||||
///
|
|
||||||
/// let c = Radio::new(
|
|
||||||
/// "C",
|
|
||||||
/// Choice::C,
|
|
||||||
/// selected_choice,
|
|
||||||
/// Message::RadioSelected,
|
|
||||||
/// );
|
|
||||||
///
|
|
||||||
/// let all = Radio::new(
|
|
||||||
/// "All of the above",
|
|
||||||
/// Choice::All,
|
|
||||||
/// selected_choice,
|
|
||||||
/// Message::RadioSelected
|
|
||||||
/// );
|
|
||||||
///
|
|
||||||
/// let content = column![a, b, c, all];
|
|
||||||
/// ```
|
/// ```
|
||||||
#[allow(missing_debug_implementations)]
|
#[allow(missing_debug_implementations)]
|
||||||
pub struct Radio<'a, Message, Theme = crate::Theme, Renderer = crate::Renderer>
|
pub struct Radio<'a, Message, Theme = crate::Theme, Renderer = crate::Renderer>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue