diff options
Diffstat (limited to 'examples/checkbox/src')
| -rw-r--r-- | examples/checkbox/src/main.rs | 32 | 
1 files changed, 22 insertions, 10 deletions
diff --git a/examples/checkbox/src/main.rs b/examples/checkbox/src/main.rs index 09950bb8..ef1a054d 100644 --- a/examples/checkbox/src/main.rs +++ b/examples/checkbox/src/main.rs @@ -1,10 +1,9 @@ -use iced::widget::{checkbox, column, container}; -use iced::{Element, Font, Length, Sandbox, Settings}; +use iced::executor; +use iced::font::{self, Font}; +use iced::widget::{checkbox, column, container, text}; +use iced::{Application, Command, Element, Length, Settings, Theme}; -const ICON_FONT: Font = Font::External { -    name: "Icons", -    bytes: include_bytes!("../fonts/icons.ttf"), -}; +const ICON_FONT: Font = Font::with_name("icons");  pub fn main() -> iced::Result {      Example::run(Settings::default()) @@ -20,24 +19,35 @@ struct Example {  enum Message {      DefaultChecked(bool),      CustomChecked(bool), +    FontLoaded(Result<(), font::Error>),  } -impl Sandbox for Example { +impl Application for Example {      type Message = Message; +    type Flags = (); +    type Executor = executor::Default; +    type Theme = Theme; -    fn new() -> Self { -        Default::default() +    fn new(_flags: Self::Flags) -> (Self, Command<Message>) { +        ( +            Self::default(), +            font::load(include_bytes!("../fonts/icons.ttf").as_slice()) +                .map(Message::FontLoaded), +        )      }      fn title(&self) -> String {          String::from("Checkbox - Iced")      } -    fn update(&mut self, message: Message) { +    fn update(&mut self, message: Message) -> Command<Message> {          match message {              Message::DefaultChecked(value) => self.default_checkbox = value,              Message::CustomChecked(value) => self.custom_checkbox = value, +            Message::FontLoaded(_) => (),          } + +        Command::none()      }      fn view(&self) -> Element<Message> { @@ -49,6 +59,8 @@ impl Sandbox for Example {                      font: ICON_FONT,                      code_point: '\u{e901}',                      size: None, +                    line_height: text::LineHeight::Relative(1.0), +                    shaping: text::Shaping::Basic,                  });          let content = column![default_checkbox, custom_checkbox].spacing(22);  | 
