From 170270d83ef751b635e27cb966f639a7c89f83af Mon Sep 17 00:00:00 2001 From: Mike Dilger Date: Tue, 20 Dec 2022 19:57:06 +1300 Subject: [PATCH] App icon showing --- Cargo.lock | 550 +++++++++++++++++++++++++++++++++++++++++++++++++- Cargo.toml | 2 + gossip.png | Bin 0 -> 4496 bytes src/error.rs | 3 + src/main.rs | 4 +- src/ui/mod.rs | 19 +- 6 files changed, 569 insertions(+), 9 deletions(-) create mode 100644 gossip.png diff --git a/Cargo.lock b/Cargo.lock index b0c79653..5a01f886 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -193,6 +193,12 @@ version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf" +[[package]] +name = "bit_field" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4" + [[package]] name = "bitflags" version = "1.3.2" @@ -268,6 +274,12 @@ dependencies = [ "syn", ] +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + [[package]] name = "bytes" version = "1.3.0" @@ -412,6 +424,12 @@ dependencies = [ "unicode-width", ] +[[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" @@ -505,6 +523,49 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.7.1", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +dependencies = [ + "cfg-if", +] + [[package]] name = "crossfont" version = "0.5.1" @@ -528,6 +589,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-bigint" version = "0.4.9" @@ -669,6 +736,15 @@ dependencies = [ "syn", ] +[[package]] +name = "data-url" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a30bfce702bcfa94e906ef82421f2c0e61c076ad76030c16ee5d2e9a32fe193" +dependencies = [ + "matches", +] + [[package]] name = "der" version = "0.6.1" @@ -830,6 +906,20 @@ dependencies = [ "winit", ] +[[package]] +name = "egui_extras" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1975cd88ff7430f93b29e6b9868b648a8ff6a43b08b9ff8474ee0a648bd8f9a6" +dependencies = [ + "egui", + "resvg", + "serde", + "tiny-skia 0.6.6", + "tracing", + "usvg", +] + [[package]] name = "egui_glow" version = "0.20.1" @@ -839,12 +929,18 @@ dependencies = [ "bytemuck", "egui", "glow", - "memoffset", + "memoffset 0.6.5", "tracing", "wasm-bindgen", "web-sys", ] +[[package]] +name = "either" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" + [[package]] name = "elliptic-curve" version = "0.12.3" @@ -931,6 +1027,21 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "exr" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb5f255b5980bb0c8cf676b675d1a99be40f316881444f44e0462eaf5df5ded" +dependencies = [ + "bit_field", + "flume", + "half", + "lebe", + "miniz_oxide", + "smallvec", + "threadpool", +] + [[package]] name = "fallible-iterator" version = "0.2.0" @@ -963,12 +1074,52 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" + +[[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" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "fontconfig-parser" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2be17a530a842f8a7a60f4397a08e8f08872849a5e31b20c7bd7301dac483296" +dependencies = [ + "roxmltree 0.15.1", +] + +[[package]] +name = "fontdb" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52186a39c335aa6f79fc0bf1c3cf854870b6ad4e50a7bb8a59b4ba1331f478a" +dependencies = [ + "fontconfig-parser", + "log", + "memmap2", + "ttf-parser 0.17.1", +] + [[package]] name = "foreign-types" version = "0.3.2" @@ -1042,6 +1193,18 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "futures-core" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" + +[[package]] +name = "futures-sink" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" + [[package]] name = "generic-array" version = "0.14.6" @@ -1069,8 +1232,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.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06" +dependencies = [ + "color_quant", + "weezl", ] [[package]] @@ -1154,6 +1329,8 @@ version = "0.3.0" dependencies = [ "dirs", "eframe", + "egui_extras", + "image", "lazy_static", "nostr-proto", "rusqlite", @@ -1177,6 +1354,15 @@ dependencies = [ "subtle", ] +[[package]] +name = "half" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad6a9459c9c30b177b925162351f97e7d967c7ea8bab3b8352805327daf45554" +dependencies = [ + "crunchy", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1259,6 +1445,25 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "image" +version = "0.24.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69b7ea949b537b0fd0af141fff8c77690f2ce96f4f41f042ccb6c69c6c965945" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif", + "jpeg-decoder 0.3.0", + "num-rational", + "num-traits", + "png", + "scoped_threadpool", + "tiff", +] + [[package]] name = "inout" version = "0.1.3" @@ -1307,6 +1512,21 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[package]] +name = "jpeg-decoder" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9478aa10f73e7528198d75109c8be5cd7d15fb530238040148d5f9a22d4c5b3b" + +[[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.60" @@ -1349,6 +1569,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.138" @@ -1413,6 +1639,12 @@ dependencies = [ "libc", ] +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + [[package]] name = "memchr" version = "2.5.0" @@ -1437,6 +1669,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -1464,6 +1705,15 @@ dependencies = [ "windows-sys 0.42.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" @@ -1531,7 +1781,7 @@ dependencies = [ "bitflags", "cfg-if", "libc", - "memoffset", + "memoffset 0.6.5", ] [[package]] @@ -1544,7 +1794,7 @@ dependencies = [ "bitflags", "cfg-if", "libc", - "memoffset", + "memoffset 0.6.5", ] [[package]] @@ -1603,6 +1853,17 @@ dependencies = [ "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" @@ -1716,7 +1977,7 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18904d3c65493a9f0d7542293d1a7f69bfdc309a6b9ef4f46dc3e58b0577edc5" dependencies = [ - "ttf-parser", + "ttf-parser 0.17.1", ] [[package]] @@ -1777,6 +2038,32 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + +[[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", +] + [[package]] name = "pin-project-lite" version = "0.2.9" @@ -1867,6 +2154,34 @@ dependencies = [ "cty", ] +[[package]] +name = "rayon" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "rctree" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae028b272a6e99d9f8260ceefa3caa09300a8d6c8d2b2001316474bc52122e9" + [[package]] name = "redox_syscall" version = "0.2.16" @@ -1887,6 +2202,24 @@ dependencies = [ "thiserror", ] +[[package]] +name = "resvg" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34489194784b86c03c3d688258e2ba73f3c82700ba4673ee2ecad5ae540b9438" +dependencies = [ + "gif", + "jpeg-decoder 0.2.6", + "log", + "pico-args", + "png", + "rgb", + "svgfilters", + "svgtypes", + "tiny-skia 0.6.6", + "usvg", +] + [[package]] name = "rfc6979" version = "0.3.1" @@ -1898,6 +2231,33 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rgb" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3603b7d71ca82644f79b5a06d1220e9a58ede60bd32255f698cb1af8838b8db3" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "roxmltree" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "roxmltree" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b9de9831a129b122e7e61f242db509fa9d0838008bf0b29bb0624669edfe48a" +dependencies = [ + "xmlparser", +] + [[package]] name = "rusqlite" version = "0.28.0" @@ -1923,6 +2283,22 @@ dependencies = [ "semver", ] +[[package]] +name = "rustybuzz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a617c811f5c9a7060fe511d35d13bf5b9f0463ce36d63ce666d05779df2b4eba" +dependencies = [ + "bitflags", + "bytemuck", + "smallvec", + "ttf-parser 0.15.2", + "unicode-bidi-mirroring", + "unicode-ccc", + "unicode-general-category", + "unicode-script", +] + [[package]] name = "ryu" version = "1.0.12" @@ -1953,6 +2329,12 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" +[[package]] +name = "scoped_threadpool" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" + [[package]] name = "scopeguard" version = "1.1.0" @@ -1974,7 +2356,7 @@ dependencies = [ "crossfont", "log", "smithay-client-toolkit", - "tiny-skia", + "tiny-skia 0.7.0", ] [[package]] @@ -2088,6 +2470,21 @@ dependencies = [ "rand_core", ] +[[package]] +name = "simplecss" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d" +dependencies = [ + "log", +] + +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + [[package]] name = "slotmap" version = "1.0.6" @@ -2142,6 +2539,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "spin" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09" +dependencies = [ + "lock_api", +] + [[package]] name = "spki" version = "0.6.0" @@ -2170,6 +2576,25 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +[[package]] +name = "svgfilters" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "639abcebc15fdc2df179f37d6f5463d660c1c79cd552c12343a4600827a04bce" +dependencies = [ + "float-cmp", + "rgb", +] + +[[package]] +name = "svgtypes" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22975e8a2bac6a76bb54f898a6b18764633b00e780330f0b689f65afb3975564" +dependencies = [ + "siphasher", +] + [[package]] name = "syn" version = "1.0.107" @@ -2219,6 +2644,40 @@ dependencies = [ "once_cell", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tiff" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471" +dependencies = [ + "flate2", + "jpeg-decoder 0.3.0", + "weezl", +] + +[[package]] +name = "tiny-skia" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d049bfef0eaa2521e75d9ffb5ce86ad54480932ae19b85f78bec6f52c4d30d78" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "bytemuck", + "cfg-if", + "png", + "safe_arch", +] + [[package]] name = "tiny-skia" version = "0.7.0" @@ -2357,6 +2816,12 @@ dependencies = [ "tracing-log", ] +[[package]] +name = "ttf-parser" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b3e06c9b9d80ed6b745c7159c40b311ad2916abb34a49e9be2653b90db0d8dd" + [[package]] name = "ttf-parser" version = "0.17.1" @@ -2375,6 +2840,24 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +[[package]] +name = "unicode-bidi-mirroring" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694" + +[[package]] +name = "unicode-ccc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1" + +[[package]] +name = "unicode-general-category" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07547e3ee45e28326cc23faac56d44f58f16ab23e413db526debce3b0bfd2742" + [[package]] name = "unicode-ident" version = "1.0.6" @@ -2390,6 +2873,18 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-script" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc" + +[[package]] +name = "unicode-vo" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" + [[package]] name = "unicode-width" version = "0.1.10" @@ -2407,6 +2902,33 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "usvg" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28a82565b5c96dcbb58c9bdbb6aa3642abd395a6a6b480658532c6f74c3c4b7a" +dependencies = [ + "base64", + "data-url", + "flate2", + "float-cmp", + "fontdb", + "kurbo", + "log", + "pico-args", + "rctree", + "roxmltree 0.14.1", + "rustybuzz", + "simplecss", + "siphasher", + "svgtypes", + "ttf-parser 0.15.2", + "unicode-bidi", + "unicode-script", + "unicode-vo", + "xmlwriter", +] + [[package]] name = "valuable" version = "0.1.0" @@ -2625,6 +3147,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + [[package]] name = "widestring" version = "1.0.2" @@ -2888,6 +3416,18 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +[[package]] +name = "xmlparser" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" + +[[package]] +name = "xmlwriter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" + [[package]] name = "zeroize" version = "1.5.7" diff --git a/Cargo.toml b/Cargo.toml index b0f8d603..f6c28b9e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,8 @@ edition = "2021" [dependencies] dirs = "4.0" eframe = "0.20" +egui_extras = { version = "0.20", features = [ "svg", "tracing" ] } +image = "0.24" lazy_static = "1.4" nostr-proto = { git = "https://github.com/mikedilger/nostr-proto", branch = "master" } rusqlite = { version = "0.28", features = ["bundled", "chrono", "serde_json"] } diff --git a/gossip.png b/gossip.png new file mode 100644 index 0000000000000000000000000000000000000000..97f2e4b067adb2ffa88f193cf315bd1e6c6547f1 GIT binary patch literal 4496 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 X`0?nY7{*k(R|gmyAQ5$XnAraV^G|?^ literal 0 HcmV?d00001 diff --git a/src/error.rs b/src/error.rs index 1d46aabb..c6d06c11 100644 --- a/src/error.rs +++ b/src/error.rs @@ -21,6 +21,9 @@ pub enum Error { #[error("Nostr: {0}")] Nostr(#[from] nostr_proto::Error), + #[error("Image: {0}")] + Image(#[from] image::error::ImageError), + #[error("I/O Error: {0}")] Io(#[from] std::io::Error), diff --git a/src/main.rs b/src/main.rs index 0f12b4a9..76e474b1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,7 +16,9 @@ fn main() { // TBD: start async code - ui::run(); + if let Err(e) = ui::run() { + tracing::error!("{}", e); + } // TBD: Tell the async parties to close down // TBD: wait for the async parties to close down diff --git a/src/ui/mod.rs b/src/ui/mod.rs index 86fcbc32..b0e30acf 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -1,7 +1,18 @@ -use eframe::egui; +use crate::error::Error; +use eframe::{egui, IconData}; + +pub fn run() -> Result<(), Error> { + let icon_bytes = include_bytes!("../../gossip.png"); + let icon = image::load_from_memory(icon_bytes)?.to_rgba8(); + let (icon_width, icon_height) = icon.dimensions(); -pub fn run() { let options = eframe::NativeOptions { + decorated: true, + icon_data: Some(IconData { + rgba: icon.into_raw(), + width: icon_width, + height: icon_height, + }), initial_window_size: Some(egui::vec2(320.0, 240.0)), ..Default::default() }; @@ -10,7 +21,9 @@ pub fn run() { "My egui App", options, Box::new(|_cc| Box::new(MyApp::default())), - ) + ); + + Ok(()) } struct MyApp {