summaryrefslogtreecommitdiffstats
path: root/examples/checkbox/src
diff options
context:
space:
mode:
authorLibravatar Bingus <shankern@protonmail.com>2023-02-17 11:45:34 -0800
committerLibravatar Bingus <shankern@protonmail.com>2023-02-17 11:45:34 -0800
commit744cef5608a91fe55cbbe1adb73a9a0b5e266668 (patch)
treef88ca6ae3c481e2de74178bb3f0d1f1b685e1740 /examples/checkbox/src
parent8da098330b58542cc929f4f24d02e26bd654bae4 (diff)
parent7dc1fb488ddbd12519571b51d75ae0c28875911d (diff)
downloadiced-744cef5608a91fe55cbbe1adb73a9a0b5e266668.tar.gz
iced-744cef5608a91fe55cbbe1adb73a9a0b5e266668.tar.bz2
iced-744cef5608a91fe55cbbe1adb73a9a0b5e266668.zip
Merge remote-tracking branch 'origin/master' into feat/multi-window-support
# Conflicts: # winit/src/window.rs
Diffstat (limited to 'examples/checkbox/src')
-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()
+ }
+}