summaryrefslogtreecommitdiffstats
path: root/examples/checkbox/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/checkbox/src/main.rs')
-rw-r--r--examples/checkbox/src/main.rs63
1 files changed, 63 insertions, 0 deletions
diff --git a/examples/checkbox/src/main.rs b/examples/checkbox/src/main.rs
new file mode 100644
index 00000000..09950bb8
--- /dev/null
+++ b/examples/checkbox/src/main.rs
@@ -0,0 +1,63 @@
+use iced::widget::{checkbox, column, container};
+use iced::{Element, Font, Length, Sandbox, Settings};
+
+const ICON_FONT: Font = Font::External {
+ name: "Icons",
+ bytes: include_bytes!("../fonts/icons.ttf"),
+};
+
+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<Message> {
+ 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()
+ }
+}