From f440c252109891002c4b84140286c31ba1fd1253 Mon Sep 17 00:00:00 2001 From: Rokas Puzonas Date: Sat, 6 May 2023 15:52:25 +0300 Subject: [PATCH] add window icon --- Cargo.lock | 283 +++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 1 + src/icon.png | Bin 0 -> 7081 bytes src/icon.xcf | Bin 0 -> 14056 bytes src/main.rs | 17 +++- 5 files changed, 300 insertions(+), 1 deletion(-) create mode 100644 src/icon.png create mode 100644 src/icon.xcf diff --git a/Cargo.lock b/Cargo.lock index 1e73886..855bd13 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -390,6 +390,12 @@ dependencies = [ "serde", ] +[[package]] +name = "bit_field" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" + [[package]] name = "bitflags" version = "1.3.2" @@ -542,6 +548,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + [[package]] name = "combine" version = "4.6.6" @@ -620,6 +632,40 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.8.0", + "scopeguard", +] + [[package]] name = "crossbeam-utils" version = "0.8.15" @@ -629,6 +675,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-common" version = "0.1.6" @@ -800,6 +852,12 @@ dependencies = [ "web-sys", ] +[[package]] +name = "either" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" + [[package]] name = "emath" version = "0.21.0" @@ -894,6 +952,22 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +[[package]] +name = "exr" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdd2162b720141a91a054640662d3edce3d50a944a50ffca5313cd951abb35b4" +dependencies = [ + "bit_field", + "flume", + "half", + "lebe", + "miniz_oxide", + "rayon-core", + "smallvec", + "zune-inflate", +] + [[package]] name = "fastrand" version = "1.9.0" @@ -913,6 +987,19 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "flume" +version = "0.10.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" +dependencies = [ + "futures-core", + "futures-sink", + "nanorand", + "pin-project", + "spin", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1037,8 +1124,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +dependencies = [ + "color_quant", + "weezl", ] [[package]] @@ -1128,6 +1227,15 @@ dependencies = [ "gl_generator", ] +[[package]] +name = "half" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" +dependencies = [ + "crunchy", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1165,6 +1273,25 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "image" +version = "0.24.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif", + "jpeg-decoder", + "num-rational", + "num-traits", + "png", + "qoi", + "tiff", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -1235,6 +1362,15 @@ dependencies = [ "libc", ] +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" +dependencies = [ + "rayon", +] + [[package]] name = "js-sys" version = "0.3.61" @@ -1279,6 +1415,12 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lebe" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" + [[package]] name = "libc" version = "0.2.140" @@ -1409,6 +1551,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -1436,6 +1587,15 @@ dependencies = [ "windows-sys 0.45.0", ] +[[package]] +name = "nanorand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" +dependencies = [ + "getrandom", +] + [[package]] name = "ndk" version = "0.7.0" @@ -1520,6 +1680,36 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + [[package]] name = "num_cpus" version = "1.15.0" @@ -1744,6 +1934,26 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +[[package]] +name = "pin-project" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "pin-project-lite" version = "0.2.9" @@ -1829,6 +2039,15 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + [[package]] name = "quick-xml" version = "0.28.1" @@ -1883,6 +2102,28 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f851a03551ceefd30132e447f07f96cb7011d6b658374f3aed847333adb5559" +[[package]] +name = "rayon" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -2102,6 +2343,12 @@ dependencies = [ "libc", ] +[[package]] +name = "simd-adler32" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f" + [[package]] name = "slab" version = "0.4.8" @@ -2182,6 +2429,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + [[package]] name = "ssh2" version = "0.9.4" @@ -2290,6 +2546,17 @@ dependencies = [ "syn 2.0.10", ] +[[package]] +name = "tiff" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + [[package]] name = "time" version = "0.3.20" @@ -2469,6 +2736,7 @@ dependencies = [ "eframe", "egui", "hex", + "image", "lazy-regex", "serde", "serde_json", @@ -2741,6 +3009,12 @@ dependencies = [ "web-sys", ] +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + [[package]] name = "winapi" version = "0.3.9" @@ -3055,6 +3329,15 @@ dependencies = [ "zvariant", ] +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] + [[package]] name = "zvariant" version = "3.12.0" diff --git a/Cargo.toml b/Cargo.toml index 69b7a79..0069290 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,6 +12,7 @@ directories-next = "2.0.0" eframe = "0.21.3" egui = "0.21.0" hex = "0.4.3" +image = "0.24.6" lazy-regex = "2.5.0" serde = { version = "1.0.158", features = ["derive"] } serde_json = "1.0.94" diff --git a/src/icon.png b/src/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6bb2923b9aabd69d30cf4fd72eaef0ff4014cf46 GIT binary patch literal 7081 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 Result { + let image = image::load_from_memory(image_data)?; + Ok(IconData { + rgba: image.to_rgba8().to_vec(), + width: image.width(), + height: image.height(), + }) +} + fn main() { let rt = Runtime::new().expect("Unable to create Runtime"); let _enter = rt.enter(); let mut app = App::default(); + let mut options = eframe::NativeOptions::default(); + options.min_window_size = Some(Vec2::new(900.0, 500.0)); + let icon_data = load_icon_from_memory(include_bytes!("./icon.png")).expect("Failed to load icon data"); + options.icon_data = Some(icon_data); eframe::run_native( "ubusman", - eframe::NativeOptions::default(), + options, Box::new(move |cc| { app.init(cc); Box::new(app)