From 6d9cf0b60198e7d6c9615f539dac4b06eada5851 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 14 Mar 2023 14:36:31 -0600 Subject: Cleaning up from the Checkbox example that this is based on --- examples/radio/src/main.rs | 59 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) (limited to 'examples/radio') diff --git a/examples/radio/src/main.rs b/examples/radio/src/main.rs index e7a11a96..3baccbe2 100644 --- a/examples/radio/src/main.rs +++ b/examples/radio/src/main.rs @@ -1,3 +1,58 @@ -fn main() { - println!("Hello, world!"); +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 { + String::from("Checkbox - Iced") + } + + 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 { + let default_checkbox = + checkbox("Default", self.default_checkbox, Message::DefaultChecked); + let custom_checkbox = + checkbox("Custom", self.custom_checkbox, Message::CustomChecked) + .icon(checkbox::Icon { + font: ICON_FONT, + code_point: '\u{e901}', + size: None, + }); + + let content = column![default_checkbox, custom_checkbox].spacing(22); + + container(content) + .width(Length::Fill) + .height(Length::Fill) + .center_x() + .center_y() + .into() + } } -- cgit