diff --git a/Cargo.lock b/Cargo.lock
index 41acd97..5378339 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1,10 +1,6 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
-[[package]]
-name = "Inflector"
-version = "0.11.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+version = 3
[[package]]
name = "adler"
@@ -23,15 +19,15 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.44"
+version = "1.0.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1"
+checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27"
[[package]]
name = "arrayvec"
-version = "0.5.2"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
[[package]]
name = "associative-cache"
@@ -41,23 +37,21 @@ checksum = "46016233fc1bb55c23b856fe556b7db6ccd05119a0a392e04f0b3b7c79058f16"
[[package]]
name = "atk"
-version = "0.9.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "812b4911e210bd51b24596244523c856ca749e6223c50a7fbbba3f89ee37c426"
+checksum = "a83b21d2aa75e464db56225e1bda2dd5993311ba1095acaa8fa03d1ae67026ba"
dependencies = [
"atk-sys",
"bitflags",
"glib",
- "glib-sys",
- "gobject-sys",
"libc",
]
[[package]]
name = "atk-sys"
-version = "0.10.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f530e4af131d94cc4fa15c5c9d0348f0ef28bac64ba660b6b2a1cf2605dedfce"
+checksum = "badcf670157c84bb8b1cf6b5f70b650fed78da2033c9eed84c4e49b11cbe83ea"
dependencies = [
"glib-sys",
"gobject-sys",
@@ -78,15 +72,9 @@ dependencies = [
[[package]]
name = "autocfg"
-version = "1.0.1"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
-
-[[package]]
-name = "base-x"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "base64"
@@ -117,36 +105,34 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
[[package]]
name = "bumpalo"
-version = "3.7.1"
+version = "3.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9df67f7bf9ef8498769f994239c45613ef0c5899415fb58e9add412d2c1a538"
+checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"
[[package]]
name = "bytemuck"
-version = "1.7.2"
+version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72957246c41db82b8ef88a5486143830adeb8227ef9837740bdec67724cf2c5b"
+checksum = "ee1e0e2125faccb856bf10b0a9dfa89c4c718d05ef85580dfefbdf1c422ef801"
[[package]]
name = "cairo-rs"
-version = "0.9.1"
+version = "0.14.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5c0f2e047e8ca53d0ff249c54ae047931d7a6ebe05d00af73e0ffeb6e34bdb8"
+checksum = "33b5725979db0c586d98abad2193cdb612dd40ef95cd26bd99851bf93b3cb482"
dependencies = [
"bitflags",
"cairo-sys-rs",
"glib",
- "glib-sys",
- "gobject-sys",
"libc",
"thiserror",
]
[[package]]
name = "cairo-sys-rs"
-version = "0.10.0"
+version = "0.14.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ed2639b9ad5f1d6efa76de95558e11339e7318426d84ac4890b86c03e828ca7"
+checksum = "b448b876970834fda82ba3aeaccadbd760206b75388fc5c1b02f1e343b697570"
dependencies = [
"glib-sys",
"libc",
@@ -154,16 +140,13 @@ dependencies = [
]
[[package]]
-name = "cc"
-version = "1.0.70"
+name = "cfg-expr"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0"
-
-[[package]]
-name = "cfg-if"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+checksum = "b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e"
+dependencies = [
+ "smallvec",
+]
[[package]]
name = "cfg-if"
@@ -173,33 +156,17 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
-version = "3.0.0-beta.4"
+version = "3.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcd70aa5597dbc42f7217a543f9ef2768b2ef823ba29036072d30e1d88e98406"
+checksum = "d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123"
dependencies = [
"atty",
"bitflags",
- "clap_derive",
"indexmap",
- "lazy_static",
"os_str_bytes",
"strsim",
"termcolor",
"textwrap",
- "vec_map",
-]
-
-[[package]]
-name = "clap_derive"
-version = "3.0.0-beta.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b5bb0d655624a0b8770d1c178fb8ffcb1f91cc722cb08f451e3dc72465421ac"
-dependencies = [
- "heck",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn",
]
[[package]]
@@ -235,25 +202,19 @@ dependencies = [
[[package]]
name = "console_error_panic_hook"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211"
+checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if",
"wasm-bindgen",
]
-[[package]]
-name = "const_fn"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f92cfa0fd5690b3cf8c1ef2cabbd9b7ef22fa53cf5e1f92b05103f6d5d1cf6e7"
-
[[package]]
name = "core-foundation"
-version = "0.9.1"
+version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
dependencies = [
"core-foundation-sys",
"libc",
@@ -261,15 +222,15 @@ dependencies = [
[[package]]
name = "core-foundation-sys"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
+checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
[[package]]
name = "core-graphics"
-version = "0.22.2"
+version = "0.22.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "269f35f69b542b80e736a20a89a05215c0ce80c2c03c514abb2e318b78379d86"
+checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
dependencies = [
"bitflags",
"core-foundation",
@@ -304,32 +265,25 @@ dependencies = [
[[package]]
name = "crc32fast"
-version = "1.2.1"
+version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
]
[[package]]
name = "data-url"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d33fe99ccedd6e84bc035f1931bb2e6be79739d6242bd895e7311c886c50dc9c"
+checksum = "3a30bfce702bcfa94e906ef82421f2c0e61c076ad76030c16ee5d2e9a32fe193"
dependencies = [
"matches",
]
-[[package]]
-name = "discard"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
-
[[package]]
name = "druid"
version = "0.7.0"
-source = "git+https://github.com/jneem/druid?branch=pointer#01e245dc7b30111892cc7db56ac85207ae114009"
dependencies = [
"console_error_panic_hook",
"druid-derive",
@@ -352,7 +306,6 @@ dependencies = [
[[package]]
name = "druid-derive"
version = "0.4.0"
-source = "git+https://github.com/jneem/druid?branch=pointer#01e245dc7b30111892cc7db56ac85207ae114009"
dependencies = [
"proc-macro2",
"quote",
@@ -362,21 +315,16 @@ dependencies = [
[[package]]
name = "druid-shell"
version = "0.7.0"
-source = "git+https://github.com/jneem/druid?branch=pointer#01e245dc7b30111892cc7db56ac85207ae114009"
dependencies = [
"anyhow",
"bitflags",
"block",
"cairo-rs",
- "cfg-if 1.0.0",
+ "cfg-if",
"cocoa",
"core-graphics",
"foreign-types",
- "gdk",
- "gdk-pixbuf",
"gdk-sys",
- "gio",
- "glib",
"glib-sys",
"gtk",
"gtk-sys",
@@ -414,13 +362,23 @@ version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+[[package]]
+name = "field-offset"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92"
+dependencies = [
+ "memoffset",
+ "rustc_version",
+]
+
[[package]]
name = "flate2"
version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"crc32fast",
"libc",
"miniz_oxide",
@@ -434,16 +392,16 @@ checksum = "75224bec9bfe1a65e2d34132933f2de7fe79900c96a0174307554244ece8150e"
[[package]]
name = "fluent-bundle"
-version = "0.15.1"
+version = "0.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8acf044eeb4872d9dbf2667541fbf461f5965c57e343878ad0fb24b5793fa007"
+checksum = "e242c601dec9711505f6d5bbff5bedd4b61b2469f2e8bb8e57ee7c9747a87ffd"
dependencies = [
"fluent-langneg",
"fluent-syntax",
"intl-memoizer",
"intl_pluralrules",
- "ouroboros",
"rustc-hash",
+ "self_cell",
"smallvec",
"unic-langid",
]
@@ -498,42 +456,26 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-[[package]]
-name = "futures"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
[[package]]
name = "futures-channel"
-version = "0.3.17"
+version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888"
+checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
dependencies = [
"futures-core",
- "futures-sink",
]
[[package]]
name = "futures-core"
-version = "0.3.17"
+version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d"
+checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
[[package]]
name = "futures-executor"
-version = "0.3.17"
+version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c"
+checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6"
dependencies = [
"futures-core",
"futures-task",
@@ -542,96 +484,62 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.17"
+version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb"
-dependencies = [
- "autocfg",
- "proc-macro-hack",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11"
+checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
[[package]]
name = "futures-task"
-version = "0.3.17"
+version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99"
+checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
[[package]]
name = "futures-util"
-version = "0.3.17"
+version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481"
+checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
dependencies = [
- "autocfg",
- "futures-channel",
"futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
"futures-task",
- "memchr",
"pin-project-lite",
"pin-utils",
- "proc-macro-hack",
- "proc-macro-nested",
"slab",
]
[[package]]
name = "gdk"
-version = "0.13.2"
+version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db00839b2a68a7a10af3fa28dfb3febaba3a20c3a9ac2425a33b7df1f84a6b7d"
+checksum = "b9d749dcfc00d8de0d7c3a289e04a04293eb5ba3d8a4e64d64911d481fa9933b"
dependencies = [
"bitflags",
"cairo-rs",
- "cairo-sys-rs",
"gdk-pixbuf",
"gdk-sys",
"gio",
- "gio-sys",
"glib",
- "glib-sys",
- "gobject-sys",
"libc",
"pango",
]
[[package]]
name = "gdk-pixbuf"
-version = "0.9.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f6dae3cb99dd49b758b88f0132f8d401108e63ae8edd45f432d42cdff99998a"
+checksum = "534192cb8f01daeb8fab2c8d4baa8f9aae5b7a39130525779f5c2608e235b10f"
dependencies = [
"gdk-pixbuf-sys",
"gio",
- "gio-sys",
"glib",
- "glib-sys",
- "gobject-sys",
"libc",
]
[[package]]
name = "gdk-pixbuf-sys"
-version = "0.10.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bfe468a7f43e97b8d193a762b6c5cf67a7d36cacbc0b9291dbcae24bfea1e8f"
+checksum = "f097c0704201fbc8f69c1762dc58c6947c8bb188b8ed0bc7e65259f1894fe590"
dependencies = [
"gio-sys",
"glib-sys",
@@ -642,9 +550,9 @@ dependencies = [
[[package]]
name = "gdk-sys"
-version = "0.10.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a9653cfc500fd268015b1ac055ddbc3df7a5c9ea3f4ccef147b3957bd140d69"
+checksum = "0e091b3d3d6696949ac3b3fb3c62090e5bfd7bd6850bef5c3c5ea701de1b1f1e"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
@@ -659,20 +567,16 @@ dependencies = [
[[package]]
name = "gio"
-version = "0.9.1"
+version = "0.14.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fb60242bfff700772dae5d9e3a1f7aa2e4ebccf18b89662a16acb2822568561"
+checksum = "711c3632b3ebd095578a9c091418d10fed492da9443f58ebc8f45efbeb215cb0"
dependencies = [
"bitflags",
- "futures",
"futures-channel",
"futures-core",
"futures-io",
- "futures-util",
"gio-sys",
"glib",
- "glib-sys",
- "gobject-sys",
"libc",
"once_cell",
"thiserror",
@@ -680,9 +584,9 @@ dependencies = [
[[package]]
name = "gio-sys"
-version = "0.10.1"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e24fb752f8f5d2cf6bbc2c606fd2bc989c81c5e2fe321ab974d54f8b6344eac"
+checksum = "c0a41df66e57fcc287c4bcf74fc26b884f31901ea9792ec75607289b456f48fa"
dependencies = [
"glib-sys",
"gobject-sys",
@@ -693,32 +597,31 @@ dependencies = [
[[package]]
name = "glib"
-version = "0.10.3"
+version = "0.14.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c685013b7515e668f1b57a165b009d4d28cb139a8a989bbd699c10dad29d0c5"
+checksum = "7c515f1e62bf151ef6635f528d05b02c11506de986e43b34a5c920ef0b3796a4"
dependencies = [
"bitflags",
"futures-channel",
"futures-core",
"futures-executor",
"futures-task",
- "futures-util",
"glib-macros",
"glib-sys",
"gobject-sys",
"libc",
"once_cell",
+ "smallvec",
]
[[package]]
name = "glib-macros"
-version = "0.10.1"
+version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41486a26d1366a8032b160b59065a59fb528530a46a49f627e7048fb8c064039"
+checksum = "2aad66361f66796bfc73f530c51ef123970eb895ffba991a234fcf7bea89e518"
dependencies = [
"anyhow",
"heck",
- "itertools",
"proc-macro-crate",
"proc-macro-error",
"proc-macro2",
@@ -728,9 +631,9 @@ dependencies = [
[[package]]
name = "glib-sys"
-version = "0.10.1"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7e9b997a66e9a23d073f2b1abb4dbfc3925e0b8952f67efd8d9b6e168e4cdc1"
+checksum = "1c1d60554a212445e2a858e42a0e48cece1bd57b311a19a9468f70376cf554ae"
dependencies = [
"libc",
"system-deps",
@@ -738,9 +641,9 @@ dependencies = [
[[package]]
name = "gobject-sys"
-version = "0.10.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "952133b60c318a62bf82ee75b93acc7e84028a093e06b9e27981c2b6fe68218c"
+checksum = "aa92cae29759dae34ab5921d73fff5ad54b3d794ab842c117e36cafc7994c3f5"
dependencies = [
"glib-sys",
"libc",
@@ -749,37 +652,32 @@ dependencies = [
[[package]]
name = "gtk"
-version = "0.9.2"
+version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f022f2054072b3af07666341984562c8e626a79daa8be27b955d12d06a5ad6a"
+checksum = "2eb51122dd3317e9327ec1e4faa151d1fa0d95664cd8fb8dcfacf4d4d29ac70c"
dependencies = [
"atk",
"bitflags",
"cairo-rs",
- "cairo-sys-rs",
- "cc",
+ "field-offset",
+ "futures-channel",
"gdk",
"gdk-pixbuf",
- "gdk-pixbuf-sys",
- "gdk-sys",
"gio",
- "gio-sys",
"glib",
- "glib-sys",
- "gobject-sys",
"gtk-sys",
+ "gtk3-macros",
"libc",
"once_cell",
"pango",
- "pango-sys",
"pkg-config",
]
[[package]]
name = "gtk-sys"
-version = "0.10.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89acda6f084863307d948ba64a4b1ef674e8527dddab147ee4cdcc194c880457"
+checksum = "8c14c8d3da0545785a7c5a120345b3abb534010fb8ae0f2ef3f47c027fba303e"
dependencies = [
"atk-sys",
"cairo-sys-rs",
@@ -793,6 +691,21 @@ dependencies = [
"system-deps",
]
+[[package]]
+name = "gtk3-macros"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21de1da96dc117443fb03c2e270b2d34b7de98d0a79a19bbb689476173745b79"
+dependencies = [
+ "anyhow",
+ "heck",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "hashbrown"
version = "0.11.2"
@@ -833,9 +746,9 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "1.7.0"
+version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
+checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee"
dependencies = [
"autocfg",
"hashbrown",
@@ -843,11 +756,11 @@ dependencies = [
[[package]]
name = "instant"
-version = "0.1.11"
+version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "716d3d89f35ac6a34fd0eed635395f4c3b76fa889338a4632e5231a8684216bd"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"js-sys",
"wasm-bindgen",
"web-sys",
@@ -875,42 +788,42 @@ dependencies = [
[[package]]
name = "itertools"
-version = "0.9.0"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
+checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
dependencies = [
"either",
]
[[package]]
name = "itoa"
-version = "0.4.8"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
[[package]]
name = "js-sys"
-version = "0.3.55"
+version = "0.3.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84"
+checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04"
dependencies = [
"wasm-bindgen",
]
[[package]]
name = "keyboard-types"
-version = "0.5.0"
+version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a989afac88279b0482f402d234b5fbd405bf1ad051308595b58de4e6de22346b"
+checksum = "0b7668b7cff6a51fe61cdde64cd27c8a220786f399501b57ebe36f7d8112fd68"
dependencies = [
"bitflags",
]
[[package]]
name = "kurbo"
-version = "0.8.1"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e30b1df631d23875f230ed3ddd1a88c231f269a04b2044eb6ca87e763b5f4c42"
+checksum = "7a53776d271cfb873b17c618af0298445c88afc52837f3e948fa3fafd131f449"
dependencies = [
"arrayvec",
]
@@ -923,17 +836,17 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
-version = "0.2.103"
+version = "0.2.121"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6"
+checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f"
[[package]]
name = "log"
-version = "0.4.14"
+version = "0.4.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
]
[[package]]
@@ -966,6 +879,15 @@ 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 = "miniz_oxide"
version = "0.4.4"
@@ -976,6 +898,15 @@ dependencies = [
"autocfg",
]
+[[package]]
+name = "num_threads"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aba1801fb138d8e85e11d0fc70baf4fe1cdfffda7c6cd34a854905df588e5ed0"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "objc"
version = "0.2.7"
@@ -987,49 +918,27 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.8.0"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
+checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
[[package]]
name = "os_str_bytes"
-version = "3.1.0"
+version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6acbef58a60fe69ab50510a55bc8cdd4d6cf2283d27ad338f54cb52747a9cf2d"
-
-[[package]]
-name = "ouroboros"
-version = "0.9.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbeff60e3e37407a80ead3e9458145b456e978c4068cddbfea6afb48572962ca"
+checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64"
dependencies = [
- "ouroboros_macro",
- "stable_deref_trait",
-]
-
-[[package]]
-name = "ouroboros_macro"
-version = "0.9.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03f2cb802b5bdfdf52f1ffa0b54ce105e4d346e91990dd571f86c91321ad49e2"
-dependencies = [
- "Inflector",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn",
+ "memchr",
]
[[package]]
name = "pango"
-version = "0.9.1"
+version = "0.14.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9937068580bebd8ced19975938573803273ccbcbd598c58d4906efd4ac87c438"
+checksum = "546fd59801e5ca735af82839007edd226fe7d3bb06433ec48072be4439c28581"
dependencies = [
"bitflags",
"glib",
- "glib-sys",
- "gobject-sys",
"libc",
"once_cell",
"pango-sys",
@@ -1037,9 +946,9 @@ dependencies = [
[[package]]
name = "pango-sys"
-version = "0.10.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24d2650c8b62d116c020abd0cea26a4ed96526afda89b1c4ea567131fdefc890"
+checksum = "2367099ca5e761546ba1d501955079f097caa186bb53ce0f718dca99ac1942fe"
dependencies = [
"glib-sys",
"gobject-sys",
@@ -1049,27 +958,23 @@ dependencies = [
[[package]]
name = "pangocairo"
-version = "0.10.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00f5ae67a05a5e023f09f64e9a71c845274d4b82dedee237b70425811885e883"
+checksum = "f03ac1e8d456f8f436168aeac41201f0bf49d1dc6c8d01bfb04de2cca25df631"
dependencies = [
"bitflags",
"cairo-rs",
- "cairo-sys-rs",
"glib",
- "glib-sys",
- "gobject-sys",
"libc",
"pango",
- "pango-sys",
"pangocairo-sys",
]
[[package]]
name = "pangocairo-sys"
-version = "0.11.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94ccc97f698c2f0233b84e5ca676893a1e676785b60eec700b9c0e6dcd0feb98"
+checksum = "f3b9b679ad5c8503e3e533ce06e1619d033274b246e977a6fa1655a6c6ef2b51"
dependencies = [
"cairo-sys-rs",
"glib-sys",
@@ -1078,6 +983,15 @@ dependencies = [
"system-deps",
]
+[[package]]
+name = "pest"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
+dependencies = [
+ "ucd-trie",
+]
+
[[package]]
name = "pico-args"
version = "0.4.2"
@@ -1086,9 +1000,9 @@ checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468"
[[package]]
name = "piet"
-version = "0.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31bf73f4f995c6ae50f709ff3635e466d1e42d814a84099ea0f90da9dd0f0b69"
+checksum = "c14a2944b6da638045428a9a7901b77bea62bf430d2b9d4d7146acce96e14a15"
dependencies = [
"kurbo",
"unic-bidi",
@@ -1096,9 +1010,9 @@ dependencies = [
[[package]]
name = "piet-cairo"
-version = "0.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b14ba5c00133cd03bdde578a3fc47c73e3be17972ed5415979c53d9243742965"
+checksum = "aecdd587016b022cbe2ee290d7641a362337b244adf1bfe156a35d85855a5221"
dependencies = [
"cairo-rs",
"glib",
@@ -1112,13 +1026,13 @@ dependencies = [
[[package]]
name = "piet-common"
-version = "0.4.1"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9bcfb0c224fde5812208021d890933f5865e22e4f7d705f02d85cf5142008fd"
+checksum = "c5b2fc8550e18e3ea1dd552f48291acc31996712dccfeb15404977f6350abf63"
dependencies = [
"cairo-rs",
"cairo-sys-rs",
- "cfg-if 1.0.0",
+ "cfg-if",
"core-graphics",
"piet",
"piet-cairo",
@@ -1131,9 +1045,9 @@ dependencies = [
[[package]]
name = "piet-coregraphics"
-version = "0.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6b44202edec899277f68642ec385283cae20bb5f49b12d8b5aa0f77823cd5a6"
+checksum = "803509526b882838db55ae8f6cae276a08aca6b64819c8f371fe9505d37e9d72"
dependencies = [
"core-foundation",
"core-foundation-sys",
@@ -1145,9 +1059,9 @@ dependencies = [
[[package]]
name = "piet-direct2d"
-version = "0.4.1"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21e69ce1fc6754dff7ab40a11253beb04d204435a6812e8119eab22645a1e26e"
+checksum = "46e2d4f9108976e6166d3de76afa238ab837ba5d5f52fd2a3f2e2c959be2b9a4"
dependencies = [
"associative-cache",
"dwrote",
@@ -1159,9 +1073,9 @@ dependencies = [
[[package]]
name = "piet-web"
-version = "0.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7da97e80b02b6f9c8d8c611ff555df2c10d408767a15da292791a5bd4198f12"
+checksum = "81bee71a4d0c2b00e51807d381a6ced49c792f0b0a2e42135f9f4547111bf2bb"
dependencies = [
"js-sys",
"piet",
@@ -1173,9 +1087,9 @@ dependencies = [
[[package]]
name = "pin-project-lite"
-version = "0.2.7"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
+checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c"
[[package]]
name = "pin-utils"
@@ -1185,16 +1099,17 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "pkg-config"
-version = "0.3.20"
+version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb"
+checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
[[package]]
name = "proc-macro-crate"
-version = "0.1.5"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
+checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
dependencies = [
+ "thiserror",
"toml",
]
@@ -1222,32 +1137,20 @@ dependencies = [
"version_check",
]
-[[package]]
-name = "proc-macro-hack"
-version = "0.5.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
-
-[[package]]
-name = "proc-macro-nested"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
-
[[package]]
name = "proc-macro2"
-version = "1.0.29"
+version = "1.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d"
+checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
dependencies = [
"unicode-xid",
]
[[package]]
name = "quote"
-version = "1.0.9"
+version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+checksum = "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58"
dependencies = [
"proc-macro2",
]
@@ -1290,9 +1193,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "rustc_version"
-version = "0.2.3"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
dependencies = [
"semver",
]
@@ -1315,9 +1218,9 @@ dependencies = [
[[package]]
name = "ryu"
-version = "1.0.5"
+version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
[[package]]
name = "scopeguard"
@@ -1326,25 +1229,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
-name = "semver"
-version = "0.9.0"
+name = "self_cell"
+version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+checksum = "1ef965a420fe14fdac7dd018862966a4c14094f900e1650bbc71ddd7d580c8af"
+
+[[package]]
+name = "semver"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
dependencies = [
"semver-parser",
]
[[package]]
name = "semver-parser"
-version = "0.7.0"
+version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
+dependencies = [
+ "pest",
+]
[[package]]
name = "serde"
-version = "1.0.130"
+version = "1.0.136"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
+checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
dependencies = [
"serde_derive",
]
@@ -1360,9 +1272,9 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.130"
+version = "1.0.136"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
+checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
dependencies = [
"proc-macro2",
"quote",
@@ -1371,26 +1283,20 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.68"
+version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8"
+checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
dependencies = [
"itoa",
"ryu",
"serde",
]
-[[package]]
-name = "sha1"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
-
[[package]]
name = "sharded-slab"
-version = "0.1.3"
+version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "740223c51853f3145fe7c90360d2d4232f2b62e3449489c207eccde818979982"
+checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
dependencies = [
"lazy_static",
]
@@ -1422,79 +1328,15 @@ dependencies = [
[[package]]
name = "slab"
-version = "0.4.4"
+version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590"
+checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5"
[[package]]
name = "smallvec"
-version = "1.7.0"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309"
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "standback"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "stdweb"
-version = "0.4.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
-dependencies = [
- "discard",
- "rustc_version",
- "stdweb-derive",
- "stdweb-internal-macros",
- "stdweb-internal-runtime",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "stdweb-derive"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
-dependencies = [
- "proc-macro2",
- "quote",
- "serde",
- "serde_derive",
- "syn",
-]
-
-[[package]]
-name = "stdweb-internal-macros"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
-dependencies = [
- "base-x",
- "proc-macro2",
- "quote",
- "serde",
- "serde_derive",
- "serde_json",
- "sha1",
- "syn",
-]
-
-[[package]]
-name = "stdweb-internal-runtime"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
+checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
[[package]]
name = "stiletto"
@@ -1520,15 +1362,15 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "strum"
-version = "0.18.0"
+version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
+checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2"
[[package]]
name = "strum_macros"
-version = "0.18.0"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
+checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec"
dependencies = [
"heck",
"proc-macro2",
@@ -1548,9 +1390,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "1.0.78"
+version = "1.0.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4eac2e6c19f5c3abc0c229bea31ff0b9b091c7b14990e8924b92902a303a0c0"
+checksum = "704df27628939572cd88d33f171cd6f896f4eaca85252c6e0a72d8d8287ee86f"
dependencies = [
"proc-macro2",
"quote",
@@ -1559,11 +1401,14 @@ dependencies = [
[[package]]
name = "system-deps"
-version = "1.3.2"
+version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
+checksum = "480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6"
dependencies = [
+ "anyhow",
+ "cfg-expr",
"heck",
+ "itertools",
"pkg-config",
"strum",
"strum_macros",
@@ -1574,36 +1419,33 @@ dependencies = [
[[package]]
name = "termcolor"
-version = "1.1.2"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
+checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
dependencies = [
"winapi-util",
]
[[package]]
name = "textwrap"
-version = "0.14.2"
+version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80"
-dependencies = [
- "unicode-width",
-]
+checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
[[package]]
name = "thiserror"
-version = "1.0.29"
+version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88"
+checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.29"
+version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c"
+checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
dependencies = [
"proc-macro2",
"quote",
@@ -1612,49 +1454,21 @@ dependencies = [
[[package]]
name = "thread_local"
-version = "1.1.3"
+version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd"
+checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
dependencies = [
"once_cell",
]
[[package]]
name = "time"
-version = "0.2.27"
+version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242"
+checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd"
dependencies = [
- "const_fn",
"libc",
- "standback",
- "stdweb",
- "time-macros",
- "version_check",
- "winapi",
-]
-
-[[package]]
-name = "time-macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
-dependencies = [
- "proc-macro-hack",
- "time-macros-impl",
-]
-
-[[package]]
-name = "time-macros-impl"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f"
-dependencies = [
- "proc-macro-hack",
- "proc-macro2",
- "quote",
- "standback",
- "syn",
+ "num_threads",
]
[[package]]
@@ -1674,11 +1488,11 @@ dependencies = [
[[package]]
name = "tracing"
-version = "0.1.28"
+version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84f96e095c0c82419687c20ddf5cb3eadb61f4e1405923c9dc8e53a1adacbda8"
+checksum = "4a1bdf54a7c28a2bbf701e1d2233f6c77f473486b94bee4f9678da5a148dca7f"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"pin-project-lite",
"tracing-attributes",
"tracing-core",
@@ -1686,9 +1500,9 @@ dependencies = [
[[package]]
name = "tracing-attributes"
-version = "0.1.17"
+version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4f915eb6abf914599c200260efced9203504c4c37380af10cdf3b7d36970650"
+checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b"
dependencies = [
"proc-macro2",
"quote",
@@ -1697,18 +1511,19 @@ dependencies = [
[[package]]
name = "tracing-core"
-version = "0.1.21"
+version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4"
+checksum = "aa31669fa42c09c34d94d8165dd2012e8ff3c66aca50f3bb226b68f216f2706c"
dependencies = [
"lazy_static",
+ "valuable",
]
[[package]]
name = "tracing-subscriber"
-version = "0.2.24"
+version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdd0568dbfe3baf7048b7908d2b32bca0d81cd56bec6d2a8f894b01d74f86be3"
+checksum = "9e0ab7bdc962035a87fba73f3acca9b8a8d0034c2e6f60b84aeaaddddc155dce"
dependencies = [
"ansi_term",
"sharded-slab",
@@ -1718,9 +1533,9 @@ dependencies = [
[[package]]
name = "tracing-wasm"
-version = "0.2.0"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ae741706df70547fca8715f74a8569677666e7be3454313af70f6e158034485"
+checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07"
dependencies = [
"tracing",
"tracing-subscriber",
@@ -1750,9 +1565,15 @@ dependencies = [
[[package]]
name = "typenum"
-version = "1.14.0"
+version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec"
+checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
[[package]]
name = "unic-bidi"
@@ -1825,9 +1646,9 @@ dependencies = [
[[package]]
name = "unicode-bidi"
-version = "0.3.6"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085"
+checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
[[package]]
name = "unicode-bidi-mirroring"
@@ -1849,15 +1670,15 @@ checksum = "7f9af028e052a610d99e066b33304625dea9613170a2563314490a4e6ec5cf7f"
[[package]]
name = "unicode-script"
-version = "0.5.3"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "098ec66172ce21cd55f8bcc786ee209dd20e04eff70acfca30cb79924d173ae9"
+checksum = "58dd944fd05f2f0b5c674917aea8a4df6af84f2d8de3fe8d988b95d28fb8fb09"
[[package]]
name = "unicode-segmentation"
-version = "1.8.0"
+version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
+checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
[[package]]
name = "unicode-vo"
@@ -1865,12 +1686,6 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94"
-[[package]]
-name = "unicode-width"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
-
[[package]]
name = "unicode-xid"
version = "0.2.2"
@@ -1911,38 +1726,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14706d2a800ee8ff38c1d3edb873cd616971ea59eb7c0d046bb44ef59b06a1ae"
[[package]]
-name = "vec_map"
-version = "0.8.2"
+name = "valuable"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
[[package]]
name = "version-compare"
-version = "0.0.10"
+version = "0.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
+checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b"
[[package]]
name = "version_check"
-version = "0.9.3"
+version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "wasm-bindgen"
-version = "0.2.78"
+version = "0.2.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce"
+checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"wasm-bindgen-macro",
]
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.78"
+version = "0.2.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b"
+checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca"
dependencies = [
"bumpalo",
"lazy_static",
@@ -1955,9 +1770,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.78"
+version = "0.2.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9"
+checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -1965,9 +1780,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.78"
+version = "0.2.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab"
+checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc"
dependencies = [
"proc-macro2",
"quote",
@@ -1978,15 +1793,15 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.78"
+version = "0.2.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"
+checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2"
[[package]]
name = "web-sys"
-version = "0.3.55"
+version = "0.3.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb"
+checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb"
dependencies = [
"js-sys",
"wasm-bindgen",
diff --git a/Cargo.toml b/Cargo.toml
index afe4d14..2ce496f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -7,25 +7,26 @@ default-run = "stiletto"
[dependencies]
log = "0.4"
-druid = { version = "0.7.0", features = ["im", "svg"] }
+druid = { version = "0.7", features = ["im", "svg"] }
im = { version = "*" }
serde = { version = "1.0", features = ["derive"] }
serde_bare = "0.3.0"
serde_json = "1.0"
-clap = "3.0.0-beta.2"
+clap = "3.1"
[target.'cfg(target_os="linux")'.dependencies.gtk]
-version = "0.9.2"
+version = "0.14"
features = ["v3_22"]
[target.'cfg(target_os="linux")'.dependencies.gio]
-version = "0.9.1"
+version = "0.14"
features = ["v2_56"]
[target.'cfg(target_os="linux")'.dependencies.gdk]
-version = "0.13.2"
+version = "0.14"
features = ["v3_22"]
[patch.crates-io]
-druid = { git = "https://github.com/jneem/druid", branch = "pointer", features = ["im", "svg"] }
+#druid = { git = "https://github.com/jneem/druid", branch = "pointer", features = ["im", "svg"] }
+druid = { path= "../druid/druid/" }
diff --git a/src/bin/stlt_migrate.rs b/src/bin/stlt_migrate.rs
index e3694f6..67fe490 100644
--- a/src/bin/stlt_migrate.rs
+++ b/src/bin/stlt_migrate.rs
@@ -14,35 +14,39 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-use clap::{Arg, App};
+use clap::{Arg, Command};
use stiletto::migration::open_stiletto_document;
use std::fs::File;
use std::path::PathBuf;
fn main() {
- let matches = App::new("Stiletto Migration CLI")
+ let matches = Command::new("Stiletto Migration CLI")
.version("0.1.0")
.author("Stiletto Authors")
.about("Migrate a stlt file to the latest version")
- .arg(Arg::new("INPUT")
- .about("Sets the input file to use")
- .required(true)
- .index(1))
- .arg(Arg::new("OUTPUT")
- .about("Sets the output file to use")
- .required(true)
- .index(2))
+ .arg(
+ Arg::new("INPUT")
+ .help("Sets the input file to use")
+ .required(true)
+ .index(1),
+ )
+ .arg(
+ Arg::new("OUTPUT")
+ .help("Sets the output file to use")
+ .required(true)
+ .index(2),
+ )
.get_matches();
- let input_path = matches.value_of("INPUT").unwrap();
- let output_path = matches.value_of("OUTPUT").unwrap();
+ let input_path = matches.value_of("INPUT").unwrap();
+ let output_path = matches.value_of("OUTPUT").unwrap();
- let out_file = File::create(&output_path).expect("Cannot create output fle");
+ let out_file = File::create(&output_path).expect("Cannot create output fle");
- let result = open_stiletto_document(&PathBuf::from(&input_path));
- if let Ok(document) = result {
- let snapshot = document.migrate_to_latest();
- snapshot.to_writer(out_file);
- }
+ let result = open_stiletto_document(&PathBuf::from(&input_path));
+ if let Ok(document) = result {
+ let snapshot = document.migrate_to_latest();
+ snapshot.to_writer(out_file);
+ }
}
diff --git a/src/canvas.rs b/src/canvas.rs
index 8e7fdbb..edbdf57 100644
--- a/src/canvas.rs
+++ b/src/canvas.rs
@@ -16,7 +16,6 @@
use std::vec::Vec;
-use druid::Color;
use im::{vector, Vector};
use serde::de::{Deserializer, SeqAccess, Visitor};
@@ -81,19 +80,24 @@ pub enum CanvasElement {
Freehand {
path: Path,
thickness: f64,
- #[serde(serialize_with = "serialize_color", deserialize_with = "deserialize_color")]
+ #[serde(
+ serialize_with = "serialize_color",
+ deserialize_with = "deserialize_color"
+ )]
stroke_color: druid::Color,
},
}
fn serialize_color(c: &druid::Color, ser: S) -> Result
- where S: Serializer
+where
+ S: Serializer,
{
ser.serialize_u32(c.as_rgba_u32())
}
fn deserialize_color<'de, D>(de: D) -> Result
- where D: Deserializer<'de>
+where
+ D: Deserializer<'de>,
{
let c = u32::deserialize(de)?;
Ok(druid::Color::from_rgba32_u32(c))
@@ -201,11 +205,16 @@ impl Serialize for Path {
{
use druid::kurbo::PathEl;
- serializer.collect_seq(self.kurbo_path.iter().filter_map(|path_el| match path_el {
- PathEl::MoveTo(pt) => Some(Into::<(f64, f64)>::into(pt)),
- PathEl::LineTo(pt) => Some(Into::<(f64, f64)>::into(pt)),
- _ => None,
- }).collect::>())
+ serializer.collect_seq(
+ self.kurbo_path
+ .iter()
+ .filter_map(|path_el| match path_el {
+ PathEl::MoveTo(pt) => Some(Into::<(f64, f64)>::into(pt)),
+ PathEl::LineTo(pt) => Some(Into::<(f64, f64)>::into(pt)),
+ _ => None,
+ })
+ .collect::>(),
+ )
}
}
diff --git a/src/lib.rs b/src/lib.rs
index 0b239c2..fb1d005 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -19,9 +19,9 @@ use std::vec::Vec;
pub mod canvas;
pub mod history;
+pub mod migration;
pub mod tool;
pub mod widget;
-pub mod migration;
pub mod commands {
use druid::Selector;
diff --git a/src/main.rs b/src/main.rs
index 5501ba2..8acb068 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -32,7 +32,7 @@ use druid::{
use im::Vector;
use stiletto::tool::CanvasToolParams;
-use stiletto::widget::tool_ctx::{CanvasToolCtx};
+use stiletto::widget::tool_ctx::CanvasToolCtx;
use stiletto::widget::{build_simple_tool_widget, CanvasState, CanvasToolIconState, CanvasWidget};
use stiletto::DocumentSnapshot;
@@ -77,7 +77,7 @@ pub fn main() {
current_file_path: None,
};
AppLauncher::with_window(window)
- .use_simple_logger()
+ .log_to_console()
.delegate(Delegate)
.launch(canvas_data)
.expect("launch failed");
@@ -137,17 +137,19 @@ fn build_ui() -> impl Widget {
ctx.submit_command(Command::new(CanvasWidget::SCROLL, 30.0, canvas_id));
},
))
- .with_child(Button::new("Save").on_click(move |ctx, data: &mut StilettoState, _| {
- if data.current_file_path.is_some() {
- ctx.submit_command(Command::new(commands::SAVE_FILE, (), Target::Auto));
- } else {
- ctx.submit_command(Command::new(
- druid::commands::SHOW_SAVE_PANEL,
- save_dialog_options_clone.clone(),
- Target::Auto,
- ))
- }
- }))
+ .with_child(
+ Button::new("Save").on_click(move |ctx, data: &mut StilettoState, _| {
+ if data.current_file_path.is_some() {
+ ctx.submit_command(Command::new(commands::SAVE_FILE, (), Target::Auto));
+ } else {
+ ctx.submit_command(Command::new(
+ druid::commands::SHOW_SAVE_PANEL,
+ save_dialog_options_clone.clone(),
+ Target::Auto,
+ ))
+ }
+ }),
+ )
.with_child(Button::new("Save As").on_click(move |ctx, _, _| {
ctx.submit_command(Command::new(
druid::commands::SHOW_SAVE_PANEL,
@@ -274,8 +276,7 @@ impl AppDelegate for Delegate {
let res_file = File::create(&path_buf);
if let Ok(f) = res_file {
- let write_res =
- data.canvas.get_document_snapshot().to_writer(f);
+ let write_res = data.canvas.get_document_snapshot().to_writer(f);
if write_res.is_err() {
warn!("Error while saving: {:?}", write_res.err());
} else {
diff --git a/src/migration.rs b/src/migration.rs
index 2120a25..9fd92f9 100644
--- a/src/migration.rs
+++ b/src/migration.rs
@@ -47,7 +47,9 @@ impl StilettoDocument {
pub fn migrate_to_next(self) -> StilettoDocument {
match self {
- StilettoDocument::DocumentSnapshot0_1(snapshot) => StilettoDocument::DocumentSnapshot0_2(snapshot) ,
+ StilettoDocument::DocumentSnapshot0_1(snapshot) => {
+ StilettoDocument::DocumentSnapshot0_2(snapshot)
+ }
StilettoDocument::DocumentSnapshot0_2(_) => self,
}
}
@@ -60,12 +62,11 @@ impl StilettoDocument {
assert!(matches!(self, StilettoDocument::DocumentSnapshot0_2(_)));
match self {
StilettoDocument::DocumentSnapshot0_2(snapshot) => snapshot,
- _ => panic!("Wrong Document Snapshot Version")
+ _ => panic!("Wrong Document Snapshot Version"),
}
}
}
-
impl fmt::Display for MigrationError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match &self {
@@ -74,10 +75,11 @@ impl fmt::Display for MigrationError {
MigrationError::IoError(e) => e.fmt(f),
MigrationError::UnexpectedVersion(major, minor, e_major, e_minor) => {
write!(
- f, "Unexpected version ({}, {}): was expecting ({}, {})",
+ f,
+ "Unexpected version ({}, {}): was expecting ({}, {})",
major, minor, e_major, e_minor
)
- },
+ }
}
}
}
@@ -114,12 +116,12 @@ impl From for MigrationError {
fn open_0_1(path: &PathBuf) -> Result {
let f = File::open(path)?;
let document_snapshot: DocumentSnapshot = serde_json::from_reader(f)?;
- if document_snapshot.format_version_major != 0 ||
- document_snapshot.format_version_minor != 1 {
+ if document_snapshot.format_version_major != 0 || document_snapshot.format_version_minor != 1 {
Err(MigrationError::UnexpectedVersion(
document_snapshot.format_version_major,
document_snapshot.format_version_minor,
- 0, 1
+ 0,
+ 1,
))
} else {
Ok(StilettoDocument::DocumentSnapshot0_1(document_snapshot))
@@ -139,4 +141,3 @@ pub fn open_stiletto_document(path: &PathBuf) -> Result = Selector::new("scroll_canvas");
@@ -154,25 +158,23 @@ impl Widget for CanvasWidget {
viewport_transform = Some(Affine::translate((-30.0, 0.0)));
}
}
- Event::PointerDown(pointer_event) => {
+ Event::MouseDown(pointer_event) => {
toggle_eraser_event = true;
- enable_temporary_erasing = false; //pointer_event.pointer_type == PointerType::Eraser;
+ enable_temporary_erasing = pointer_event.pointer_type == PointerType::Eraser;
}
- Event::PointerMove(pointer_event) => {
+ Event::MouseMove(pointer_event) => {
toggle_eraser_event = true;
- enable_temporary_erasing = false; //pointer_event.pointer_type == PointerType::Eraser;
+ enable_temporary_erasing = pointer_event.pointer_type == PointerType::Eraser;
}
- Event::PointerUp(pointer_event) => {
+ Event::MouseUp(pointer_event) => {
toggle_eraser_event = true;
- enable_temporary_erasing = false; //pointer_event.pointer_type == PointerType::Eraser;
+ enable_temporary_erasing = pointer_event.pointer_type == PointerType::Eraser;
}
Event::Wheel(pointer) => {
let transform = self.widget_to_viewport();
- viewport_transform = Some(
- Affine::translate(
- (pointer.wheel_delta.to_point()).to_vec2()
- )
- );
+ viewport_transform = Some(Affine::translate(
+ (pointer.wheel_delta.to_point()).to_vec2(),
+ ));
}
_ => {}
@@ -188,7 +190,7 @@ impl Widget for CanvasWidget {
} else {
data.handle_event(ctx, event, self.widget_to_viewport(), env);
}
- if let Some(transform) = viewport_transform {
+ if let Some(transform) = viewport_transform {
let mut new_rect = transform.transform_rect_bbox(self.viewport.view_rect());
if new_rect.x0 <= 0f64 {
new_rect.x1 -= new_rect.x0;
diff --git a/src/widget/mod.rs b/src/widget/mod.rs
index fbca189..bd51d31 100644
--- a/src/widget/mod.rs
+++ b/src/widget/mod.rs
@@ -1,6 +1,6 @@
pub mod canvas;
-pub mod tool_icon;
pub mod tool_ctx;
+pub mod tool_icon;
pub use canvas::*;
pub use tool_icon::*;
diff --git a/src/widget/tool_ctx.rs b/src/widget/tool_ctx.rs
index f3e2aee..af26d46 100644
--- a/src/widget/tool_ctx.rs
+++ b/src/widget/tool_ctx.rs
@@ -14,14 +14,14 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-use crate::tool::{CanvasToolParams, CanvasToolType};
use crate::canvas::{Canvas, CanvasElement};
use crate::history::VersionedCanvas;
+use crate::tool::{CanvasToolParams, CanvasToolType};
use druid::kurbo::BezPath;
-use druid::{Affine, Data, Env, Event, EventCtx, PointerButton, PointerEvent, PaintCtx};
+use druid::{Affine, Data, Env, Event, EventCtx, PaintCtx, PointerButton, PointerEvent};
-#[derive(Clone, Data)]
+#[derive(Clone, Data, Debug)]
pub enum CanvasToolState {
Idle,
DrawingFreehand {
@@ -47,6 +47,11 @@ impl CanvasToolParams {
}
fn pressed(pointer_event: &PointerEvent) -> bool {
+ dbg!(&pointer_event);
+ dbg!(
+ pointer_event.buttons.contains(PointerButton::Left)
+ || pointer_event.button == PointerButton::Left
+ );
pointer_event.buttons.contains(PointerButton::Left)
|| pointer_event.button == PointerButton::Left
}
@@ -82,11 +87,11 @@ impl CanvasToolCtx {
_env: &Env,
) {
match (&mut self.state, event) {
- (CanvasToolState::Idle, Event::PointerDown(pointer_event)) if pressed(pointer_event) => {
+ (CanvasToolState::Idle, Event::MouseDown(pointer_event)) if pressed(pointer_event) => {
self.state = CanvasToolState::Erasing;
ctx.set_handled();
}
- (CanvasToolState::Erasing, Event::PointerMove(pointer_event)) if pressed(pointer_event) => {
+ (CanvasToolState::Erasing, Event::MouseMove(pointer_event)) => {
let eraser_rect =
druid::Rect::from_center_size(transform * pointer_event.pos, (5.0, 5.0));
let old_elements = vcanvas.get().elements();
@@ -107,7 +112,7 @@ impl CanvasToolCtx {
}
ctx.set_handled();
}
- (CanvasToolState::Erasing, Event::PointerUp(pointer_event)) if pressed(pointer_event) => {
+ (CanvasToolState::Erasing, Event::MouseUp(pointer_event)) if pressed(pointer_event) => {
self.state = CanvasToolState::Idle;
ctx.set_handled();
}
@@ -124,7 +129,7 @@ impl CanvasToolCtx {
_env: &Env,
) {
match (&mut self.state, event) {
- (CanvasToolState::Idle, Event::PointerDown(pointer_event)) if pressed(pointer_event) => {
+ (CanvasToolState::Idle, Event::MouseDown(pointer_event)) if pressed(pointer_event) => {
let mut kurbo_path = BezPath::new();
kurbo_path.move_to((pointer_event.pos.x, pointer_event.pos.y));
if let CanvasToolParams::Pen { thickness, color } = &self.initial_params {
@@ -144,31 +149,33 @@ impl CanvasToolCtx {
ref mut current_path,
..
},
- Event::PointerMove(pointer_event),
- ) => if pressed(pointer_event) {
- if let CanvasElement::Freehand { ref mut path, .. } = current_path {
- path.kurbo_path
- .line_to((pointer_event.pos.x, pointer_event.pos.y));
- }
+ Event::MouseMove(pointer_event),
+ ) => {
+ // TODO(enrico): investigate why mouse move doesn't carry buttons anymore
+ //if pressed(pointer_event) {
+ let CanvasElement::Freehand { ref mut path, .. } = current_path;
+ path.kurbo_path
+ .line_to((pointer_event.pos.x, pointer_event.pos.y));
ctx.set_handled();
+ //}
}
- (CanvasToolState::DrawingFreehand { .. }, Event::PointerUp(pointer_event)) if pressed(pointer_event) => {
+ (CanvasToolState::DrawingFreehand { .. }, Event::MouseUp(pointer_event))
+ if pressed(pointer_event) =>
+ {
vcanvas.update(move |canvas: &mut Canvas| {
let current_state = std::mem::replace(&mut self.state, CanvasToolState::Idle);
if let CanvasToolState::DrawingFreehand { current_path, .. } = current_state {
- if let CanvasElement::Freehand {
+ let CanvasElement::Freehand {
mut path,
thickness,
stroke_color,
- } = current_path
- {
- path.kurbo_path.apply_affine(transform);
- canvas.add_element(CanvasElement::Freehand {
- path,
- thickness,
- stroke_color,
- });
- }
+ } = current_path;
+ path.kurbo_path.apply_affine(transform);
+ canvas.add_element(CanvasElement::Freehand {
+ path,
+ thickness,
+ stroke_color,
+ });
}
});
ctx.set_handled();