diff --git a/Cargo.lock b/Cargo.lock index 2106e036..ced690e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -61,7 +61,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", - "bitflags 2.5.0", + "bitflags 2.6.0", "cc", "cesu8", "jni", @@ -238,7 +238,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -273,7 +273,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -296,6 +296,12 @@ dependencies = [ "iced_aw", ] +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + [[package]] name = "bit-set" version = "0.5.3" @@ -325,9 +331,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "block" @@ -395,7 +401,7 @@ checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -416,7 +422,7 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "log", "polling", "rustix", @@ -446,9 +452,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.99" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" +checksum = "ac367972e516d45567c7eafc73d24e1c193dcf200a8d94e9db7b3d38b349572d" dependencies = [ "jobserver", "libc", @@ -665,7 +671,7 @@ dependencies = [ "log", "rangemap", "rustc-hash", - "rustybuzz", + "rustybuzz 0.11.0", "self_cell", "swash", "sys-locale", @@ -752,8 +758,8 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e3d747f100290a1ca24b752186f61f6637e1deffe3bf6320de6fcb29510a307" dependencies = [ - "bitflags 2.5.0", - "libloading 0.8.3", + "bitflags 2.6.0", + "libloading 0.8.4", "winapi", ] @@ -773,6 +779,12 @@ dependencies = [ "zbus", ] +[[package]] +name = "data-url" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" + [[package]] name = "date_picker" version = "0.1.0" @@ -844,7 +856,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading 0.8.3", + "libloading 0.8.4", ] [[package]] @@ -870,7 +882,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98888c4bbd601524c11a7ed63f814b8825f420514f78e96f752c437ae9cbb5d1" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "bytemuck", "drm-ffi", "drm-fourcc", @@ -913,9 +925,9 @@ dependencies = [ [[package]] name = "either" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "endi" @@ -941,7 +953,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -1053,6 +1065,12 @@ 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 = "float_next_after" version = "1.0.0" @@ -1083,7 +1101,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d" dependencies = [ - "roxmltree", + "roxmltree 0.19.0", ] [[package]] @@ -1118,7 +1136,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -1197,7 +1215,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -1261,6 +1279,16 @@ dependencies = [ "wasi", ] +[[package]] +name = "gif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +dependencies = [ + "color_quant", + "weezl", +] + [[package]] name = "gif" version = "0.13.1" @@ -1327,7 +1355,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "gpu-alloc-types", ] @@ -1337,7 +1365,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] @@ -1359,7 +1387,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "gpu-descriptor-types", "hashbrown 0.14.5", ] @@ -1370,7 +1398,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] @@ -1426,10 +1454,10 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "com", "libc", - "libloading 0.8.3", + "libloading 0.8.4", "thiserror", "widestring", "winapi", @@ -1485,7 +1513,7 @@ dependencies = [ [[package]] name = "iced" version = "0.13.0-dev" -source = "git+https://github.com/iced-rs/iced.git#e8b1e5a112e7f54689947137932aa18dd46f567a" +source = "git+https://github.com/iced-rs/iced.git#b9eb86199afe0f2d936eb4ab90af5b2a2c32a87a" dependencies = [ "iced_core", "iced_futures", @@ -1513,9 +1541,9 @@ dependencies = [ [[package]] name = "iced_core" version = "0.13.0-dev" -source = "git+https://github.com/iced-rs/iced.git#e8b1e5a112e7f54689947137932aa18dd46f567a" +source = "git+https://github.com/iced-rs/iced.git#b9eb86199afe0f2d936eb4ab90af5b2a2c32a87a" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "bytes", "dark-light", "glam", @@ -1532,7 +1560,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.13.0-dev" -source = "git+https://github.com/iced-rs/iced.git#e8b1e5a112e7f54689947137932aa18dd46f567a" +source = "git+https://github.com/iced-rs/iced.git#b9eb86199afe0f2d936eb4ab90af5b2a2c32a87a" dependencies = [ "futures", "iced_core", @@ -1545,9 +1573,9 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.13.0-dev" -source = "git+https://github.com/iced-rs/iced.git#e8b1e5a112e7f54689947137932aa18dd46f567a" +source = "git+https://github.com/iced-rs/iced.git#b9eb86199afe0f2d936eb4ab90af5b2a2c32a87a" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "bytemuck", "cosmic-text", "half", @@ -1567,7 +1595,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.13.0-dev" -source = "git+https://github.com/iced-rs/iced.git#e8b1e5a112e7f54689947137932aa18dd46f567a" +source = "git+https://github.com/iced-rs/iced.git#b9eb86199afe0f2d936eb4ab90af5b2a2c32a87a" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -1579,7 +1607,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.13.0-dev" -source = "git+https://github.com/iced-rs/iced.git#e8b1e5a112e7f54689947137932aa18dd46f567a" +source = "git+https://github.com/iced-rs/iced.git#b9eb86199afe0f2d936eb4ab90af5b2a2c32a87a" dependencies = [ "bytes", "iced_core", @@ -1591,13 +1619,14 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.13.0-dev" -source = "git+https://github.com/iced-rs/iced.git#e8b1e5a112e7f54689947137932aa18dd46f567a" +source = "git+https://github.com/iced-rs/iced.git#b9eb86199afe0f2d936eb4ab90af5b2a2c32a87a" dependencies = [ "bytemuck", "cosmic-text", "iced_graphics", - "kurbo", + "kurbo 0.10.4", "log", + "resvg", "rustc-hash", "softbuffer", "tiny-skia", @@ -1606,9 +1635,9 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.13.0-dev" -source = "git+https://github.com/iced-rs/iced.git#e8b1e5a112e7f54689947137932aa18dd46f567a" +source = "git+https://github.com/iced-rs/iced.git#b9eb86199afe0f2d936eb4ab90af5b2a2c32a87a" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "bytemuck", "futures", "glam", @@ -1618,6 +1647,7 @@ dependencies = [ "log", "lyon", "once_cell", + "resvg", "rustc-hash", "thiserror", "wgpu", @@ -1626,7 +1656,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.13.0-dev" -source = "git+https://github.com/iced-rs/iced.git#e8b1e5a112e7f54689947137932aa18dd46f567a" +source = "git+https://github.com/iced-rs/iced.git#b9eb86199afe0f2d936eb4ab90af5b2a2c32a87a" dependencies = [ "iced_renderer", "iced_runtime", @@ -1639,7 +1669,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.13.0-dev" -source = "git+https://github.com/iced-rs/iced.git#e8b1e5a112e7f54689947137932aa18dd46f567a" +source = "git+https://github.com/iced-rs/iced.git#b9eb86199afe0f2d936eb4ab90af5b2a2c32a87a" dependencies = [ "iced_futures", "iced_graphics", @@ -1665,7 +1695,7 @@ dependencies = [ "byteorder", "color_quant", "exr", - "gif", + "gif 0.13.1", "jpeg-decoder", "num-traits", "png", @@ -1673,6 +1703,12 @@ dependencies = [ "tiff", ] +[[package]] +name = "imagesize" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" + [[package]] name = "indexmap" version = "2.2.6" @@ -1772,7 +1808,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" dependencies = [ "libc", - "libloading 0.8.3", + "libloading 0.8.4", "pkg-config", ] @@ -1782,6 +1818,15 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" +[[package]] +name = "kurbo" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b" +dependencies = [ + "arrayvec", +] + [[package]] name = "kurbo" version = "0.10.4" @@ -1816,9 +1861,9 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +checksum = "e310b3a6b5907f99202fcdb4960ff45b93735d7c7d96b760fcff8db2dc0e103d" dependencies = [ "cfg-if", "windows-targets 0.52.5", @@ -1836,7 +1881,7 @@ version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", "redox_syscall 0.4.1", ] @@ -1847,7 +1892,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", ] @@ -1979,13 +2024,21 @@ dependencies = [ "autocfg", ] +[[package]] +name = "menu" +version = "0.1.0" +dependencies = [ + "iced", + "iced_aw", +] + [[package]] name = "metal" version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "block", "core-graphics-types", "foreign-types", @@ -2017,7 +2070,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50e3524642f53d9af419ab5e8dd29d3ba155708267667c2f3f06c88c9e130843" dependencies = [ "bit-set", - "bitflags 2.5.0", + "bitflags 2.6.0", "codespan-reporting", "hexf-parse", "indexmap", @@ -2036,7 +2089,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "jni-sys", "log", "ndk-sys 0.6.0+11769913", @@ -2075,7 +2128,7 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "cfg_aliases 0.1.1", "libc", @@ -2136,7 +2189,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -2199,7 +2252,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "block2", "libc", "objc2", @@ -2215,7 +2268,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "block2", "objc2", "objc2-core-location", @@ -2239,7 +2292,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "block2", "objc2", "objc2-foundation", @@ -2281,7 +2334,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "block2", "dispatch", "libc", @@ -2306,7 +2359,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "block2", "objc2", "objc2-foundation", @@ -2318,7 +2371,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "block2", "objc2", "objc2-foundation", @@ -2341,7 +2394,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "block2", "objc2", "objc2-cloud-kit", @@ -2373,7 +2426,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "block2", "objc2", "objc2-core-location", @@ -2463,7 +2516,7 @@ dependencies = [ "by_address", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -2562,7 +2615,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -2574,6 +2627,12 @@ dependencies = [ "siphasher", ] +[[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.1.5" @@ -2591,7 +2650,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -2788,6 +2847,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "rctree" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f" + [[package]] name = "read-fonts" version = "0.19.3" @@ -2822,7 +2887,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] @@ -2842,6 +2907,41 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" +[[package]] +name = "resvg" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7980f653f9a7db31acff916a262c3b78c562919263edea29bf41a056e20497" +dependencies = [ + "gif 0.12.0", + "jpeg-decoder", + "log", + "pico-args", + "png", + "rgb", + "svgtypes", + "tiny-skia", + "usvg", +] + +[[package]] +name = "rgb" +version = "0.8.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "roxmltree" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302" +dependencies = [ + "xmlparser", +] + [[package]] name = "roxmltree" version = "0.19.0" @@ -2870,13 +2970,29 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys 0.4.14", "windows-sys 0.52.0", ] +[[package]] +name = "rustybuzz" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71cd15fef9112a1f94ac64b58d1e4628192631ad6af4dc69997f995459c874e7" +dependencies = [ + "bitflags 1.3.2", + "bytemuck", + "smallvec", + "ttf-parser 0.19.2", + "unicode-bidi-mirroring", + "unicode-ccc", + "unicode-properties", + "unicode-script", +] + [[package]] name = "rustybuzz" version = "0.11.0" @@ -2959,7 +3075,7 @@ checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -2970,7 +3086,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -2999,6 +3115,15 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[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.11" @@ -3053,7 +3178,7 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "calloop", "calloop-wayland-source", "cursor-icon", @@ -3094,9 +3219,9 @@ dependencies = [ [[package]] name = "softbuffer" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae0d2e93c874cca74fe830bccbd1132299318932d273d2a3c77ad77476a3d7e" +checksum = "d623bff5d06f60d738990980d782c8c866997d9194cfe79ecad00aa2f76826dd" dependencies = [ "as-raw-xcb-connection", "bytemuck", @@ -3148,7 +3273,7 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] @@ -3162,6 +3287,9 @@ name = "strict-num" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" +dependencies = [ + "float-cmp", +] [[package]] name = "svg_fmt" @@ -3169,6 +3297,16 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20e16a0f46cf5fd675563ef54f26e83e20f2366bcf027bcb3cc3ed2b98aaf2ca" +[[package]] +name = "svgtypes" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71499ff2d42f59d26edb21369a308ede691421f79ebc0f001e2b1fd3a7c9e52" +dependencies = [ + "kurbo 0.9.5", + "siphasher", +] + [[package]] name = "swash" version = "0.1.17" @@ -3193,9 +3331,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.67" +version = "2.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8655ed1d86f3af4ee3fd3263786bc14245ad17c4c7e85ba7187fb3ae028c90" +checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" dependencies = [ "proc-macro2", "quote", @@ -3265,7 +3403,7 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -3342,16 +3480,16 @@ checksum = "1d52f22673960ad13af14ff4025997312def1223bfa7c8e4949d099e6b3d5d1c" dependencies = [ "as-raw-xcb-connection", "ctor-lite", - "libloading 0.8.3", + "libloading 0.8.4", "pkg-config", "tracing", ] [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "c55115c6fbe2d2bef26eb09ad74bde02d8255476fc0c7b515ef09fbb35742d82" dependencies = [ "tinyvec_macros", ] @@ -3398,7 +3536,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -3493,6 +3631,12 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +[[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.13" @@ -3505,6 +3649,67 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +[[package]] +name = "usvg" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c51daa774fe9ee5efcf7b4fec13019b8119cda764d9a8b5b06df02bb1445c656" +dependencies = [ + "base64", + "log", + "pico-args", + "usvg-parser", + "usvg-text-layout", + "usvg-tree", + "xmlwriter", +] + +[[package]] +name = "usvg-parser" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45c88a5ffaa338f0e978ecf3d4e00d8f9f493e29bed0752e1a808a1db16afc40" +dependencies = [ + "data-url", + "flate2", + "imagesize", + "kurbo 0.9.5", + "log", + "roxmltree 0.18.1", + "simplecss", + "siphasher", + "svgtypes", + "usvg-tree", +] + +[[package]] +name = "usvg-text-layout" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d2374378cb7a3fb8f33894e0fdb8625e1bbc4f25312db8d91f862130b541593" +dependencies = [ + "fontdb", + "kurbo 0.9.5", + "log", + "rustybuzz 0.10.0", + "unicode-bidi", + "unicode-script", + "unicode-vo", + "usvg-tree", +] + +[[package]] +name = "usvg-tree" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cacb0c5edeaf3e80e5afcf5b0d4004cc1d36318befc9a7c6606507e5d0f4062" +dependencies = [ + "rctree", + "strict-num", + "svgtypes", + "tiny-skia-path", +] + [[package]] name = "version_check" version = "0.9.4" @@ -3548,7 +3753,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", "wasm-bindgen-shared", ] @@ -3582,7 +3787,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3628,7 +3833,7 @@ version = "0.31.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e63801c85358a431f986cffa74ba9599ff571fc5774ac113ed3b490c19a1133" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "rustix", "wayland-backend", "wayland-scanner", @@ -3640,7 +3845,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cursor-icon", "wayland-backend", ] @@ -3662,7 +3867,7 @@ version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "wayland-backend", "wayland-client", "wayland-scanner", @@ -3674,7 +3879,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -3687,7 +3892,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -3776,7 +3981,7 @@ checksum = "28b94525fc99ba9e5c9a9e24764f2bc29bad0911a7446c12f446a8277369bf3a" dependencies = [ "arrayvec", "bit-vec", - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg_aliases 0.1.1", "codespan-reporting", "indexmap", @@ -3804,7 +4009,7 @@ dependencies = [ "arrayvec", "ash", "bit-set", - "bitflags 2.5.0", + "bitflags 2.6.0", "block", "cfg_aliases 0.1.1", "core-graphics-types", @@ -3818,7 +4023,7 @@ dependencies = [ "js-sys", "khronos-egl", "libc", - "libloading 0.8.3", + "libloading 0.8.4", "log", "metal", "naga", @@ -3845,7 +4050,7 @@ version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b671ff9fb03f78b46ff176494ee1ebe7d603393f42664be55b64dc8d53969805" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "js-sys", "web-sys", ] @@ -4133,7 +4338,7 @@ dependencies = [ "ahash 0.8.11", "android-activity", "atomic-waker", - "bitflags 2.5.0", + "bitflags 2.6.0", "block2", "bytemuck", "calloop", @@ -4223,7 +4428,7 @@ dependencies = [ "as-raw-xcb-connection", "gethostname", "libc", - "libloading 0.8.3", + "libloading 0.8.4", "once_cell", "rustix", "x11rb-protocol", @@ -4257,7 +4462,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "dlib", "log", "once_cell", @@ -4276,6 +4481,18 @@ version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" +[[package]] +name = "xmlparser" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" + +[[package]] +name = "xmlwriter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" + [[package]] name = "yazi" version = "0.1.6" @@ -4329,7 +4546,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", "zvariant_utils", ] @@ -4367,7 +4584,7 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -4401,7 +4618,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", "zvariant_utils", ] @@ -4413,5 +4630,5 @@ checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] diff --git a/Cargo.toml b/Cargo.toml index da16acb0..7b7ff67b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,7 +53,7 @@ default = [ "context_menu", "spinner", "drop_down", - #"menu", + "menu", ] [dependencies] @@ -93,7 +93,7 @@ members = [ "examples/spinner", "examples/WidgetIDReturn", "examples/drop_down", - #"examples/menu", + "examples/menu", ] [workspace.dependencies.iced] diff --git a/examples/menu/src/main.rs b/examples/menu/src/main.rs index 8fefd27a..6885461e 100644 --- a/examples/menu/src/main.rs +++ b/examples/menu/src/main.rs @@ -3,7 +3,7 @@ use iced::widget::{ toggler, vertical_slider, }; use iced::widget::{column as col, vertical_space}; -use iced::{alignment, theme, Application, Border, Color, Element, Length, Pixels, Size}; +use iced::{alignment, theme, Border, Color, Element, Length, Size}; use iced_aw::menu::{self, Item, Menu, StyleSheet}; use iced_aw::style::MenuBarStyle; @@ -12,15 +12,10 @@ use iced_aw::{quad, widgets::InnerBounds}; use iced_aw::{Bootstrap, BOOTSTRAP_FONT, BOOTSTRAP_FONT_BYTES}; pub fn main() -> iced::Result { - // std::env::set_var("RUST_BACKTRACE", "full"); - App::run(iced::Settings { - default_text_size: Pixels(15.0), - window: iced::window::Settings { - size: Size::new(1000.0, 600.0), - ..Default::default() - }, - ..Default::default() - }) + iced::application(App::title, App::update, App::view) + .font(BOOTSTRAP_FONT_BYTES) + .window_size(Size::new(1000.0, 600.0)) + .run() } #[derive(Debug, Clone)] @@ -44,13 +39,9 @@ struct App { dark_mode: bool, text: String, } -impl Application for App { - type Executor = iced::executor::Default; - type Message = Message; - type Theme = iced::Theme; - type Flags = (); - fn new(_flags: Self::Flags) -> (Self, iced::Command) { +impl Default for App { + fn default() -> Self { let theme = iced::Theme::custom( "Custom Theme".into(), theme::Palette { @@ -59,29 +50,24 @@ impl Application for App { }, ); - ( - Self { - title: "Menu Test".to_string(), - value: 0, - check: false, - toggle: false, - theme, - dark_mode: false, - text: "Text Input".into(), - }, - iced::font::load(BOOTSTRAP_FONT_BYTES).map(|_| Message::None), - ) - } - - fn theme(&self) -> Self::Theme { - self.theme.clone() + Self { + title: "Menu Test".to_string(), + value: 0, + check: false, + toggle: false, + theme, + dark_mode: false, + text: "Text Input".into(), + } } +} +impl App { fn title(&self) -> String { self.title.clone() } - fn update(&mut self, message: Self::Message) -> iced::Command { + fn update(&mut self, message: Message) { match message { Message::Debug(s) => { self.title = s; @@ -135,10 +121,9 @@ impl Application for App { } Message::None => {} } - iced::Command::none() } - fn view(&self) -> iced::Element<'_, Self::Message, iced::Theme, iced::Renderer> { + fn view(&self) -> iced::Element<'_, Message> { let menu_tpl_1 = |items| Menu::new(items).max_width(180.0).offset(15.0).spacing(5.0); let menu_tpl_2 = |items| Menu::new(items).max_width(180.0).offset(0.0).spacing(5.0); @@ -452,13 +437,13 @@ impl Application for App { vertical_space().height(500), ]; - let sc = scrollable(c).direction(scrollable::Direction::Both { - vertical: scrollable::Properties::new().alignment(scrollable::Alignment::End), - horizontal: scrollable::Properties::new(), - }); + let sc = scrollable(c); /*.direction(scrollable::Direction::Both { + vertical: scrollable::Properties::new().alignment(scrollable::Alignment::End), + horizontal: scrollable::Properties::new(), + });*/ - fn back_style(theme: &iced::Theme) -> container::Appearance { - container::Appearance { + fn back_style(theme: &iced::Theme) -> container::Style { + container::Style { background: Some(theme.extended_palette().primary.base.color.into()), ..Default::default() } @@ -472,72 +457,46 @@ impl Application for App { } } -struct ButtonStyle; -impl button::StyleSheet for ButtonStyle { - type Style = iced::Theme; - - fn active(&self, style: &Self::Style) -> button::Appearance { - button::Appearance { - text_color: style.extended_palette().background.base.text, - background: Some(Color::TRANSPARENT.into()), - // background: Some(Color::from([1.0; 3]).into()), - border: Border { - radius: [6.0; 4].into(), - ..Default::default() - }, - ..Default::default() - } - } - - fn hovered(&self, style: &Self::Style) -> button::Appearance { - let plt = style.extended_palette(); - - button::Appearance { - background: Some(plt.primary.weak.color.into()), - text_color: plt.primary.weak.text, - ..self.active(style) - } - } -} - fn base_button<'a>( - content: impl Into>, + content: impl Into>, msg: Message, -) -> button::Button<'a, Message, iced::Theme, iced::Renderer> { +) -> button::Button<'a, Message> { button(content) .padding([4, 8]) - .style(iced::theme::Button::Custom(Box::new(ButtonStyle {}))) + .style(iced::widget::button::primary) .on_press(msg) } -fn labeled_button<'a>( +fn labeled_button( label: &str, msg: Message, -) -> button::Button<'a, Message, iced::Theme, iced::Renderer> { +) -> button::Button { base_button( text(label).vertical_alignment(alignment::Vertical::Center), msg, ) } -fn debug_button<'a>(label: &str) -> button::Button<'a, Message, iced::Theme, iced::Renderer> { +fn debug_button(label: &str) -> button::Button { labeled_button(label, Message::Debug(label.into())).width(Length::Fill) } -fn debug_button_s<'a>(label: &str) -> button::Button<'a, Message, iced::Theme, iced::Renderer> { +fn debug_button_s(label: &str) -> button::Button { labeled_button(label, Message::Debug(label.into())).width(Length::Shrink) } -fn submenu_button<'a>(label: &str) -> button::Button<'a, Message, iced::Theme, iced::Renderer> { +fn submenu_button(label: &str) -> button::Button { base_button( row![ text(label) .width(Length::Fill) .vertical_alignment(alignment::Vertical::Center), - text(Bootstrap::CaretRightFill) - .font(BOOTSTRAP_FONT) - .width(Length::Shrink) - .vertical_alignment(alignment::Vertical::Center), + text(iced_aw::bootstrap::icon_to_string( + Bootstrap::CaretRightFill + )) + .font(BOOTSTRAP_FONT) + .width(Length::Shrink) + .vertical_alignment(alignment::Vertical::Center), ] .align_items(iced::Alignment::Center), Message::Debug(label.into()), diff --git a/src/core.rs b/src/core.rs index 54dcab9b..8716312d 100644 --- a/src/core.rs +++ b/src/core.rs @@ -27,8 +27,8 @@ pub mod icons; cfg_if! { if #[cfg(feature = "icons")] { - pub use icons::{BOOTSTRAP_FONT, BOOTSTRAP_FONT_BYTES, NERD_FONT, NERD_FONT_BYTES, Bootstrap, Nerd}; + pub use icons::{BOOTSTRAP_FONT, BOOTSTRAP_FONT_BYTES, NERD_FONT, NERD_FONT_BYTES, Bootstrap, Nerd, bootstrap, nerd}; } else { - pub use icons::{BOOTSTRAP_FONT, BOOTSTRAP_FONT_BYTES, Bootstrap}; + pub use icons::{BOOTSTRAP_FONT, BOOTSTRAP_FONT_BYTES, Bootstrap, bootstrap}; } } diff --git a/src/core/icons.rs b/src/core/icons.rs index 70134c98..34bd9cd2 100644 --- a/src/core/icons.rs +++ b/src/core/icons.rs @@ -8,7 +8,7 @@ cfg_if! { pub mod bootstrap; pub mod nerd; - pub use bootstrap::Bootstrap; + pub use bootstrap::{Bootstrap}; pub use nerd::Nerd; /// The default icon font bytes for loading the font into iced. pub const BOOTSTRAP_FONT_BYTES: &[u8] = include_bytes!("./fonts/bootstrap-icons.ttf"); @@ -22,7 +22,7 @@ cfg_if! { } else { #[path = "icons/required.rs"] pub mod bootstrap; - pub use bootstrap::Bootstrap; + pub use bootstrap::{Bootstrap}; // pub use required::{Bootstrap, icon_to_char, icon_to_string}; /// The default icon font bytes for loading the font into iced. pub const BOOTSTRAP_FONT_BYTES: &[u8] = include_bytes!("./fonts/required-icons.ttf"); diff --git a/src/lib.rs b/src/lib.rs index d0d57860..75378526 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -63,10 +63,10 @@ mod platform { if #[cfg(feature = "icons")] { pub use crate::core::icons::{ - Bootstrap, BOOTSTRAP_FONT, BOOTSTRAP_FONT_BYTES, Nerd, NERD_FONT, NERD_FONT_BYTES, + Bootstrap, BOOTSTRAP_FONT, BOOTSTRAP_FONT_BYTES, Nerd, NERD_FONT, NERD_FONT_BYTES, bootstrap, nerd }; } else { - pub use crate::core::icons::{Bootstrap, BOOTSTRAP_FONT, BOOTSTRAP_FONT_BYTES}; + pub use crate::core::icons::{Bootstrap, BOOTSTRAP_FONT, BOOTSTRAP_FONT_BYTES, bootstrap}; } } diff --git a/src/widgets/overlay/color_picker.rs b/src/widgets/overlay/color_picker.rs index a4bd9987..61431d6a 100644 --- a/src/widgets/overlay/color_picker.rs +++ b/src/widgets/overlay/color_picker.rs @@ -1303,7 +1303,7 @@ fn hsv_color( Point::new(saturation, 0.0), Point::new(saturation, frame.height()), ), - stroke.clone(), + stroke, ); frame.stroke( diff --git a/src/widgets/overlay/time_picker.rs b/src/widgets/overlay/time_picker.rs index fd9c76af..5bb04f6f 100644 --- a/src/widgets/overlay/time_picker.rs +++ b/src/widgets/overlay/time_picker.rs @@ -1281,7 +1281,7 @@ fn draw_clock( let mut style_state = StyleState::Active; if selected { - frame.stroke(&Path::line(center, *p), hand_stroke.clone()); + frame.stroke(&Path::line(center, *p), hand_stroke); frame.fill( &Path::circle(*p, number_size * 0.8), style @@ -1324,7 +1324,7 @@ fn draw_clock( let mut style_state = StyleState::Active; if selected { - frame.stroke(&Path::line(center, *p), hand_stroke.clone()); + frame.stroke(&Path::line(center, *p), hand_stroke); frame.fill( &Path::circle(*p, number_size * 0.6), style @@ -1370,7 +1370,7 @@ fn draw_clock( let mut style_state = StyleState::Active; if selected { - frame.stroke(&Path::line(center, *p), hand_stroke.clone()); + frame.stroke(&Path::line(center, *p), hand_stroke); frame.fill( &Path::circle(*p, number_size * 0.6), style