Move radio example to Radio docs
This commit is contained in:
parent
4fdd76c07c
commit
b505b72035
4 changed files with 33 additions and 102 deletions
|
|
@ -1,10 +0,0 @@
|
|||
[package]
|
||||
name = "radio"
|
||||
version = "0.1.0"
|
||||
authors = ["Aaron Honeycutt <aaronhoneycutt@proton.me>"]
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
iced = { path = "../.." }
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
use iced::widget::{column, container, radio};
|
||||
use iced::{Element, Length, Sandbox, Settings};
|
||||
|
||||
pub fn main() -> iced::Result {
|
||||
Example::run(Settings::default())
|
||||
}
|
||||
|
||||
#[derive(Default)]
|
||||
struct Example {
|
||||
radio: Option<Choice>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
enum Message {
|
||||
RadioSelected(Choice),
|
||||
}
|
||||
|
||||
impl Sandbox for Example {
|
||||
type Message = Message;
|
||||
|
||||
fn new() -> Self {
|
||||
Default::default()
|
||||
}
|
||||
|
||||
fn title(&self) -> String {
|
||||
String::from("Radio - Iced")
|
||||
}
|
||||
|
||||
fn update(&mut self, message: Message) {
|
||||
match message {
|
||||
Message::RadioSelected(value) => {
|
||||
self.radio = Some(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn view(&self) -> Element<Message> {
|
||||
let a_checkbox = radio(
|
||||
"A",
|
||||
Choice::A,
|
||||
self.radio,
|
||||
Message::RadioSelected,
|
||||
);
|
||||
|
||||
let b_checkbox = radio(
|
||||
"B",
|
||||
Choice::B,
|
||||
self.radio,
|
||||
Message::RadioSelected,
|
||||
);
|
||||
|
||||
let c_checkbox = radio(
|
||||
"C",
|
||||
Choice::C,
|
||||
self.radio,
|
||||
Message::RadioSelected,
|
||||
);
|
||||
|
||||
let all_checkbox = radio("All of the above", Choice::All, self.radio, Message::RadioSelected);
|
||||
|
||||
let content = column![
|
||||
a_checkbox,
|
||||
b_checkbox,
|
||||
c_checkbox,
|
||||
all_checkbox,
|
||||
]
|
||||
.spacing(20)
|
||||
.padding(20)
|
||||
.max_width(600);
|
||||
|
||||
container(content)
|
||||
.width(Length::Fill)
|
||||
.height(Length::Fill)
|
||||
.center_x()
|
||||
.center_y()
|
||||
.into()
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
enum Choice {
|
||||
A,
|
||||
B,
|
||||
C,
|
||||
All,
|
||||
}
|
||||
|
|
@ -147,7 +147,7 @@ where
|
|||
Renderer::Theme: widget::radio::StyleSheet,
|
||||
V: Copy + Eq,
|
||||
{
|
||||
widget::Radio::new(value, label, selected, on_click)
|
||||
widget::Radio::new(label, value, selected, on_click)
|
||||
}
|
||||
|
||||
/// Creates a new [`Toggler`].
|
||||
|
|
|
|||
|
|
@ -21,10 +21,13 @@ pub use iced_style::radio::{Appearance, StyleSheet};
|
|||
/// # type Radio<Message> =
|
||||
/// # iced_native::widget::Radio<Message, iced_native::renderer::Null>;
|
||||
/// #
|
||||
/// # use iced_native::column;
|
||||
/// #[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
/// pub enum Choice {
|
||||
/// A,
|
||||
/// B,
|
||||
/// C,
|
||||
/// All,
|
||||
/// }
|
||||
///
|
||||
/// #[derive(Debug, Clone, Copy)]
|
||||
|
|
@ -34,12 +37,36 @@ pub use iced_style::radio::{Appearance, StyleSheet};
|
|||
///
|
||||
/// let selected_choice = Some(Choice::A);
|
||||
///
|
||||
/// Radio::new(Choice::A, "This is A", selected_choice, Message::RadioSelected);
|
||||
/// let a = Radio::new(
|
||||
/// "A",
|
||||
/// Choice::A,
|
||||
/// selected_choice,
|
||||
/// Message::RadioSelected,
|
||||
/// );
|
||||
///
|
||||
/// Radio::new(Choice::B, "This is B", 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)]
|
||||
pub struct Radio<Message, Renderer>
|
||||
where
|
||||
|
|
@ -78,8 +105,8 @@ where
|
|||
/// * a function that will be called when the [`Radio`] is selected. It
|
||||
/// receives the value of the radio and must produce a `Message`.
|
||||
pub fn new<F, V>(
|
||||
value: V,
|
||||
label: impl Into<String>,
|
||||
value: V,
|
||||
selected: Option<V>,
|
||||
f: F,
|
||||
) -> Self
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue