From a68f80181273284a0fbe4f04d13c19393b3759f8 Mon Sep 17 00:00:00 2001 From: Craig Constable Date: Fri, 6 Mar 2026 16:55:31 +1000 Subject: [PATCH] v1.0.10 - Added an icon to the application --- Cargo.lock | 38 ++++++++++++++++++++++++-------------- Cargo.toml | 3 +++ build.rs | 5 +++++ src/icons/16.svg | 8 ++++++++ src/icons/16x16.png | Bin 0 -> 165 bytes src/icons/256.svg | 25 +++++++++++++++++++++++++ src/icons/256x256.png | Bin 0 -> 1046 bytes src/icons/32.svg | 10 ++++++++++ src/icons/32x32.png | Bin 0 -> 284 bytes src/icons/48.svg | 14 ++++++++++++++ src/icons/48x48.png | Bin 0 -> 339 bytes src/icons/icon.ico | Bin 0 -> 3869 bytes 12 files changed, 89 insertions(+), 14 deletions(-) create mode 100644 src/icons/16.svg create mode 100644 src/icons/16x16.png create mode 100644 src/icons/256.svg create mode 100644 src/icons/256x256.png create mode 100644 src/icons/32.svg create mode 100644 src/icons/32x32.png create mode 100644 src/icons/48.svg create mode 100644 src/icons/48x48.png create mode 100644 src/icons/icon.ico diff --git a/Cargo.lock b/Cargo.lock index 3ae89f0..90b7415 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -46,6 +46,7 @@ dependencies = [ "serde_json", "ureq", "windows", + "winres", ] [[package]] @@ -82,7 +83,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -109,7 +110,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -520,7 +521,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -529,7 +530,7 @@ version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -654,7 +655,7 @@ dependencies = [ "getrandom 0.4.1", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -687,6 +688,15 @@ dependencies = [ "zerovec", ] +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + [[package]] name = "unicode-ident" version = "1.0.24" @@ -866,15 +876,6 @@ dependencies = [ "windows-targets", ] -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - [[package]] name = "windows-sys" version = "0.61.2" @@ -948,6 +949,15 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "winres" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" +dependencies = [ + "toml", +] + [[package]] name = "wit-bindgen" version = "0.51.0" diff --git a/Cargo.toml b/Cargo.toml index 1b28e37..5530270 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,6 +26,9 @@ features = [ "Win32_UI_Input_KeyboardAndMouse", ] +[build-dependencies] +winres = "0.1" + [profile.release] opt-level = "z" lto = true diff --git a/build.rs b/build.rs index fb6a701..427e8f2 100644 --- a/build.rs +++ b/build.rs @@ -15,4 +15,9 @@ fn main() { let version = version.trim().trim_start_matches('v'); println!("cargo:rustc-env=APP_VERSION={version}"); + + // Embed the application icon into the executable. + let mut res = winres::WindowsResource::new(); + res.set_icon("src/icons/icon.ico"); + res.compile().expect("Failed to compile Windows resources"); } diff --git a/src/icons/16.svg b/src/icons/16.svg new file mode 100644 index 0000000..7984182 --- /dev/null +++ b/src/icons/16.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/icons/16x16.png b/src/icons/16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..bec10571561dbab68e1f31aed51cf362950999e3 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ1=2Sw!f%#`f4P44PID@d z@%h@BS3fT90!px!1o;IsOg(k#`!U9tQ$PVLPZ!4!j_b(+ysXU*Z47J%38@?byrBu4 z-fTur&dd>qFKsY-ko92KgssNQ9k*^?x->EMz|{jK2j?&{=&(!HT}~G~0yKre)78&q Iol`;+03A*_$p8QV literal 0 HcmV?d00001 diff --git a/src/icons/256.svg b/src/icons/256.svg new file mode 100644 index 0000000..a38ceab --- /dev/null +++ b/src/icons/256.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/256x256.png b/src/icons/256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..5e25386e8c6273f92782301732b63202fd1af4da GIT binary patch literal 1046 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5FnKh;1l8sq*sN8-m8kdRuy!o zBJ_Gi=!ffPZfstCJP9`Sfd-;J_}TjgOl%YoeR8|C3Z#!V0z{`uM&2;*jX#Do4) zxFAp&h+P$Zt0oqxX4cF+ZJ-@8B|(0{49wz^D#pgPE>Tg*HLab~X06|_;o6PIPdHYe<-QK!;{#!S$5|^wOO<9~2t+KH0dSD;l6r~Uh{|6IG@p8eG2KI#A4qxc%izBj)6 z^7nk=60d-u>!oXo%9&35y7%6%@eV%|cO*lrJfB&a_C(eRH?~PXb#q*(({Q1;b;|7j zmo_nMnXMZ9u1q8M+vV@Pz(B(S4l#z!{`-RSSKa2QeSdcT{&Y0aBFBE+)Bd-KJD%=* zI-fD@_erC!zgaIoJ>MVrvS`Ni#eXE^e@;HVpCKoW+tbW@dih_Lgd6it-%gzMd}=-8 zjq`j(`%8XivlUoO=ii)MANNzdfjztPU-r+cDbGI{oWFbuixcn(DF{3Kaq|4=oqAM% zn%MrBdGbCOsv8^{mird!m`?vFeoww&=98!lv)BH6>=Um0GfbQRtY+`_kCsUZw9u z1in}A SSGaZ($m^c2elF{r5}E+HkgQ(- literal 0 HcmV?d00001 diff --git a/src/icons/32.svg b/src/icons/32.svg new file mode 100644 index 0000000..447cddf --- /dev/null +++ b/src/icons/32.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/32x32.png b/src/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..f4bcd5f130a141293584ab0a9c534d83fe1b4083 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy#sNMdu0Z-mncwyDh#O_$pRS&| zSr-0m?erIGrvn)`%R%V#^)o>7PE*R=)-(|J+L<-ovkm~Y@s|Yo1vBtQB_?LIw)Px+ z_3Fo;Kb;*Hs)16So-U3d7N_q{_T)RPz`)GQnHzEIpk(M1rTG zIbWuw*CnTR*RBaoe4Lz%j6Cfxvg}hFsh8NzD8}ndqAIr_ndQ zt>if@_sutMyPCOkyFKskj-9vU1%G>o-M)ML)3KF2f93f0|J{7jL7G3^V(-HW_s{hV Yjp|xu*EAW=03F5P>FVdQ&MBb@04$JueE + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/48x48.png b/src/icons/48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..9f5d19d293a1291c51ef95ddaed09627feed3e22 GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-s#sNMdu0Z;6Vd(YB&>Q99H_F04 zT|M=3(*hv-R(beM82Wtu3{d25YdTQm^R+XZ-^gqOYU3{n@(X6*wDeC*tedgp%*|J? ze*ft=xa0$rI^gNz7~*mKZJ47_ivo}Kg6@W>fB$dgPUL>qGimO`$(A#`oi^%T7UEpf zFMU6u`(9A%bH5+X`wPs)Ui^_dti_)Gg6$Y<=q(|IJEyu;rw9b@>)Z9fMauJY<}V(% z&E8dpuUszv%bp=rJj?IPP0RJhXS2hycs(uWW~7U0cE+tVl_~wHIx$GEf>)WR;NgR7 z75k#y_qYF=tsA>^tJjPF1pkEj~UHx3vIVCg!0QriRo&W#< literal 0 HcmV?d00001 diff --git a/src/icons/icon.ico b/src/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..1c31bae6127be459b1e902314fc66293ab641933 GIT binary patch literal 3869 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