From 20a9799b2c40d3992546a73e8ce66b689f040377 Mon Sep 17 00:00:00 2001 From: pjht Date: Tue, 30 May 2023 12:50:16 -0500 Subject: [PATCH] Initial commit --- .gitignore | 1 + Cargo.lock | 2914 ++++++++++++++++++++ Cargo.toml | 16 + egui-datepicker/.gitignore | 3 + egui-datepicker/Cargo.toml | 23 + egui-datepicker/LICENSE-APACHE | 201 ++ egui-datepicker/LICENSE-MIT | 21 + egui-datepicker/README.md | 61 + egui-datepicker/examples/simple.rs | 67 + egui-datepicker/media/datepicker-image.png | Bin 0 -> 10084 bytes egui-datepicker/media/preview.gif | Bin 0 -> 175183 bytes egui-datepicker/src/lib.rs | 289 ++ src/main.rs | 308 +++ 13 files changed, 3904 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 egui-datepicker/.gitignore create mode 100644 egui-datepicker/Cargo.toml create mode 100644 egui-datepicker/LICENSE-APACHE create mode 100644 egui-datepicker/LICENSE-MIT create mode 100644 egui-datepicker/README.md create mode 100644 egui-datepicker/examples/simple.rs create mode 100644 egui-datepicker/media/datepicker-image.png create mode 100644 egui-datepicker/media/preview.gif create mode 100644 egui-datepicker/src/lib.rs create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..dad3237 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,2914 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ab_glyph" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5110f1c78cf582855d895ecd0746b653db010cec6d9f5575293f27934d980a39" +dependencies = [ + "ab_glyph_rasterizer", + "owned_ttf_parser", +] + +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" + +[[package]] +name = "accesskit" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02c98a5d094590335462354da402d754fe2cb78f0e6ce5024611c28ed539c1de" +dependencies = [ + "enumn", + "serde", +] + +[[package]] +name = "accesskit_consumer" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca541e0fdb600916d196a940228df99b86d804fd2e6ef13894d7814f2799db43" +dependencies = [ + "accesskit", +] + +[[package]] +name = "accesskit_macos" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfea17e5bb5dcbfcf5b256ab2f5889a3e6f6582de78b9db9b6689adad3b002f3" +dependencies = [ + "accesskit", + "accesskit_consumer", + "objc2", + "once_cell", +] + +[[package]] +name = "accesskit_unix" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4d1517421278cc8e67422d0786a18cf4291093ebe49eadf1cf989ff80e57f90" +dependencies = [ + "accesskit", + "accesskit_consumer", + "async-channel", + "atspi", + "futures-lite", + "serde", + "zbus", +] + +[[package]] +name = "accesskit_windows" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e11c7f177739f23bd19bb856e4a64fdd96eb8638ec0a6a6dde9a7019a9e91c53" +dependencies = [ + "accesskit", + "accesskit_consumer", + "arrayvec", + "once_cell", + "paste", + "windows 0.44.0", +] + +[[package]] +name = "accesskit_winit" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f741b54fba827e49a73d55fdd43e8d3d5133aa7710a48581013c7802f232b83" +dependencies = [ + "accesskit", + "accesskit_macos", + "accesskit_unix", + "accesskit_windows", + "winit", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "once_cell", + "serde", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-activity" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c77a0045eda8b888c76ea473c2b0515ba6f471d318f8927c5c72240937035a6" +dependencies = [ + "android-properties", + "bitflags", + "cc", + "jni-sys", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "num_enum", +] + +[[package]] +name = "android-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "arboard" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6041616acea41d67c4a984709ddab1587fd0b10efe5cc563fee954d2f011854" +dependencies = [ + "clipboard-win", + "log", + "objc", + "objc-foundation", + "objc_id", + "once_cell", + "parking_lot", + "thiserror", + "winapi", + "x11rb", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + +[[package]] +name = "async-broadcast" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +dependencies = [ + "event-listener", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-executor" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" +dependencies = [ + "async-lock", + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "slab", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite", + "log", + "parking", + "polling", + "rustix", + "slab", + "socket2", + "waker-fn", +] + +[[package]] +name = "async-lock" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-recursion" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "async-task" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" + +[[package]] +name = "async-trait" +version = "0.1.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "atomic_refcell" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79d6dc922a2792b006573f60b2648076355daeae5ce9cb59507e5908c9625d31" + +[[package]] +name = "atspi" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "674e7a3376837b2e7d12d34d58ac47073c491dc3bf6f71a7adaf687d4d817faa" +dependencies = [ + "async-recursion", + "async-trait", + "atspi-macros", + "enumflags2", + "futures-lite", + "serde", + "tracing", + "zbus", + "zbus_names", +] + +[[package]] +name = "atspi-macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb4870a32c0eaa17e35bca0e6b16020635157121fb7d45593d242c295bc768" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-sys" +version = "0.1.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" +dependencies = [ + "objc-sys", +] + +[[package]] +name = "block2" +version = "0.2.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" +dependencies = [ + "block-sys", + "objc2-encode", +] + +[[package]] +name = "bumpalo" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" + +[[package]] +name = "bytemuck" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" + +[[package]] +name = "calloop" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a59225be45a478d772ce015d9743e49e92798ece9e34eda9a6aa2a6a7f40192" +dependencies = [ + "log", + "nix 0.25.1", + "slotmap", + "thiserror", + "vec_map", +] + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +dependencies = [ + "jobserver", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "cgl" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" +dependencies = [ + "libc", +] + +[[package]] +name = "chrono" +version = "0.4.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdbc37d37da9e5bce8173f3a41b71d9bf3c674deebbaceacd0ebdabde76efb03" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "time", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "clipboard-win" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +dependencies = [ + "error-code", + "str-buf", + "winapi", +] + +[[package]] +name = "cocoa" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6" +dependencies = [ + "bitflags", + "block", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", + "objc", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +dependencies = [ + "bitflags", + "core-foundation", + "foreign-types", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "directories-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dlib" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794" +dependencies = [ + "libloading", +] + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "ecolor" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e479a7fa3f23d4e794f8b2f8b3568dd4e47886ad1b12c9c095e141cb591eb63" +dependencies = [ + "bytemuck", + "serde", +] + +[[package]] +name = "eframe" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4596583a2c680c55b6feaa748f74890c4f9cb9c7cb69d6117110444cb65b2f" +dependencies = [ + "bytemuck", + "cocoa", + "directories-next", + "egui", + "egui-winit", + "egui_glow", + "glow", + "glutin", + "glutin-winit", + "image", + "js-sys", + "log", + "objc", + "percent-encoding", + "raw-window-handle", + "ron", + "serde", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winapi", + "winit", +] + +[[package]] +name = "egui" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3aef8ec3ae1b772f340170c65bf27d5b8c28f543a0116c844d2ac08d01123e7" +dependencies = [ + "accesskit", + "ahash", + "epaint", + "log", + "nohash-hasher", + "ron", + "serde", +] + +[[package]] +name = "egui-datepicker" +version = "0.3.0" +dependencies = [ + "chrono", + "eframe", + "num-traits", +] + +[[package]] +name = "egui-winit" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a49155fd4a0a4fb21224407a91de0030847972ef90fc64edb63621caea61cb2" +dependencies = [ + "accesskit_winit", + "arboard", + "egui", + "instant", + "log", + "raw-window-handle", + "serde", + "smithay-clipboard", + "webbrowser", + "winit", +] + +[[package]] +name = "egui_extras" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9278f4337b526f0d57e5375e5a7340a311fa6ee8f9fcc75721ac50af13face02" +dependencies = [ + "chrono", + "egui", + "serde", +] + +[[package]] +name = "egui_glow" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f8c2752cdf1b0ef5fcda59a898cacabad974d4f5880e92a420b2c917022da64" +dependencies = [ + "bytemuck", + "egui", + "glow", + "log", + "memoffset", + "wasm-bindgen", + "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.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3857d743a6e0741cdd60b622a74c7a36ea75f5f8f11b793b41d905d2c9721a4b" +dependencies = [ + "bytemuck", + "serde", +] + +[[package]] +name = "enumflags2" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "enumn" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48016319042fb7c87b78d2993084a831793a897a5cd1a2a67cab9d1eeb4b7d76" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "env_logger" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "epaint" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09333964d4d57f40a85338ba3ca5ed4716070ab184dcfed966b35491c5c64f3b" +dependencies = [ + "ab_glyph", + "ahash", + "atomic_refcell", + "bytemuck", + "ecolor", + "emath", + "log", + "nohash-hasher", + "parking_lot", + "serde", +] + +[[package]] +name = "errno" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "error-code" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" +dependencies = [ + "libc", + "str-buf", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fdeflate" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "film-manager" +version = "0.1.0" +dependencies = [ + "chrono", + "eframe", + "egui-datepicker", + "egui_extras", + "env_logger", + "itertools", + "serde", + "toml", +] + +[[package]] +name = "flate2" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +dependencies = [ + "futures-core", + "futures-sink", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "gethostname" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "getrandom" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gl_generator" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" +dependencies = [ + "khronos_api", + "log", + "xml-rs", +] + +[[package]] +name = "glow" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e007a07a24de5ecae94160f141029e9a347282cfe25d1d58d85d845cf3130f1" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "glutin" +version = "0.30.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f9b771a65f0a1e3ddb6aa16f867d87dc73c922411c255e6c4ab7f6d45c7327" +dependencies = [ + "bitflags", + "cfg_aliases", + "cgl", + "core-foundation", + "dispatch", + "glutin_egl_sys", + "glutin_glx_sys", + "glutin_wgl_sys", + "libloading", + "objc2", + "once_cell", + "raw-window-handle", + "wayland-sys 0.30.1", + "windows-sys 0.45.0", + "x11-dl", +] + +[[package]] +name = "glutin-winit" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "629a873fc04062830bfe8f97c03773bcd7b371e23bcc465d0a61448cd1588fa4" +dependencies = [ + "cfg_aliases", + "glutin", + "raw-window-handle", + "winit", +] + +[[package]] +name = "glutin_egl_sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b3bcbddc51573b977fc6dca5d93867e4f29682cdbaf5d13e48f4fa4346d4d87" +dependencies = [ + "gl_generator", + "windows-sys 0.45.0", +] + +[[package]] +name = "glutin_glx_sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b53cb5fe568964aa066a3ba91eac5ecbac869fb0842cd0dc9e412434f1a1494" +dependencies = [ + "gl_generator", + "x11-dl", +] + +[[package]] +name = "glutin_wgl_sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef89398e90033fc6bc65e9bd42fd29bbbfd483bda5b56dc5562f455550618165" +dependencies = [ + "gl_generator", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hermit-abi" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "iana-time-zone" +version = "0.1.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows 0.48.0", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "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", + "num-rational", + "num-traits", + "png", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "is-terminal" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" +dependencies = [ + "hermit-abi", + "io-lifetimes", + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "khronos_api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.144" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de" + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eebffdb73fe72e917997fad08bdbf31ac50b0fa91cec93e69a0662e4264d454c" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "ndk" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" +dependencies = [ + "bitflags", + "jni-sys", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.4.1+23.1.7779620" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags", + "cfg-if", + "libc", + "memoffset", +] + +[[package]] +name = "nix" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" +dependencies = [ + "autocfg", + "bitflags", + "cfg-if", + "libc", + "memoffset", + "pin-utils", +] + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "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_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc-sys" +version = "0.2.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" + +[[package]] +name = "objc2" +version = "0.3.0-beta.3.patch-leaks.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" +dependencies = [ + "block2", + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2-encode" +version = "2.0.0-pre.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" +dependencies = [ + "objc-sys", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "once_cell" +version = "1.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" + +[[package]] +name = "orbclient" +version = "0.3.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "221d488cd70617f1bd599ed8ceb659df2147d9393717954d82a0f5e8032a6ab1" +dependencies = [ + "redox_syscall 0.3.5", +] + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "owned_ttf_parser" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706de7e2214113d63a8238d1910463cfce781129a6f263d13fdb09ff64355ba4" +dependencies = [ + "ttf-parser", +] + +[[package]] +name = "parking" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "windows-sys 0.45.0", +] + +[[package]] +name = "paste" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "png" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa" +dependencies = [ + "bitflags", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom", + "redox_syscall 0.2.16", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" + +[[package]] +name = "ron" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff" +dependencies = [ + "base64", + "bitflags", + "serde", +] + +[[package]] +name = "rustix" +version = "0.37.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "sctk-adwaita" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda4e97be1fd174ccc2aae81c8b694e803fa99b34e8fd0f057a9d70698e3ed09" +dependencies = [ + "ab_glyph", + "log", + "memmap2", + "smithay-client-toolkit", + "tiny-skia", +] + +[[package]] +name = "serde" +version = "1.0.163" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.163" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "serde_repr" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "serde_spanned" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93107647184f6027e3b7dcb2e11034cf95ffa1e3a682c67951963ac69c1c007d" +dependencies = [ + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slotmap" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "smithay-client-toolkit" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454" +dependencies = [ + "bitflags", + "calloop", + "dlib", + "lazy_static", + "log", + "memmap2", + "nix 0.24.3", + "pkg-config", + "wayland-client", + "wayland-cursor", + "wayland-protocols", +] + +[[package]] +name = "smithay-clipboard" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8" +dependencies = [ + "smithay-client-toolkit", + "wayland-client", +] + +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + +[[package]] +name = "strict-num" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tempfile" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall 0.3.5", + "rustix", + "windows-sys 0.45.0", +] + +[[package]] +name = "termcolor" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "time" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "tiny-skia" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67" +dependencies = [ + "arrayref", + "arrayvec", + "bytemuck", + "cfg-if", + "png", + "tiny-skia-path", +] + +[[package]] +name = "tiny-skia-path" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "toml" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6135d499e69981f9ff0ef2167955a5333c35e36f6937d382974566b3d5b94ec" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "tracing-core" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "ttf-parser" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44dcf002ae3b32cd25400d6df128c5babec3927cd1eb7ce813cfff20eb6c3746" + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "uds_windows" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" +dependencies = [ + "tempfile", + "winapi", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + +[[package]] +name = "walkdir" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.18", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d1985d03709c53167ce907ff394f5316aa22cb4e12761295c5dc57dacb6297e" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93" + +[[package]] +name = "wayland-client" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" +dependencies = [ + "bitflags", + "downcast-rs", + "libc", + "nix 0.24.3", + "scoped-tls", + "wayland-commons", + "wayland-scanner", + "wayland-sys 0.29.5", +] + +[[package]] +name = "wayland-commons" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" +dependencies = [ + "nix 0.24.3", + "once_cell", + "smallvec", + "wayland-sys 0.29.5", +] + +[[package]] +name = "wayland-cursor" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" +dependencies = [ + "nix 0.24.3", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-protocols" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" +dependencies = [ + "bitflags", + "wayland-client", + "wayland-commons", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" +dependencies = [ + "proc-macro2", + "quote", + "xml-rs", +] + +[[package]] +name = "wayland-sys" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" +dependencies = [ + "dlib", + "lazy_static", + "pkg-config", +] + +[[package]] +name = "wayland-sys" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06" +dependencies = [ + "dlib", + "lazy_static", + "log", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webbrowser" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd222aa310eb7532e3fd427a5d7db7e44bc0b0cf1c1e21139c345325511a85b6" +dependencies = [ + "core-foundation", + "home", + "jni", + "log", + "ndk-context", + "objc", + "raw-window-handle", + "url", + "web-sys", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-wsapoll" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-targets 0.42.2", +] + +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-implement" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce87ca8e3417b02dc2a8a22769306658670ec92d78f1bd420d6310a67c245c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "windows-interface" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "853f69a591ecd4f810d29f17e902d40e349fb05b0b11fff63b08b826bfe39c7f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + +[[package]] +name = "winit" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "866db3f712fffba75d31bf0cdecf357c8aeafd158c5b7ab51dba2a2b2d47f196" +dependencies = [ + "android-activity", + "bitflags", + "cfg_aliases", + "core-foundation", + "core-graphics", + "dispatch", + "instant", + "libc", + "log", + "mio", + "ndk", + "objc2", + "once_cell", + "orbclient", + "percent-encoding", + "raw-window-handle", + "redox_syscall 0.3.5", + "sctk-adwaita", + "smithay-client-toolkit", + "wasm-bindgen", + "wayland-client", + "wayland-commons", + "wayland-protocols", + "wayland-scanner", + "web-sys", + "windows-sys 0.45.0", + "x11-dl", +] + +[[package]] +name = "winnow" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" +dependencies = [ + "memchr", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "x11rb" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507" +dependencies = [ + "gethostname", + "nix 0.24.3", + "winapi", + "winapi-wsapoll", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67" +dependencies = [ + "nix 0.24.3", +] + +[[package]] +name = "xcursor" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7" +dependencies = [ + "nom", +] + +[[package]] +name = "xml-rs" +version = "0.8.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d8f380ae16a37b30e6a2cf67040608071384b1450c189e61bea3ff57cde922d" + +[[package]] +name = "zbus" +version = "3.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f770930448dd412a4a7131dd968a8e6df0064db4d7916fbbd2d6c3f26b566938" +dependencies = [ + "async-broadcast", + "async-executor", + "async-io", + "async-lock", + "async-recursion", + "async-task", + "async-trait", + "byteorder", + "derivative", + "dirs", + "enumflags2", + "event-listener", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix 0.25.1", + "once_cell", + "ordered-stream", + "rand", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tracing", + "uds_windows", + "winapi", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "3.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4832059b438689017db7340580ebabba07f114eab91bf990c6e55052408b40d8" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", +] + +[[package]] +name = "zbus_names" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82441e6033be0a741157a72951a3e4957d519698f3a824439cc131c5ba77ac2a" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zvariant" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622cc473f10cef1b0d73b7b34a266be30ebdcfaea40ec297dd8cbda088f9f93c" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d9c1b57352c25b778257c661f3c4744b7cefb7fc09dd46909a153cce7773da2" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..b1c1233 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "film-manager" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +chrono = { version = "0.4.25", features = ["serde"] } +eframe = { version = "0.22.0", features = ["ron", "persistence"] } +egui-datepicker = { version = "0.3.0", path = "egui-datepicker" } +egui_extras = { version = "0.22.0", features = ["datepicker"] } +env_logger = "0.10.0" +itertools = "0.10.5" +serde = { version = "1.0.163", features = ["derive"] } +toml = "0.7.4" diff --git a/egui-datepicker/.gitignore b/egui-datepicker/.gitignore new file mode 100644 index 0000000..9988e53 --- /dev/null +++ b/egui-datepicker/.gitignore @@ -0,0 +1,3 @@ +/target +Cargo.lock +.pre-commit-config.yaml diff --git a/egui-datepicker/Cargo.toml b/egui-datepicker/Cargo.toml new file mode 100644 index 0000000..5f8db17 --- /dev/null +++ b/egui-datepicker/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "egui-datepicker" +version = "0.3.0" +edition = "2018" +license = "MIT OR Apache-2.0" +description = "Adds date picker widget for egui gui library" +keywords = ["gui"] +categories = ["gui"] +repository = "https://github.com/Shadr/egui-datepicker" +include = [ + "**/*.rs", + "Cargo.toml", +] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +eframe = "0.22" +chrono = "0.4" +num-traits = "0.2" + +[[example]] +name = "simple" diff --git a/egui-datepicker/LICENSE-APACHE b/egui-datepicker/LICENSE-APACHE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/egui-datepicker/LICENSE-APACHE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/egui-datepicker/LICENSE-MIT b/egui-datepicker/LICENSE-MIT new file mode 100644 index 0000000..ada2d3f --- /dev/null +++ b/egui-datepicker/LICENSE-MIT @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Shadr + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/egui-datepicker/README.md b/egui-datepicker/README.md new file mode 100644 index 0000000..1125805 --- /dev/null +++ b/egui-datepicker/README.md @@ -0,0 +1,61 @@ +# egui-datepicker +[![Latest version](https://img.shields.io/crates/v/egui-datepicker)](https://crates.io/crates/egui-datepicker) + +This library provide a simple date picker widget for egui with some customization. Checkout the [gif](media/preview.gif) to see widget in action! + +

+ +

+ +## ⚡️ Quickstart + +Add `egui-datepicker` as dependency to your project +```toml +[dependencies] +egui-datepicker = "0.3" +``` + +Import necessary structs +```rust +use egui_datepicker::{DatePicker, Date, Utc}; +``` + +or if you already include `chrono` in your project +```rust +use egui_datepicker::DatePicker; +use chrono::{Date, offset::Utc}; +``` + +Add date field with selected time offset in app struct +```rust +struct MyApp { + date: Date, +} +``` + +Add widget in update function +```rust +fn update(/*snip*/) { + /*snip*/ + ui.add(DatePicker::new("datepicker-unique-id", &mut self.date)); + /*snip*/ +} +``` + +## 👀 Customization +You can set first day of week to sunday with +```rust +DatePicker::new(/*snip*/).sunday_first(true) +``` +Make popup window movable +```rust +DatePicker::new(/*snip*/).movable(true) +``` +Set different date format +```rust +DatePicker::new(/*snip*/).date_format("%d/%m/%Y") +``` + +## ⚠️ License + +`egui-datepicker` is licensed under MIT OR Apache-2.0 diff --git a/egui-datepicker/examples/simple.rs b/egui-datepicker/examples/simple.rs new file mode 100644 index 0000000..432d74c --- /dev/null +++ b/egui-datepicker/examples/simple.rs @@ -0,0 +1,67 @@ +use chrono::Datelike; +use eframe::{ + egui::{self, Color32}, + epi, +}; +use egui_datepicker::*; + +struct ExampleApp { + date: Date, +} + +impl Default for ExampleApp { + fn default() -> Self { + Self { + date: Utc::now().date(), + } + } +} + +impl epi::App for ExampleApp { + fn name(&self) -> &str { + "Datepicker example" + } + + fn update(&mut self, ctx: &egui::CtxRef, _frame: &epi::Frame) { + // ctx.set_debug_on_hover(true); + egui::CentralPanel::default().show(ctx, |ui| { + egui::Grid::new("exaamples_grid").show(ui, |ui| { + ui.label("Default"); + ui.add(DatePicker::new("default", &mut self.date)); + ui.end_row(); + ui.label("Sunday first"); + ui.add(DatePicker::new("sundayfirst", &mut self.date).sunday_first(true)); + ui.end_row(); + ui.label("Movable popup"); + ui.add(DatePicker::new("movable", &mut self.date).movable(true)); + ui.end_row(); + ui.label("Different format"); + ui.add(DatePicker::new("differentformat", &mut self.date).date_format(&"%d/%m/%Y")); + ui.end_row(); + ui.label("Disable weekend highlight"); + ui.add( + DatePicker::new("noweekendhighlight", &mut self.date).highlight_weekend(false), + ); + ui.end_row(); + ui.label("Different weekend color"); + ui.add( + DatePicker::new("differentweekendcolor", &mut self.date) + .highlight_weekend_color(Color32::from_rgb(0, 196, 0)), + ); + ui.end_row(); + ui.label("Different weekend days, i.e. holidays, Christmas, etc"); + ui.add( + DatePicker::new("differentweekenddays", &mut self.date) + .weekend_days(|date| date.day() % 2 == 0), + ); + ui.end_row(); + }); + }); + } +} + +fn main() { + let app = ExampleApp::default(); + let native_options = eframe::NativeOptions::default(); + eframe::run_native(Box::new(app), native_options); +} diff --git a/egui-datepicker/media/datepicker-image.png b/egui-datepicker/media/datepicker-image.png new file mode 100644 index 0000000000000000000000000000000000000000..6857b28aadacc3681ed59d69df0ed64a8ea4bc89 GIT binary patch literal 10084 zcmaKS2RxPk`}a*YUqoMfg{*WEDtqruva*sDk{!niAv+{1bVx{6l1(x)vy<#>vK=Gj zxqN@W=l}oxpXYf!_p70EPUrsI_vgCa>$)R!w3PoMVIV;e0&@#n>G|D4w4E#-VA?4MPw%L{&jn-}~iShNF(Y@}GU*uj3oD0s`F#J3A+? z+EYp$1(`Zaoow60n6?S)N97$+6LsxTML+y2YHuG|Rq|C7{4gop%j)EdP{>gg-oiD{ z=1EbY8p?kx@boE3`-7Aq`Y=&uF z25rkRG{H?0ck%X_7mV!@M1_+oS1-Z@pI~S1Jk!}rkGs1lLYrJPH{01MiP-v^uJ2&o z?+UzQqa>1}R-Dee!kzzj(u)_iHZ~Co+5P?fLUv!fySovDld5B}Xn^mM(f*!-53md;MKR1KvBYj^jZ>1j)+;ov6AU`8o28iggr z>zf=_WkwhsCQ-M!**Iw$BE0$ed4c*jZ`zhUz6}qLI(>XF_EE9DK%cL$u#l95#6!&N zF>xCiW-)F)e`RGQHa3<*`na^HsHmn!Y>D#ETlx^6?VzGCBDD5H6;9PmN#AeF9$MPk zk32n>J;ad5`h1#dYGRMpU-mAF2mYzk%DYuK94(52^h)e>x3nnu`ubMw(WeD%9qY#7 zBJI}i_x8LH8Ex%2BYyG~-fL}KWCYZB^~0311v9bN(t9{KID%w8*$ZoFY95{hq&QcO z#VB#y`zpiMH!!fhRypPl_I`~fTLkzVZqJj1{w(j6BK^%KB4a6_i`lO_7bNrCSQYuS zJ>L}-8L5>iL2O4jW5Jg$!{$$m7k5))GDvtygnPlOz-6qXPW5XcD$WCjkt z(TtA^wsUrNUSD5F@$!zA-ffQOP+l;(P1lVZGP#Z*+3mE$tx>eJG&C&I0WZSh@ zQOURHFOamhwBX&-B7sG>z8=ie4u2un`^o!HadC0GGJT8^Mu%vT*~G-eYwd^4jr8Tp zD=t$wArTrnUu4-RDTf%9BBP@2n3!;Japgach#*exN{Wv^PlQKv)%@4aA&VrsCB@zA ziFlwj7dJO?@GAla_W1T?j{%`q1rNyQne%jXno+^gH?)9iH!+IEzsI+r~r8~l%Qlg-moQu-V!9<7fDNv64Ek%lz& z5wD3L2%d`sMSzp^{rmUJUPiG!ef|11tmwD!#i;J}W5LvJOM&Q^m{2Jh>~zyP1AHri z9cn%eBD~;JMZ%SVw6wHH4ccT0zXQq&JXqgj5=v=$Byo!RmsHgE9~|G zz^Ll+({K!Z!DophJo_l|<4DrY(5GslSK+2Au%~L{;C?mb>`BlKjF zSt?IZ%IROlhTWk#ocmlQ^LI!Sf(SFjn3rrUFB3a(Nk@5$BXluK@)kb!0uW*QAgTrDex42z|c5+Ph<#b5(vpTM-XzCK$(z?pjo4I)rsfY zx=R^S8Dp7idmup^1&HzY?EyIs^wh<+hxRzmj7@4in?6)DsmZJ){Owt;c-hL~-y1QZ zA0OadzTUi}YGiF5!1H9j?V|T2j!>3yrSrtk)+pUVZ@mbq4a(lSov-2>_4_Oif75*} zC@LCusMvkp)YP=I*sCnrXDt{L8|(JQF|+xRhxcN}BLvY+7k1uzxA{f-&-sRfqp4G= zD1{W3=fO|ZlTl3-(zRY|VjfGB2qOLQ%Q^Q*a)y|;*{v$mV!EAM4+8#N4*)Dl?D*v+ z9<}HHmuBfbh z6l<5Rhz+AUx}J57n~d6>g7Vil4N7sZUz9|6Yinz8#*&8L4rXQUj=qRP25zC@ABVMvqh zE04li1FHOw_L!pb!lPf2E83S@cGIWPp}6xTlY@eS;2j$~JKDehPD)Dh^z`&UJ=vGa z+9=cdjK<2zDHG1Lk?wkYB)9-Kk0T-?LRD4ubU*Nv5Ggg{7t1Jq{d(?ehB(xpzt)sj97eLCDE1|qfIp@QOH7Mg~nGN0s1hC10)l`0+g|w3S93%S_kX zJMpRwD1x8nJ6WCi!#j7z?lFH=#I{MfepRa~ksx`~i(@lSExg=rkaWE6ks-&!(<-1;ebJBZu zeWDgvL@O_m!^Rz_<8_!R>MAcUtn-6OQC7h3WqvGg#Jy-PI)SJ~X28{0X7RnP zFRX;PL1wjHHnz5H-fY)@5#Ig17fpLC`ngq}(?aWr?yS_^p9~L)d9zsme<~kP!-n z!wf^$LF&k1fM>>6v3k5z5!Oyl(VVI&dIkn>^a>al8Sgz8j=LL8uDw^DKu3l=-n!rZ z>I-|Y-nXJVc{)7ZwnBa%Nt%gb$x}j~4la9$FfI0GeW|5aU_*PbsS38;cGM4l5cCO< z%#Vu3CtG@GxX_T}d6zCmo2h@pSR~`C(F*CLhL!vP^*I2w#eacXDO+IM`KMBsBbqE1 zB%{j{z5|v0PxvJJpE9k56eP}bdK_A(v5zseiM{88KQ%UcbH1^=q^_>+FU4wFC8vA) zHg>5$CpMPc`AMkF*vAJB6=|7*5)w>NIK0ZwU%UWC6TZVdR(9{p*6f#i*Teyr-i@o1 z8%lE}-e2d=V!qmN!0vw=8$rztMUh|05VJtrc+h&Z(bzk7FRE8^-_*`tY#E=A<)H*Xf^=41jkEGE1)pF+qL8z#yF;psjvr37HiQHN* zr>_X}8^5=n?@WS!(6O*+si_UDVxvc2T($VB?eSEXg32nA9Cp>i!=oqd`r_A&5Z+6d zE`@}I2&P7N-ZC*sd;WaRMWo?yf$;!aVqC6NG7{BlwL~N)B-9*fg{;ABHy-?WtjGcq1h6<5!b#=9}%2r@s zUR$eooo$1T+n8$XRjkI)#VDos5MZPKIbU zBv_YXcK@?(NTiI$tYn0O8(?vCG+DJNIijMenbb88_cJHEd2ekjF(JWus$p&C&^+MK z#vaw+Hs47|!7|?9e}_H(*LZbeZ7<@pQjnKF0^7KG{)AcF%f8|VDA!!QYX2iIROj02 z>MfoNo1Osye?EPZadQ*&a};Laow}%WN&L~ehML;S`g+(O8`Jijd*!1wwYC3T=a!7D ztZZOlps%mEsd;KfMvrzi@)*D-q)ErfNJaa@*c#m3nnxRxHJ+=}l-(Qq6n~u^{XNUx zgUtu^o8zx!qWuZuRfHuZBm@LX(byGITGWNV|Mv9qsxd|J{IC|h#L0QQ-*}3TczAj~ zm};m8O_iJ5y0Jf1<$8__b~qijJltOSi?!hWiXXs1I0!#YSNg*SRZ6_o_2#}?oRX6D zjg8Whk|#eZ906#%URJj&UuL0gMf?r~M)3b4BRlKS;kUQ@ejLEPZ9Ja8Iyf+pj~^JVMn-UstmHUkZuRL+ z0zyLR)8n0~qe5Sxi( zObblwvHiz}X=^K6)y?l528%5MQHo{6hKu`TWMo9qTv1b34^jFh1dHV0u(7cj(r3y^ zsC~5Yc6jBI`U{sUS8*{(H#RU+cR(cuG+LmN#WS=zEn|bFmcQn)P~MzU-)#s{%E7$( z4GjqdM`2NGilP&-wY5E~sg)H6`#+;2Bg!#959U^e3)62ra1&v|4U*xfIr3{rO-=pw z?b~8jAdB;>8)9N=6Yh6u?S<#C=mPq8u*LA+XIH6i%D2G%3qX6TBPCg>sauDBu;`yt zc|0EmylFm3x3;!IDW<2Tfn)@?0ivR|))$ZrE@2N{&k#c}iCJ1*9jo`P?3!m_WtH~b zPRiM9JeVf+r@q}&pUCHu3dBS~Wf$`5f+N=m$yvlR6OW%aV zB|YG~Tu4tD{ghA_RwL?l{uMtseHE|U9Z>i2@#*7R_!M-GnwlEm=xXD!pk!}T2%*oN zCi=I8$g_-$dcY(o(uBE!TY1itbscdjF6iy;ZSeVAi5>3@R+U-(TNbUJS)8mG_Tl^5 z+vgV-JEPGI$SZ@wz>`%AMlyoJVG~2ca4%Q2`}YeVZ17rRko)Udh2x0az3-4tw6!T^ z`bW!+R=IMRwulM}4)pbX>i^00?KinYg-PKskko$t{v-zxE!BjG_ z&@Ci~1^EQ;mzdS=jWqtL$jzNkGBlr2))0}jD)R<7rbU?^>|~uvNJ+8G{s{QEw6PJm zKk?{vD=v^HsWaIeP0aOYud)&Hm%yX3DR8foemj~{*go9?eNZ|8QCriW`Qlad`G#kj z!&g^ViGz(A10)?3EnQqT;f}Ee9AHdQCHeW&`4_%rHxCUB5wiLTfQ7hm!)s@u=gAX1 z7`?9lWv+heuQ8Zc?*S~%H!S~X;Qw{#Rqwik7=7j$+ z_Ejz(TetVa5!~TM!_j&S<4tpa?Cm-9r2qZ|u>8As{0W@(=2v@Z__0`Q;6XF%kFl{S z@7cd(c8-EUH;LSiz(MBb=Zm1YzL(u=&*QuZg$K*8FybGt9x111hD&_=_N~;xbjYh( zs?~2rs~a13Wv`4^JG#0ORXFXwzH}8~A|z*`jA{j|L4-vR(01gkQpZ`R$6sc*AYXWP z^O^_T1=1pe%NIxp2?>`&j4DieLWBmWWkK@azrSpk%KNiaR7n<*nuGuMep)Fv|4&+TAjeD zn$$itwON1jvWVN{;vo51%I|TU5CO{ix*$P*GLAs7i&dEhA6gA%{Q# z3K@`;0KvlzI^z`q$%_|*e(XhQ%VEhVC@jDkXb1it{QliY4y>gzVbSI~p)iPj8leDgq-*kAa1c&|hEECj*%Fa;^2-i3QY>S=>uTeiruNIkXU}vD z&JF?uQZs0FWgev>gN+{*UCx!Hp>h=_{#!p4V@XV&HYA|y1C|GJLC(a4s|V@uD9nqz zGbjY#cR#%OZkf>%LyOfGwAaI_hMq`LR7D3*?~|yb9r-u~cCfpy)uzqO&E=~ic*}Qp zlT4pF3KtnTO0?h;$t4~@VQe&>N(oQQZfzbC@!HZnHq%AqK`)6o8^P=wobw5oc zw#A$WT!OQ!Scb$+#NkNqogEE&iND2%kSy!F(?=txr{3pQBbdh@{Wpq7NWFi0(@^6b z;c64QYEYgVl9)-;Yh^6(!i*M0#!~-3|IBO;wUUe{ZADvMz0fOumJnCf=kQVzIXF6Q zj8_l#_cz^_)rBbY_U+r76~hjao+}qjB%eXN3-uf%BXcEKPR`28%G2|@WG)7Sv*wl# zaqio$z&+<>jTR*#lN4PKQjE60Fe?B$jAj-^-UTJ32bXF^PU|Bui4e zZEl{Kl%!~3U~%WpDj0_2?JkH!Holk5_F?4tU$oD(TYhmS(@C+?`&_np*(xe300=?) zLGJ=h>YHJ*8yXs_szf9uL529#n?tH@K+&@1Mcs0`@dx_W%kGjWy)j)(n+#j2BVZ2% zDc06=3ky<5zsgN72$O=skB_?tM%wK0gtPL%t-si%rCAS)aGs7jy-?x2={&yaEdg{0 zI0~d=e<_}GbYQ@3Wr(+AL|j<-i2+$Fz|S*vfm(4!w}D4hK091Cs1G(>FQAn{%ev|I z@e8E)K$`kMnEghSYegj~`s_tSr3l=BCF<6`{ahGNMlTM4wMl%9XUE zr{@X}&%s=xwhrkbE7ZTOEtk0Xm{l35NdjCPuOe02782(&qvIcrC9s*nY(oy$-}*mV zf|_y#K?%YN)MRDlO_q;_1Ir$+g3Hq`B0w<~fhV4Y!*2(d`DsYq@)~K)y=99GYE6qn z2r1YbC)D#`*)=sarKLLHhOV#~bJnc>I(AvU5TVdFb_7|=yDE>bx)g{E8zuBG#CM}> zJVK3Tw{Z~Y2zz1h$)KL+&*7lutUWp})6}PRhTPzcRA}x=Ubw1T!PNpRc)D zvmo%9>y6N5V~te$w6X8LEB|?w|7qVtxlMY?R;M+jIdi9qxX-_bw7r zY0x2!Q(!W`0_1&59+fO+A)>0aRFWiG3vM2!;H#b1ku)8{2SVpD)TpT-zQ->8ghn%g z^LDzKnHfGlzCAE^ev~_SYw&e$l1PS`Kn_bMD#h;F%&v}C)7C4(ANb89!^6Yx;7dd| zC|4rsQSq$ov>7j6w3Qdi;YkvNT)cdl6g`F+4(UUs=u*i2`{W$Q0V3~7&3P_Yg|veN z)6`US!zapp|6Y)r+s@6+&D)!9PA0afW`#?cm@; zp(X(#{+t}0=WFt6iZ{0RY9d96SzB8}=maTfUVBe_u>FGvS9p14#~65PEs@7cIRKBS zT>XeWS=R6WCt*lwr0R97PUU7c|?`N|^_^a>~1qt9L#URd1O zdPTra6P2rXzba{EYhfS)3Uf!5B7>)2mM`h|$)AD(-WN|=BTb54sO3gW5^;N^x!c!tmR5$*?`6H#QdQkT*FTSski)2G zYtu$3K-3N#bxffrXQpwPkIz~#wa3=c-hO)UXHfs90eigDM9uAzkuj%_iQL-kBj;p) zQg!DOV$=oh^%I!|bLitMqne!dm_ffl6?fZ~o1*fllCRvk0iFURrg9t$gwXGeO!a{g z0EKmRQKM4O~neH!z?k8b98Ks6shvw%I>$H>mj9Om=ycB5kY<5gUj!*7IR;ShWRZ_ zam`Cc?1e!JzfqIV=YFZ84@T!doJyfS-y9l&nUIrGI0R;(kOg@9*SzElZ9@YarT$K>QBEFHoiw~mBMkg1x|(xwIl;gpQrfeB4=vZ1anWIKmh zgh64I$tW{iBwwGertz|Bf}eS;9Jb|LG@3G!>`Kl1_uGror=kcFq3-gGMawK$G>#mw z%-`Q1CO$biIluz5HC6dTBO_qVc6UAEzRY6LKI>oq+f}%zb*y;}J{%_rmCKBA3E5=} z2Y85&R=j!r`r1V8h*cTHh15kXO39WqQL|p`GP!!^@o;=)Pfkw2Qb5Lh+I5{dffGir z2m&#Nyu7?04YPx{_>CJ%8~pjhD=>?Fg6{ha_0`_4xU)gU^fufv+0r@ZT-^;SyqWzY zd|Vt^O4s+gaxgNMm2KkA^80Lu!Gu-*pJW%*)Fk`={GyOAv-Hf&ppSC9<`X)sORu?@ zSm~R4&)`>>thrT_vq-eBzX{R3D_r-$!QpLjF^Zpm$f3f|Ih$UKLXHm0c7fhR*d*EV zPa%6`<2gUKnX>Wg^5-KIU_7(z(e`KQsT>9#^Dr&$3+(C7b^m52yKX8^94wHk0T&w3 zD9y6l9gClB*HDAU;hup-*QMuiCR3HE|FnA%u zX7A*rkk5VXT3Jm^T4o*w6IAK1LBD$T!rQlMT#50VKFb4_q*%Ae_m5=fsk-e2qWUh0 z1kYRn9C?Rj{#2m-yZpx~cC1;9y`F2q5X`&SQlCnML6_=>U zQpjx2*Wd}Q;4szVxeIQ{JZjZ1&<8Tf8*~NTwtL~ig%1@KpcWw?_wG9f!_t3=?CQ*p zj*ictn#*OvSayxhg zK`nP1Y==D-s)>SCN|=u9xE9aQzyJm<8d_R%A;xp4CRub<*nES0zPg>A-6E*8)s>ZE zNSbZBXuP6)O(o?peTzHHA}-S~BRbk!Q`gecQdgJHC(MRu$-(o{qnlZ3pO;~de%2)= zB_PJ<+$S%-WcdJJOiy{`N@ELpwEv><5@e-(rk zWEJ`9;HZ?YwVoc`~x^$FK8)cBtgIqMN6Jt!)ad0iEV z^tw8U3X_Skv985EwHZ@+Pch~M)o>k2^6;Gc`V$!BSDF+7n^=`?-Y4iWlFl~`Zl>?f zb|Y4@@@AZvx*J=Z!X8f)Rs*!y8lj#i!v;zp_%Ck$4dY@l=7ReOM{-w;((LA@K+fvb zUNmJ5Ubs+-;yjgvWAm8N?km?b)Br3sP2M)b!^Qcv&482K&@m-mFYG5r`Gn?qC;wG@iwEQ9|S;vIjH literal 0 HcmV?d00001 diff --git a/egui-datepicker/media/preview.gif b/egui-datepicker/media/preview.gif new file mode 100644 index 0000000000000000000000000000000000000000..6af25105016ac911f754cd099cf2de0d7bebc96e GIT binary patch literal 175183 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 literal 0 HcmV?d00001 diff --git a/egui-datepicker/src/lib.rs b/egui-datepicker/src/lib.rs new file mode 100644 index 0000000..3cd02bb --- /dev/null +++ b/egui-datepicker/src/lib.rs @@ -0,0 +1,289 @@ +//! egui-datepicker adds a simple date picker widget. +//! Checkout the [example][ex] +//! +//! +//! ```no_run +//! use eframe::egui::Ui; +//! use chrono::prelude::*; +//! use std::fmt::Display; +//! use egui_datepicker::DatePicker; +//! +//! struct App +//! where +//! Tz: TimeZone, +//! Tz::Offset: Display, +//! { +//! date: chrono::NaiveDate +//! } +//! impl App +//! where +//! Tz: TimeZone, +//! Tz::Offset: Display, +//! { +//! fn draw_datepicker(&mut self, ui: &mut Ui) { +//! ui.add(DatePicker::new("super_unique_id", &mut self.date)); +//! } +//! } +//! ``` +//! +//! [ex]: ./examples/simple.rs + +use std::hash::Hash; + +pub use chrono::{NaiveDate, Local}; +use chrono::{prelude::*, Duration}; +use eframe::{ + egui, + egui::{Area, Color32, DragValue, Frame, Id, Key, Order, Response, RichText, Ui, Widget}, +}; +use num_traits::FromPrimitive; + +/// Default values of fields are: +/// - sunday_first: `false` +/// - movable: `false` +/// - format_string: `"%Y-%m-%d"` +/// - weekend_func: `date.weekday() == Weekday::Sat || date.weekday() == Weekday::Sun` +pub struct DatePicker<'a> +{ + id: Id, + date: &'a mut NaiveDate, + sunday_first: bool, + movable: bool, + format_string: String, + weekend_color: Color32, + weekend_func: fn(&NaiveDate) -> bool, + highlight_weekend: bool, +} + +impl<'a> DatePicker<'a> +{ + /// Create new date picker with unique id and mutable reference to date. + pub fn new(id: T, date: &'a mut NaiveDate) -> Self { + Self { + id: Id::new(id), + date, + sunday_first: false, + movable: false, + format_string: String::from("%Y-%m-%d"), + weekend_color: Color32::from_rgb(196, 0, 0), + weekend_func: |date| date.weekday() == Weekday::Sat || date.weekday() == Weekday::Sun, + highlight_weekend: true, + } + } + + /// If flag is set to true then first day in calendar will be sunday otherwise monday. + /// Default is false + #[must_use] + pub fn sunday_first(mut self, flag: bool) -> Self { + self.sunday_first = flag; + self + } + + /// If flag is set to true then date picker popup will be movable. + /// Default is false + #[must_use] + pub fn movable(mut self, flag: bool) -> Self { + self.movable = flag; + self + } + + ///Set date format. + ///See the [chrono::format::strftime](https://docs.rs/chrono/0.4.19/chrono/format/strftime/index.html) for the specification. + #[must_use] + pub fn date_format(mut self, new_format: &impl ToString) -> Self { + self.format_string = new_format.to_string(); + self + } + + ///If highlight is true then weekends text color will be `weekend_color` instead default text + ///color. + #[must_use] + pub fn highlight_weekend(mut self, highlight: bool) -> Self { + self.highlight_weekend = highlight; + self + } + + ///Set weekends highlighting color. + #[must_use] + pub fn highlight_weekend_color(mut self, color: Color32) -> Self { + self.weekend_color = color; + self + } + + /// Set function, which will decide if date is a weekend day or not. + pub fn weekend_days(mut self, is_weekend: fn(&NaiveDate) -> bool) -> Self { + self.weekend_func = is_weekend; + self + } + + /// Draw names of week days as 7 columns of grid without calling `Ui::end_row` + fn show_grid_header(&mut self, ui: &mut Ui) { + let day_indexes = if self.sunday_first { + [6, 0, 1, 2, 3, 4, 5] + } else { + [0, 1, 2, 3, 4, 5, 6] + }; + for i in day_indexes { + let b = Weekday::from_u8(i).unwrap(); + ui.label(b.to_string()); + } + } + + /// Get number of days between first day of the month and Monday ( or Sunday if field + /// `sunday_first` is set to `true` ) + fn get_start_offset_of_calendar(&self, first_day: &NaiveDate) -> u32 { + if self.sunday_first { + first_day.weekday().num_days_from_sunday() + } else { + first_day.weekday().num_days_from_monday() + } + } + + /// Get number of days between first day of the next month and Monday ( or Sunday if field + /// `sunday_first` is set to `true` ) + fn get_end_offset_of_calendar(&self, first_day: &NaiveDate) -> u32 { + if self.sunday_first { + (7 - (first_day).weekday().num_days_from_sunday()) % 7 + } else { + (7 - (first_day).weekday().num_days_from_monday()) % 7 + } + } + + fn show_calendar_grid(&mut self, ui: &mut Ui) { + egui::Grid::new("calendar").show(ui, |ui| { + self.show_grid_header(ui); + let first_day_of_current_month = self.date.with_day(1).unwrap(); + let start_offset = self.get_start_offset_of_calendar(&first_day_of_current_month); + let days_in_month = get_days_from_month(self.date.year(), self.date.month()); + let first_day_of_next_month = + first_day_of_current_month.clone() + Duration::days(days_in_month); + let end_offset = self.get_end_offset_of_calendar(&first_day_of_next_month); + let start_date = first_day_of_current_month - Duration::days(start_offset.into()); + for i in 0..(start_offset as i64 + days_in_month + end_offset as i64) { + if i % 7 == 0 { + ui.end_row(); + } + let d = start_date.clone() + Duration::days(i); + self.show_day_button(d, ui); + } + }); + } + + fn show_day_button(&mut self, date: NaiveDate, ui: &mut Ui) { + ui.add_enabled_ui(self.date != &date, |ui| { + ui.centered_and_justified(|ui| { + if self.date.month() != date.month() { + ui.style_mut().visuals.button_frame = false; + } + if self.highlight_weekend && (self.weekend_func)(&date) { + ui.style_mut().visuals.override_text_color = Some(self.weekend_color); + } + if ui.button(date.day().to_string()).clicked() { + *self.date = date; + } + }); + }); + } + + /// Draw current month and buttons for next and previous month. + fn show_header(&mut self, ui: &mut Ui) { + ui.horizontal(|ui| { + self.show_month_control(ui); + self.show_year_control(ui); + if ui.button("Today").clicked() { + *self.date = Local::now().date_naive(); + } + }); + } + + /// Draw button with text and add duration to current date when that button is clicked. + fn date_step_button(&mut self, ui: &mut Ui, text: impl ToString, duration: Duration) { + if ui.button(text.to_string()).clicked() { + *self.date = self.date.clone() + duration; + } + } + + /// Draw drag value widget with current year and two buttons which substract and add 365 days + /// to current date. + fn show_year_control(&mut self, ui: &mut Ui) { + self.date_step_button(ui, "<", Duration::days(-365)); + let mut drag_year = self.date.year(); + ui.add(DragValue::new(&mut drag_year)); + if drag_year != self.date.year() { + *self.date = self.date.with_year(drag_year).unwrap(); + } + self.date_step_button(ui, ">", Duration::days(365)); + } + + /// Draw label(will be combobox in future) with current month and two buttons which substract and add 30 days + /// to current date. + fn show_month_control(&mut self, ui: &mut Ui) { + self.date_step_button(ui, "<", Duration::days(-30)); + let month_string = chrono::Month::from_u32(self.date.month()).unwrap().name(); + // TODO: When https://github.com/emilk/egui/pull/543 is merged try to change label to combo box. + ui.add(egui::Label::new( + RichText::new(format!("{: <9}", month_string)).text_style(egui::TextStyle::Monospace), + )); + // let mut selected = self.date.month0() as usize; + // egui::ComboBox::from_id_source(self.id.with("month_combo_box")) + // .selected_text(selected) + // .show_index(ui, &mut selected, 12, |i| { + // chrono::Month::from_usize(i + 1).unwrap().name().to_string() + // }); + // if selected != self.date.month0() as usize { + // *self.date = self.date.with_month0(selected as u32).unwrap(); + // } + self.date_step_button(ui, ">", Duration::days(30)); + } +} + +impl<'a> Widget for DatePicker<'a> { + fn ui(mut self, ui: &mut Ui) -> Response { + let formated_date = self.date.format(&self.format_string); + let button_response = ui.button(formated_date.to_string()); + if button_response.clicked() { + ui.memory_mut(|mem| mem.toggle_popup(self.id)); + } + + if ui.memory(|mem| mem.is_popup_open(self.id)) { + let mut area = Area::new(self.id) + .order(Order::Foreground) + .default_pos(button_response.rect.left_bottom()); + if !self.movable { + area = area.movable(false); + } + let area_response = area + .show(ui.ctx(), |ui| { + Frame::popup(ui.style()).show(ui, |ui| { + self.show_header(ui); + self.show_calendar_grid(ui); + }); + }) + .response; + + if !button_response.clicked() + && (ui.input(|inp| inp.key_pressed(Key::Escape)) || area_response.clicked_elsewhere()) + { + ui.memory_mut(|mem| mem.toggle_popup(self.id)); + } + } + button_response + } +} + +// https://stackoverflow.com/a/58188385 +fn get_days_from_month(year: i32, month: u32) -> i64 { + NaiveDate::from_ymd_opt( + match month { + 12 => year + 1, + _ => year, + }, + match month { + 12 => 1, + _ => month + 1, + }, + 1, + ).unwrap() + .signed_duration_since(NaiveDate::from_ymd_opt(year, month, 1).unwrap()) + .num_days() +} diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..99e17b8 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,308 @@ +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release + +use eframe::{ + egui::{self, RichText, Slider, Window}, + epaint::Color32, +}; +use egui_datepicker::{DatePicker, Local, NaiveDate}; +use itertools::Itertools; +use serde::{Deserialize, Serialize}; + +fn main() -> Result<(), eframe::Error> { + env_logger::init(); // Log to stderr (if you run with `RUST_LOG=debug`). + let options = eframe::NativeOptions { + initial_window_size: Some(egui::vec2(320.0, 240.0)), + ..Default::default() + }; + eframe::run_native( + "Film Manager", + options, + Box::new(|cc| Box::new(MyApp::new(cc))), + ) +} + +#[derive(Debug, Serialize, Deserialize, Clone)] +pub struct Exposure { + num: u8, + #[serde(default)] + printed: bool, + #[serde(default)] + damaged: bool, + #[serde(default)] + paper: Option, +} + +#[derive(Debug, Serialize, Deserialize, Clone)] +pub struct Roll { + id: String, + name: String, + #[serde(default)] + desc: String, + date: NaiveDate, + exposures: Vec, +} + +impl Roll { + fn new(id: String, name: String, desc: String, date: NaiveDate, num_exposures: u8) -> Self { + let mut exposures = Vec::new(); + for num in 1..=num_exposures { + exposures.push(Exposure { + num, + printed: false, + damaged: false, + paper: None, + }) + } + Self { + id, + name, + desc, + date, + exposures, + } + } + + pub fn short_str(&self) -> String { + format!( + "{}{} on {}, {} exp", + self.id, + if self.name.is_empty() { + String::new() + } else { + format!(" - {}", self.name) + }, + self.date.format("%m/%d/%Y"), + self.exposures.len() + ) + } +} + +struct AppState { + rolls: Vec, +} + +struct MyApp { + state: AppState, + view_roll_state: Option, + new_roll_state: Option, +} + +struct ViewRollState { + roll: usize, + confirm_delete: bool, + exp: u8, +} + +impl ViewRollState { + fn new(roll: usize) -> Self { + Self { + roll, + confirm_delete: false, + exp: 0, + } + } +} + +struct NewRollState { + id: String, + name: String, + desc: String, + date: NaiveDate, + exps: u8, + show_id_req_err: bool, +} + +impl Default for NewRollState { + fn default() -> Self { + Self { + id: String::new(), + name: String::new(), + desc: String::new(), + date: Local::now().date_naive(), + exps: 24, + show_id_req_err: false, + } + } +} + +impl MyApp { + fn new(cc: &eframe::CreationContext<'_>) -> Self { + let rolls = eframe::get_value(cc.storage.unwrap(), "rolls").unwrap_or_else(|| { + vec![Roll::new( + "00001".into(), + "Test".into(), + "Testing".into(), + Local::now().date_naive(), + 24, + )] + }); + Self { + state: AppState { rolls }, + view_roll_state: None, + new_roll_state: None, + } + } +} + +impl eframe::App for MyApp { + fn save(&mut self, storage: &mut dyn eframe::Storage) { + eframe::set_value(storage, "rolls", &self.state.rolls); + } + + fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { + egui::CentralPanel::default().show(ctx, |ui| { + ui.heading("Film Manager"); + ui.label("Rolls:"); + for (i, roll) in self.state.rolls.iter().enumerate() { + if ui.button(roll.short_str()).clicked() && self.view_roll_state.is_none() { + self.view_roll_state = Some(ViewRollState::new(i)); + } + } + if ui.button("Add").clicked() && self.new_roll_state.is_none() { + self.new_roll_state = Some(NewRollState::default()); + } + if let Some(view_roll_state) = self.view_roll_state.as_mut() { + if view_roll_window(ctx, view_roll_state, &mut self.state) { + self.view_roll_state = None; + } + } + if let Some(new_roll_state) = self.new_roll_state.as_mut() { + if new_roll_window(ctx, new_roll_state, &mut self.state) { + self.new_roll_state = None; + } + } + }); + } +} + +fn view_roll_window( + ctx: &egui::Context, + win_state: &mut ViewRollState, + app_state: &mut AppState, +) -> bool { + let mut open = true; + let window = + Window::new(format!("Roll {}", app_state.rolls[win_state.roll].id)).open(&mut open); + let deleted = window + .show(ctx, |ui| { + let roll = &mut app_state.rolls[win_state.roll]; + ui.label(format!("Name: {}", roll.name)); + ui.label(format!("Description: {}", roll.desc)); + ui.label(format!("Date: {}", roll.date.format("%Y-%m-%d"))); + ui.label("Exposures:"); + ui.horizontal_top(|ui| { + ui.vertical(|ui| { + for (i, chunk) in roll.exposures.iter().chunks(5).into_iter().enumerate() { + ui.horizontal(|ui| { + for (j, exp) in chunk.enumerate() { + let num = i * 5 + j; + let mut label = RichText::new(format!("{:02}", exp.num)); + if exp.printed { + if exp.damaged { + label = label.color(Color32::DARK_RED); + } else { + label = label.color(Color32::DARK_BLUE); + } + } + ui.selectable_value(&mut win_state.exp, num as u8, label); + } + }); + } + }); + ui.vertical(|ui| { + let exp = &mut roll.exposures[win_state.exp as usize]; + ui.checkbox(&mut exp.printed, "Printed"); + if !exp.printed { + exp.damaged = false; + } + if exp.printed { + ui.checkbox(&mut exp.damaged, "Damaged"); + } + }); + }); + if ui.button("Delete").clicked() { + win_state.confirm_delete = true; + } + if win_state.confirm_delete { + Window::new("Confirm delete") + .show(ctx, |ui| { + ui.heading(format!( + "Really delete roll {}?", + app_state.rolls[win_state.roll].id + )); + if ui.button("No").clicked() { + win_state.confirm_delete = false; + return false; + } + if ui.button("Yes").clicked() { + app_state.rolls.remove(win_state.roll); + return true; + } + false + }) + .unwrap() + .inner + .unwrap_or(false) + } else { + false + } + }) + .unwrap() + .inner + .unwrap_or(false); + !open || deleted +} + +fn new_roll_window( + ctx: &egui::Context, + win_state: &mut NewRollState, + app_state: &mut AppState, +) -> bool { + let mut open = true; + Window::new("New Roll").open(&mut open).show(ctx, |ui| { + ui.horizontal(|ui| { + let label = ui.label("ID: "); + ui.text_edit_singleline(&mut win_state.id) + .labelled_by(label.id); + }); + ui.horizontal(|ui| { + let label = ui.label("Name: "); + ui.text_edit_singleline(&mut win_state.name) + .labelled_by(label.id); + }); + let desc_label = ui.label("Description: "); + ui.text_edit_multiline(&mut win_state.desc) + .labelled_by(desc_label.id); + ui.horizontal(|ui| { + let label = ui.label("Date: "); + ui.add( + DatePicker::new("new_roll_date", &mut win_state.date) + .sunday_first(true) + .highlight_weekend(false), + ) + .labelled_by(label.id); + }); + ui.horizontal(|ui| { + let label = ui.label("Num exposures: "); + ui.add(Slider::new(&mut win_state.exps, 1..=50).step_by(1.0)) + .labelled_by(label.id); + }); + if ui.button("Submit").clicked() { + if win_state.id.is_empty() { + win_state.show_id_req_err = true; + } else { + app_state.rolls.push(Roll::new( + win_state.id.clone(), + win_state.name.clone(), + win_state.desc.clone(), + win_state.date, + win_state.exps, + )); + } + } + if win_state.show_id_req_err { + ui.colored_label(Color32::DARK_RED, "Error: ID required"); + } + }); + !open +}