Begin integration with coop widgets

This commit is contained in:
2023-08-05 17:54:09 +02:00
parent ddf8c5fe5e
commit d6f024af04
16 changed files with 590 additions and 86 deletions

432
Cargo.lock generated
View File

@@ -174,6 +174,12 @@ version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
[[package]]
name = "as-raw-xcb-connection"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d5f312b0a56c5cdf967c0aeb67f6289603354951683bc97ddc595ab974ba9aa"
[[package]]
name = "async-broadcast"
version = "0.5.1"
@@ -364,11 +370,11 @@ checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
[[package]]
name = "bindgen"
version = "0.65.1"
version = "0.66.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5"
checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
dependencies = [
"bitflags 1.3.2",
"bitflags 2.3.3",
"cexpr",
"clang-sys",
"lazy_static",
@@ -469,6 +475,20 @@ 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.28",
]
[[package]]
name = "byteorder"
@@ -622,8 +642,7 @@ dependencies = [
[[package]]
name = "const-field-offset"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6304465f16f463cddc572b737c3df93576edd3a6b53f057bd8beeb29f4ef8dfd"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"const-field-offset-macro",
"field-offset",
@@ -632,8 +651,7 @@ dependencies = [
[[package]]
name = "const-field-offset-macro"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57aaaad9185d3bcb3afe63549d8ba60b2fb0ea8dc2da83f62dd56805edf56fd1"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"proc-macro2",
"quote",
@@ -961,6 +979,44 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
[[package]]
name = "drm"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edf9159ef4bcecd0c5e4cbeb573b8d0037493403d542780dba5d840bbf9df56f"
dependencies = [
"bitflags 1.3.2",
"bytemuck",
"drm-ffi",
"drm-fourcc",
"nix 0.26.2",
]
[[package]]
name = "drm-ffi"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1352481b7b90e27a8a1bf8ef6b33cf18b98dba7c410e75c24bb3eef2f0d8d525"
dependencies = [
"drm-sys",
"nix 0.26.2",
]
[[package]]
name = "drm-fourcc"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
[[package]]
name = "drm-sys"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1369f1679d6b706d234c4c1e0613c415c2c74b598a09ad28080ba2474b72e42d"
dependencies = [
"libc",
]
[[package]]
name = "dunce"
version = "1.0.4"
@@ -1027,6 +1083,17 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "errno"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
dependencies = [
"errno-dragonfly",
"libc",
"winapi",
]
[[package]]
name = "errno"
version = "0.3.2"
@@ -1293,6 +1360,28 @@ dependencies = [
"slab",
]
[[package]]
name = "gbm"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2ec389cda876966cf824111bf6e533fb934c711d473498279964a990853b3c6"
dependencies = [
"bitflags 1.3.2",
"drm",
"drm-fourcc",
"gbm-sys",
"libc",
]
[[package]]
name = "gbm-sys"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b63eba9b9b7a231514482deb08759301c9f9f049ac6869403f381834ebfeaf67"
dependencies = [
"libc",
]
[[package]]
name = "generational-arena"
version = "0.2.9"
@@ -1322,6 +1411,16 @@ dependencies = [
"winapi",
]
[[package]]
name = "gethostname"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177"
dependencies = [
"libc",
"winapi",
]
[[package]]
name = "getrandom"
version = "0.2.10"
@@ -1492,11 +1591,29 @@ version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
[[package]]
name = "i-slint-backend-linuxkms"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"calloop",
"drm",
"gbm",
"glutin",
"i-slint-common",
"i-slint-core",
"i-slint-renderer-femtovg",
"input",
"libseat",
"nix 0.26.2",
"raw-window-handle",
"xkbcommon",
]
[[package]]
name = "i-slint-backend-qt"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60c60fec461b2a404aa931e7057c019d24dad0663c0847062f9a480dc03ce2d5"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"const-field-offset",
"cpp",
@@ -1514,11 +1631,11 @@ dependencies = [
[[package]]
name = "i-slint-backend-selector"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67d5ea2053b057cc5a13e07882144ef0a8bf539e44e708dcf1b4cbe67dd910e9"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"cfg-if",
"i-slint-backend-linuxkms",
"i-slint-backend-qt",
"i-slint-backend-winit",
"i-slint-core",
@@ -1526,9 +1643,8 @@ dependencies = [
[[package]]
name = "i-slint-backend-winit"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0279550c83e2a73ae7d5f737d5593c175793b3fcf6cd9a9bce8ffd127897e3da"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"accesskit",
"accesskit_winit",
@@ -1545,14 +1661,17 @@ dependencies = [
"i-slint-core-macros",
"i-slint-renderer-femtovg",
"i-slint-renderer-skia",
"imgref",
"instant",
"lyon_path",
"once_cell",
"pin-weak",
"raw-window-handle",
"rgb",
"scoped-tls-hkt",
"scopeguard",
"send_wrapper",
"softbuffer",
"vtable",
"wasm-bindgen",
"web-sys",
@@ -1561,9 +1680,8 @@ dependencies = [
[[package]]
name = "i-slint-common"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "66d94c6046396a1ad1ecfab9d59e07b3e6691846f2f99e42effe99a74bfed877"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"cfg-if",
"derive_more",
@@ -1573,9 +1691,8 @@ dependencies = [
[[package]]
name = "i-slint-compiler"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43986d2851beca3df33505b0ee4996feb54f058c611f4fadbcca4a0ffb2aa055"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"by_address",
"codemap",
@@ -1604,9 +1721,8 @@ dependencies = [
[[package]]
name = "i-slint-core"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9c5d4796364f86c7524ae083225c56ef43fe3d367e4b6ee519e64271a7df8d7"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"atomic-polyfill",
"auto_enums",
@@ -1615,6 +1731,7 @@ dependencies = [
"const-field-offset",
"derive_more",
"euclid",
"fontdue",
"i-slint-common",
"i-slint-core-macros",
"image",
@@ -1630,6 +1747,7 @@ dependencies = [
"pin-weak",
"resvg",
"rgb",
"rustybuzz",
"scoped-tls-hkt",
"scopeguard",
"slab",
@@ -1645,9 +1763,8 @@ dependencies = [
[[package]]
name = "i-slint-core-macros"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30c162fd90a8d6e5232ad1f5d21363cc4c5ec32df30260164c230af393699c13"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"quote",
"syn 2.0.28",
@@ -1655,9 +1772,8 @@ dependencies = [
[[package]]
name = "i-slint-renderer-femtovg"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4217d7a135b97769f00440e740b1b929cbc002952264511a74dc56a44308253a"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"cfg-if",
"const-field-offset",
@@ -1689,9 +1805,8 @@ dependencies = [
[[package]]
name = "i-slint-renderer-skia"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11875f8b7dfd9066adc4026fa9303d585200ef530c36292d94b3be957b450193"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"cfg-if",
"cfg_aliases",
@@ -1773,6 +1888,29 @@ dependencies = [
"hashbrown 0.14.0",
]
[[package]]
name = "input"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6e74cd82cedcd66db78742a8337bdc48f188c4d2c12742cbc5cd85113f0b059"
dependencies = [
"bitflags 1.3.2",
"input-sys",
"io-lifetimes",
"libc",
"log",
"udev",
]
[[package]]
name = "input-sys"
version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05f6c2a17e8aba7217660e32863af87b0febad811d4b8620ef76b386603fddc2"
dependencies = [
"libc",
]
[[package]]
name = "instant"
version = "0.1.12"
@@ -1947,6 +2085,38 @@ version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
[[package]]
name = "libseat"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "845e5c255462c9bc7c71c17b996766b76e3c66f2ddd5846bfbc83f18382aa648"
dependencies = [
"cc",
"errno 0.2.8",
"libseat-sys",
"pkg-config",
"slog",
]
[[package]]
name = "libseat-sys"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3671cb5e03871f1d6bf0b3b5daa9275549e348fa6359e0f9adb910ca163d4c34"
dependencies = [
"pkg-config",
]
[[package]]
name = "libudev-sys"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324"
dependencies = [
"libc",
"pkg-config",
]
[[package]]
name = "linked-hash-map"
version = "0.5.6"
@@ -2069,6 +2239,15 @@ dependencies = [
"libc",
]
[[package]]
name = "memmap2"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
dependencies = [
"libc",
]
[[package]]
name = "memoffset"
version = "0.6.5"
@@ -2220,6 +2399,7 @@ dependencies = [
"cfg-if",
"libc",
"memoffset 0.7.1",
"pin-utils",
"static_assertions",
]
@@ -2577,6 +2757,15 @@ dependencies = [
"semver",
]
[[package]]
name = "quick-xml"
version = "0.28.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
dependencies = [
"memchr",
]
[[package]]
name = "quote"
version = "1.0.32"
@@ -2814,7 +3003,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
dependencies = [
"bitflags 1.3.2",
"errno",
"errno 0.3.2",
"io-lifetimes",
"libc",
"linux-raw-sys 0.3.8",
@@ -2828,7 +3017,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ee020b1716f0a80e2ace9b03441a749e402e86712f15f16fe8a8f75afac732f"
dependencies = [
"bitflags 2.3.3",
"errno",
"errno 0.3.2",
"libc",
"linux-raw-sys 0.4.5",
"windows-sys 0.48.0",
@@ -3057,9 +3246,9 @@ checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
[[package]]
name = "skia-bindings"
version = "0.63.0"
version = "0.64.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ffc650a2d45d9acb7e251568dc6193d882cf66aeb78e5dcc08bc2b816ffbbd5"
checksum = "d7a30c13184ca65af3a989ea2efe8803335d011800c0c738ef89e003b69e08e6"
dependencies = [
"bindgen",
"cc",
@@ -3075,9 +3264,9 @@ dependencies = [
[[package]]
name = "skia-safe"
version = "0.63.0"
version = "0.64.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ae6df6412e061d9792938efc923dc41236edf778058ecc63dc385cd5d5a9ac1"
checksum = "ace543b27749a9cade9fe57d0aadddd2fe1a99563f2976401966bda84b47284f"
dependencies = [
"bitflags 2.3.3",
"lazy_static",
@@ -3097,9 +3286,8 @@ dependencies = [
[[package]]
name = "slint"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03e9bdb79798c7fb20c20ec74cd1f230b96ac8832aeb49335c8e45dfb76a3161"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"const-field-offset",
"i-slint-backend-selector",
@@ -3113,9 +3301,8 @@ dependencies = [
[[package]]
name = "slint-build"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1aaa41e33ef48d7a98bf6bed33637556e5f818b2f9340ed44736c17d1cbe3417"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"i-slint-compiler",
"spin_on",
@@ -3125,9 +3312,8 @@ dependencies = [
[[package]]
name = "slint-macros"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05a7d5c7093cd7b1b750fecbfd94e896c05cde20d39a9d73a2a94ca1ba351263"
version = "1.2.0"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"i-slint-compiler",
"proc-macro2",
@@ -3135,6 +3321,12 @@ dependencies = [
"spin_on",
]
[[package]]
name = "slog"
version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06"
[[package]]
name = "slotmap"
version = "1.0.6"
@@ -3164,7 +3356,7 @@ dependencies = [
"memmap2 0.5.10",
"nix 0.24.3",
"pkg-config",
"wayland-client",
"wayland-client 0.29.5",
"wayland-cursor",
"wayland-protocols",
]
@@ -3176,7 +3368,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8"
dependencies = [
"smithay-client-toolkit",
"wayland-client",
"wayland-client 0.29.5",
]
[[package]]
@@ -3198,6 +3390,35 @@ dependencies = [
"winapi",
]
[[package]]
name = "softbuffer"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7cc7e34c6782f6fe16e384f25d009ed7b30f70e022d77966769a0366232c4dc4"
dependencies = [
"bytemuck",
"cfg_aliases",
"cocoa",
"core-graphics",
"fastrand 1.9.0",
"foreign-types",
"js-sys",
"log",
"memmap2 0.6.2",
"nix 0.26.2",
"objc",
"raw-window-handle",
"redox_syscall 0.3.5",
"wasm-bindgen",
"wayland-backend",
"wayland-client 0.30.2",
"wayland-sys 0.30.1",
"web-sys",
"windows-sys 0.48.0",
"x11-dl",
"x11rb 0.12.0",
]
[[package]]
name = "spin"
version = "0.5.2"
@@ -3523,6 +3744,17 @@ version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
[[package]]
name = "udev"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ebdbbd670373442a12fe9ef7aeb53aec4147a5a27a00bbc3ab639f08f48191a"
dependencies = [
"libc",
"libudev-sys",
"pkg-config",
]
[[package]]
name = "uds_windows"
version = "1.0.2"
@@ -3711,8 +3943,7 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "vtable"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0eaffdd71dc6eae079fb88ff1d555cd442d25150c28b9fdc69b8af4a9720268"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"atomic-polyfill",
"const-field-offset",
@@ -3723,8 +3954,7 @@ dependencies = [
[[package]]
name = "vtable-macro"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b2b8eecdb8e4284adf5546fc518f048f6dc33e7203dbe36fa93a4add39b31f6"
source = "git+https://github.com/slint-ui/slint#f301e3d8c9dab91c6595b0a279d5b46839dbd1ce"
dependencies = [
"proc-macro2",
"quote",
@@ -3797,6 +4027,21 @@ version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
[[package]]
name = "wayland-backend"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41b48e27457e8da3b2260ac60d0a94512f5cba36448679f3747c0865b7893ed8"
dependencies = [
"cc",
"downcast-rs",
"io-lifetimes",
"nix 0.26.2",
"scoped-tls",
"smallvec",
"wayland-sys 0.30.1",
]
[[package]]
name = "wayland-client"
version = "0.29.5"
@@ -3809,10 +4054,22 @@ dependencies = [
"nix 0.24.3",
"scoped-tls",
"wayland-commons",
"wayland-scanner",
"wayland-scanner 0.29.5",
"wayland-sys 0.29.5",
]
[[package]]
name = "wayland-client"
version = "0.30.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "489c9654770f674fc7e266b3c579f4053d7551df0ceb392f153adb1f9ed06ac8"
dependencies = [
"bitflags 1.3.2",
"nix 0.26.2",
"wayland-backend",
"wayland-scanner 0.30.1",
]
[[package]]
name = "wayland-commons"
version = "0.29.5"
@@ -3832,7 +4089,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661"
dependencies = [
"nix 0.24.3",
"wayland-client",
"wayland-client 0.29.5",
"xcursor",
]
@@ -3843,9 +4100,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
dependencies = [
"bitflags 1.3.2",
"wayland-client",
"wayland-client 0.29.5",
"wayland-commons",
"wayland-scanner",
"wayland-scanner 0.29.5",
]
[[package]]
@@ -3859,6 +4116,17 @@ dependencies = [
"xml-rs",
]
[[package]]
name = "wayland-scanner"
version = "0.30.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9b873b257fbc32ec909c0eb80dea312076a67014e65e245f5eb69a6b8ab330e"
dependencies = [
"proc-macro2",
"quick-xml",
"quote",
]
[[package]]
name = "wayland-sys"
version = "0.29.5"
@@ -4149,10 +4417,10 @@ dependencies = [
"sctk-adwaita",
"smithay-client-toolkit",
"wasm-bindgen",
"wayland-client",
"wayland-client 0.29.5",
"wayland-commons",
"wayland-protocols",
"wayland-scanner",
"wayland-scanner 0.29.5",
"web-sys",
"windows-sys 0.45.0",
"x11-dl",
@@ -4182,7 +4450,7 @@ version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464"
dependencies = [
"x11rb",
"x11rb 0.10.1",
]
[[package]]
@@ -4202,11 +4470,28 @@ version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507"
dependencies = [
"gethostname",
"gethostname 0.2.3",
"nix 0.24.3",
"winapi",
"winapi-wsapoll",
"x11rb-protocol",
"x11rb-protocol 0.10.0",
]
[[package]]
name = "x11rb"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a"
dependencies = [
"as-raw-xcb-connection",
"gethostname 0.3.0",
"libc",
"libloading 0.7.4",
"nix 0.26.2",
"once_cell",
"winapi",
"winapi-wsapoll",
"x11rb-protocol 0.12.0",
]
[[package]]
@@ -4218,6 +4503,15 @@ dependencies = [
"nix 0.24.3",
]
[[package]]
name = "x11rb-protocol"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc"
dependencies = [
"nix 0.26.2",
]
[[package]]
name = "xattr"
version = "0.2.3"
@@ -4246,6 +4540,16 @@ dependencies = [
"winapi",
]
[[package]]
name = "xkbcommon"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52db25b599e92bf6e3904134618728eeb7b49a5a4f38f107f92399bb9c496b88"
dependencies = [
"libc",
"memmap2 0.7.1",
]
[[package]]
name = "xml-rs"
version = "0.8.16"

View File

@@ -17,8 +17,8 @@ anyhow = "1.0"
log = "0.4"
env_logger = "0.10"
slint = "1.1"
slint = { git = "https://github.com/slint-ui/slint" }
[build-dependencies]
slint-build = "1.1"
slint-build = { git = "https://github.com/slint-ui/slint" }
coop_widgets = { git = "https://codeberg.org/flovansl/co_sl" }

View File

@@ -6,24 +6,24 @@ use log::info;
use slint::ComponentHandle;
use crate::{App,MediaLogic};
pub fn init(ui: &App, sender_co: MessageToServer, receiver_s: MessageFromServer) {
pub fn init(app: &App, sender_co: MessageToServer, receiver_s: MessageFromServer) {
let sender_c = sender_co.clone();
ui.global::<MediaLogic>().on_play_pause(move || {
app.global::<MediaLogic>().on_play_pause(move || {
sender_c.send(ClientMessage::PlayPause).unwrap();
});
let sender_c = sender_co.clone();
ui.global::<MediaLogic>().on_next(move || {
app.global::<MediaLogic>().on_next(move || {
sender_c.send(ClientMessage::Next).unwrap();
});
let sender_c = sender_co.clone();
ui.global::<MediaLogic>().on_previous(move || {
app.global::<MediaLogic>().on_previous(move || {
sender_c.send(ClientMessage::Previous).unwrap();
});
let ui_handle = ui.as_weak();
let ui_handle = app.as_weak();
thread::spawn(move || loop {
if receiver_s.is_empty() {
thread::sleep(Duration::from_millis(200));

View File

@@ -14,10 +14,31 @@ fn main() -> Result<(), slint::PlatformError> {
let (messages_to_server, message_from_server) = init_tcp();
let ui = App::new()?;
let app = App::new()?;
media::init(&app, messages_to_server, message_from_server);
virtual_keyboard::init(&app);
media::init(&ui, messages_to_server, message_from_server);
info!("Launching UI");
ui.run()
app.run()
}
mod virtual_keyboard {
use super::*;
use slint::*;
pub fn init(app: &App) {
let weak = app.as_weak();
app.global::<VirtualKeyboardHandler>().on_key_pressed({
move |key| {
weak.unwrap()
.window()
.dispatch_event(slint::platform::WindowEvent::KeyPressed { text: key.clone() });
weak.unwrap()
.window()
.dispatch_event(slint::platform::WindowEvent::KeyReleased { text: key });
}
});
}
}

View File

@@ -0,0 +1,7 @@
// SPDX-FileCopyrightText: 2022 Florian Blasius <co-sl@tutanota.com>
// SPDX-License-Identifier: MIT
export global AppManager {
in-out property <bool> keyboard-enabled: false;
in-out property <bool> widgets-enabled: true;
}

View File

@@ -1,8 +1,60 @@
import { CoopWindow, VirtualKeyboard, VirtualKeyboardHandler, GroupListViewItem, Palette, Icons } from "_imports/coop-widgets.slint";
import { MediaPage } from "pages/pages.slint";
import { AppManager } from "app-manager.slint";
import { SideBarView } from "side-bar-view.slint";
import { MediaControls, MediaLogic } from "widgets/mediacontrols.slint";
export { VirtualKeyboardHandler }
export { AppManager }
export { MediaLogic }
export component App inherits CoopWindow {
// preferred-width: 600px;
// preferred-height: 400px;
title: "Deckui";
Rectangle {
background: Palette.background;
}
Rectangle {
GridLayout {
Rectangle {
col: 1;
if (i-side-bar.current-item.parent == 0 && i-side-bar.current-item.item == 0) : MediaPage {}
//if (i-side-bar.current-item.parent == 1 && i-side-bar.current-item.item == 0) : BrushesPage {}
}
i-side-bar := SideBarView {
col: 0;
parent-width: root.width;
title: "Deckui";
responsive: true;
property <GroupListViewItem> widgets: {
text: "Widgets",
items: [
{ leading-icon: Icons.home, text: "Media" },
]
};
// property <GroupListViewItem> resources: {
// text: "Resources",
// items: [
// { leading-icon: Icons.brush, text: "Brushes" },
// { leading-icon: Icons.format-size, text: "Typography" },
// ]
// };
navigation-items: [self.widgets];
}
}
if (AppManager.keyboard-enabled) : VirtualKeyboard {
y: TextInputInterface.text-input-focused ? parent.height - self.height : parent.height;
}
}
export component App inherits Window {
background: white;
MediaControls {}
}

View File

@@ -0,0 +1,13 @@
// SPDX-FileCopyrightText: 2022 Florian Blasius <co-sl@tutanota.com>
// SPDX-License-Identifier: MIT
import { Page } from "page.slint";
import { MediaControls } from "../widgets/mediacontrols.slint";
export component MediaPage inherits Page {
title: "Media";
Flickable {
MediaControls { }
}
}

View File

@@ -0,0 +1,70 @@
// SPDX-FileCopyrightText: 2022 Florian Blasius <co_sl@tutanota.com>
// SPDX-License-Identifier: MIT
import { AppManager } from "../app-manager.slint";
import { HeaderBar, OutlineButton, CheckBox, Switch, ScrollView, Icons, ComboBox, Palette, ColorTheme, ColorVariant } from "../_imports/coop-widgets.slint";
export component Page inherits GridLayout {
in-out property <string> title <=> i_header_bar.title;
in-out property <bool> keyboard_check_box: true;
in-out property <bool> disabled_check_box: true;
Row {
i_header_bar := HeaderBar {
if (root.keyboard_check_box) : CheckBox {
y: (parent.height - self.height) / 2;
text: "Keyboard enabled";
checked <=> AppManager.keyboard_enabled;
}
if (root.disabled_check_box) : CheckBox {
y: (parent.height - self.height) / 2;
text: "Widgets enabled";
checked <=> AppManager.widgets_enabled;
}
ComboBox {
width: 128px;
placeholder-text: @tr("Select theme:");
current-index: Palette.current-color-theme == ColorTheme.Coop ? 0 : 1;
model: [
{ text: "Coop" },
{ text: "Cosmic" },
];
selected (index) => {
if (index == 0) {
Palette.set-color-theme(ColorTheme.Coop);
return;
}
if (index == 1) {
Palette.set-color-theme(ColorTheme.Cosmic);
}
}
}
VerticalLayout {
alignment: center;
Switch {
on_icon: Icons.mode-night;
off_icon: Icons.light-mode;
checked: !Palette.dark-color-scheme;
toggled(checked) => {
Palette.set-color-variant(checked ? ColorVariant.Light : ColorVariant.Dark);
}
}
}
}
}
Row {
ScrollView {
@children
}
}
}

View File

@@ -0,0 +1,6 @@
// SPDX-FileCopyrightText: 2022 Florian Blasius <co-sl@tutanota.com>
// SPDX-License-Identifier: MIT
import { MediaPage } from "media-page.slint";
export { MediaPage }

View File

@@ -0,0 +1,13 @@
// SPDX-FileCopyrightText: 2022 Florian Blasius <co_sl@tutanota.com>
// SPDX-License-Identifier: MIT
import { MediumLabel, LargeLabel, Palette } from "../_imports/coop-widgets.slint";
export component RowTitle inherits LargeLabel {
height: 18px;
}
export component ColumnTitle inherits MediumLabel {
height: 14px;
color: Palette.foreground_disabled;
}

View File

@@ -0,0 +1,17 @@
// SPDX-FileCopyrightText: 2022 Florian Blasius <co-sl@tutanota.com>
// SPDX-License-Identifier: MIT
import { SideBar, GroupListView, GroupListViewItem } from "_imports/coop-widgets.slint";
export component SideBarView inherits SideBar {
in-out property <[GroupListViewItem]> navigation-items <=> i-navigation.model;
in-out property <{ parent: int, item: int }> current-item <=> i-navigation.current-item;
i-navigation := GroupListView {
vertical-stretch: 1;
current-item-changed => {
root.expanded = false;
}
}
}

View File

@@ -1,4 +1,4 @@
import { Palette } from "../_imports/coop-widgets.slint";
export component Clickable inherits TouchArea {
in property <image> icon;
@@ -8,7 +8,7 @@ export component Clickable inherits TouchArea {
Image {
width: 128px;
height: 128px;
colorize: root.pressed ? #4D4D4D: black;
colorize: root.pressed ? Palette.foreground-disabled: Palette.foreground;
source: icon;
}

View File

@@ -1,3 +1,4 @@
import { Palette } from "../_imports/coop-widgets.slint";
import { Clickable } from "clickable.slint";
export global MediaLogic {
@@ -43,7 +44,7 @@ export component MediaControls inherits Clickable {
Buttons { }
Text {
horizontal-alignment: center;
color: black;
color: Palette.foreground;
text: MediaLogic.now_playing;
font-size:35px;
font-weight: 600;

View File

@@ -1,2 +1,2 @@
cross build --release -p remote --target=aarch64-unknown-linux-gnu && scp -i ~/.ssh/onekey ./target/aarch64-unknown-linux-gnu/release/remote rockpro64:/home/jika/remote2 && echo "Uploaded"
cross build -p remote --target=aarch64-unknown-linux-gnu && scp -i ~/.ssh/onekey ./target/aarch64-unknown-linux-gnu/release/remote rockpro64:/home/jika/remote2 && echo "Uploaded"

View File

@@ -2,7 +2,7 @@ commands:
lib: |
cargo watch -d 2 -w lib -x "build -p lib"
remote: |
cargo watch -d 2 -w remote -- sh ./buildui.sh
cargo watch -d 2 -i "_imports" -w remote -- sh ./buildui.sh
app: |
cargo watch -d 2 -w app -w lib -x "run --release -p app"
cargo watch -d 2 -w app -w lib -x "run -p app"

View File

@@ -2,7 +2,7 @@ commands:
lib: |
cargo watch -d 2 -w lib -x "build -p lib"
remote: |
cargo watch -d 2 -w remote -x "run --release -p remote"
cargo watch -d 2 -i "_imports" -w remote -x "run -p remote"
app: |
cargo watch -d 2 -w app -w lib -x "run --release -p app"
cargo watch -d 2 -w app -w lib -x "run -p app"