2023-03-14 14:36:31 -06:00
|
|
|
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 {
|
|
|
|
|
default_checkbox: bool,
|
|
|
|
|
custom_checkbox: bool,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, Copy)]
|
|
|
|
|
enum Message {
|
|
|
|
|
DefaultChecked(bool),
|
|
|
|
|
CustomChecked(bool),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Sandbox for Example {
|
|
|
|
|
type Message = Message;
|
|
|
|
|
|
|
|
|
|
fn new() -> Self {
|
|
|
|
|
Default::default()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn title(&self) -> String {
|
2023-03-14 14:39:26 -06:00
|
|
|
String::from("Radio - Iced")
|
2023-03-14 14:36:31 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn update(&mut self, message: Message) {
|
|
|
|
|
match message {
|
|
|
|
|
Message::DefaultChecked(value) => self.default_checkbox = value,
|
|
|
|
|
Message::CustomChecked(value) => self.custom_checkbox = value,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn view(&self) -> Element<Message> {
|
2023-03-14 14:39:26 -06:00
|
|
|
let selected_choice = Some(Choice::A);
|
|
|
|
|
|
|
|
|
|
Radio::new(Choice::A, "This is A", selected_choice, Message::RadioSelected);
|
|
|
|
|
Radio::new(Choice::B, "This is B", selected_choice, Message::RadioSelected);
|
|
|
|
|
|
|
|
|
|
let content = column![selected_choice].spacing(22);
|
2023-03-14 14:36:31 -06:00
|
|
|
|
|
|
|
|
container(content)
|
|
|
|
|
.width(Length::Fill)
|
|
|
|
|
.height(Length::Fill)
|
|
|
|
|
.center_x()
|
|
|
|
|
.center_y()
|
|
|
|
|
.into()
|
|
|
|
|
}
|
2023-03-14 14:34:32 -06:00
|
|
|
}
|