From 700262e05c76e003158acfeb8edd9f6b026d78cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Ram=C3=B3n=20Jim=C3=A9nez?= Date: Fri, 24 Feb 2023 13:56:37 +0100 Subject: [PATCH] Fix `checkbox` example --- examples/checkbox/fonts/icons.ttf | Bin 1272 -> 1784 bytes examples/checkbox/src/main.rs | 28 +++++++++++++++++++--------- native/src/widget/checkbox.rs | 2 +- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/examples/checkbox/fonts/icons.ttf b/examples/checkbox/fonts/icons.ttf index a20468447859c36c31b597f00325c92d501ba46f..82f284819e03ac896cb04aac5a05b04100a3d669 100644 GIT binary patch literal 1784 zcmds1L2nyH6#m9zuj3fHcAKWCisB&zn?p8rwo!sBBqBr&tr|4~T5$*^TYGT~@os86 zQX@F@AAkg^RB@meE|dcY4yXbtClFFkh*m-%(F2#NJyn83Dr~-)T@y#ZAK*!|@B7}o zdGF2JnSlWCIIciqrCNP$`Fi%@V}SJwtrIW3c(RHTo*@64T%CROm}?(QeGZ7%$=7Nv zZ!>-AhX>?8a?~4MXOs3E{lBChX>4r2RZ*P_fP9(r&#e1ieQNi;2IqAAg>@RzE%_bi z#>l7FTiwgq&#*@R75UMPu;yVMj3u8X&$YbEo5-*t2+dXCwfv8-{gDBZ%qt#lhMjKq z=DWmJo%1Wud!rm)9-VyCe(rZH=t6L&PPi9ux7p3uL+*6LflkderPTL7TcK`hWKOw1F5A?*C@Epr7{T ziJ+(CZY*sV{0bdiW1U!!VPU30eZ%Je9Ufs9bG#ob_{elO+9118(VZR0fAKXe$?I|n z1$MDmDo&*>Ta+S@w$j$vk?|uLv9P!>Unmq7^_;^&bJC}QLppp$SYrh-?k;Bdd0sFN)6E|ftR$m9 zU!1XRk?K9N?b8RGys(62&*V?rcJGl$MYi5d|UEtq3?k!eW| z-|p*9)G5K!Wykge_HLHMleiSyll1u{#wld+O^hwtZ^w8PM@3$r_T=D}MOdF@8QT*$ zfWtACybn%{ll1v8#wm>B(->Q{e;?yf%;RUhk0xpe5uig@3j?ZG;G=;pY`{aC)NgEU zcm!4B*EPCL4<8CHW>Ka-!Lb)9;x1D-^w6WsahxH-pj!>w4PUvlWpzTCjMVPD<2r8H zrORHFK|SZ0sm=PDCcna*$%*rRyVDE#X%6w)s6}_P)%x zx&yOOeX8LHe%tH%b#-xDovMY)VHj}kpYMaV4NKa*BMH7KQY1wxy%jXelvvMceXN);t!51q!E&6TJcTm4U`q9x^#3MrZ^{1QK3&ZdJUvwhaB>(^b literal 1272 zcmah|yH8V59R5yEdrKkdY2{@Mq1TG-LU~E3Bp8`UKnMnvsVbNDS|IdZC?$c!fkk7C z2~HRcqoXnY0S?5)#mT5~B+-R9Ik-S<{qBQU4T-;-bI$ku-uFBp05o9>5`EJ*dI!{* z&=xgsIOg&tW2Jre!y`a+kl!pCYb#u1M~=;`r5xVB3GoC~zp`er+G4l7mKPFHS^v zfm6*H9kh9?biFzd#AWIm*>8ZKfPN@yziKr%NQka6{S1q8iRoh|@mhh3LH ze*e?0vgd8?Qi4sV(y3%vQzGqwuol)@+S}SAVkkQ_m`=%DXF4^VPIYFp4oIaE$v7n` zaw6v8fBI zmK*F9>?Gn$uP2ofq3W?x6VXguXhKun@d>4>$0FqEsz=o$)vaW1Qf1-}p&uRmAbJbd zs1M@K`up?o*^}10YUC%Hg6?)7G=JW4z{%=%%KOQ4@q}^iIrGpQk$WeZJTqs_vv}MI zBVXkxxSB?^pcAurPUiHW;i8}6q=M__Pf@(`tpZ^`f>)Gy&eu!gAs+{c*L@t~OKkPA zM*TG(H{u)~JNGCUp(aX;hXce#A4}pZJ`NJ!_i+eq;7f61HR@-4+=xNESj^ic+qSTX zJZzLWY*@2qd2P|Q^!}bc{&r%&MNKxkj%64qpXxbg zTNS-%T4vd(m<4@)Qy9-ExU-5;3pet 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) { + ( + Self::default(), + font::load(include_bytes!("../fonts/icons.ttf").as_ref()) + .map(Message::FontLoaded), + ) } fn title(&self) -> String { String::from("Checkbox - Iced") } - fn update(&mut self, message: Message) { + fn update(&mut self, message: Message) -> Command { match message { Message::DefaultChecked(value) => self.default_checkbox = value, Message::CustomChecked(value) => self.custom_checkbox = value, + Message::FontLoaded(_) => (), } + + Command::none() } fn view(&self) -> Element { diff --git a/native/src/widget/checkbox.rs b/native/src/widget/checkbox.rs index 0e21e995..6ba06d3b 100644 --- a/native/src/widget/checkbox.rs +++ b/native/src/widget/checkbox.rs @@ -267,7 +267,7 @@ where code_point, size, } = &self.icon; - let size = size.map(f32::from).unwrap_or(bounds.height * 0.7); + let size = size.unwrap_or(bounds.height * 0.7); if self.is_checked { renderer.fill_text(text::Text {