diff options
Diffstat (limited to 'examples/checkbox')
| -rw-r--r-- | examples/checkbox/Cargo.toml | 9 | ||||
| -rw-r--r-- | examples/checkbox/README.md | 12 | ||||
| -rw-r--r-- | examples/checkbox/fonts/icons.ttf | bin | 0 -> 1272 bytes | |||
| -rw-r--r-- | examples/checkbox/src/main.rs | 63 | 
4 files changed, 84 insertions, 0 deletions
diff --git a/examples/checkbox/Cargo.toml b/examples/checkbox/Cargo.toml new file mode 100644 index 00000000..dde8f910 --- /dev/null +++ b/examples/checkbox/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "checkbox" +version = "0.1.0" +authors = ["Casper Rogild Storm<casper@rogildstorm.com>"] +edition = "2021" +publish = false + +[dependencies] +iced = { path = "../.." } diff --git a/examples/checkbox/README.md b/examples/checkbox/README.md new file mode 100644 index 00000000..b7f85684 --- /dev/null +++ b/examples/checkbox/README.md @@ -0,0 +1,12 @@ +## Checkbox + +A box that can be checked. + +The __[`main`]__ file contains all the code of the example. + +You can run it with `cargo run`: +``` +cargo run --package pick_list +``` + +[`main`]: src/main.rs diff --git a/examples/checkbox/fonts/icons.ttf b/examples/checkbox/fonts/icons.ttf Binary files differnew file mode 100644 index 00000000..a2046844 --- /dev/null +++ b/examples/checkbox/fonts/icons.ttf 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() +    } +}  | 
