feat: windows support

This commit is contained in:
Miguel da Mota 2024-01-14 23:16:45 +01:00
parent 7a265704e8
commit 5c0034aabd
9 changed files with 242 additions and 31 deletions

113
src-tauri/Cargo.lock generated
View file

@ -119,6 +119,15 @@ version = "0.21.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
[[package]]
name = "bincode"
version = "1.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
dependencies = [
"serde",
]
[[package]]
name = "bitflags"
version = "1.3.2"
@ -309,8 +318,24 @@ dependencies = [
"block",
"cocoa-foundation",
"core-foundation",
"core-graphics",
"foreign-types",
"core-graphics 0.22.3",
"foreign-types 0.3.2",
"libc",
"objc",
]
[[package]]
name = "cocoa"
version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c"
dependencies = [
"bitflags 1.3.2",
"block",
"cocoa-foundation",
"core-foundation",
"core-graphics 0.23.1",
"foreign-types 0.5.0",
"libc",
"objc",
]
@ -376,7 +401,20 @@ dependencies = [
"bitflags 1.3.2",
"core-foundation",
"core-graphics-types",
"foreign-types",
"foreign-types 0.3.2",
"libc",
]
[[package]]
name = "core-graphics"
version = "0.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212"
dependencies = [
"bitflags 1.3.2",
"core-foundation",
"core-graphics-types",
"foreign-types 0.5.0",
"libc",
]
@ -710,7 +748,28 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
dependencies = [
"foreign-types-shared",
"foreign-types-shared 0.1.1",
]
[[package]]
name = "foreign-types"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
dependencies = [
"foreign-types-macros",
"foreign-types-shared 0.3.1",
]
[[package]]
name = "foreign-types-macros"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
]
[[package]]
@ -719,6 +778,12 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
[[package]]
name = "foreign-types-shared"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
[[package]]
name = "form_urlencoded"
version = "1.2.1"
@ -2532,9 +2597,9 @@ dependencies = [
"bitflags 1.3.2",
"cairo-rs",
"cc",
"cocoa",
"cocoa 0.24.1",
"core-foundation",
"core-graphics",
"core-graphics 0.22.3",
"crossbeam-channel",
"dispatch",
"gdk",
@ -2605,7 +2670,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd27c04b9543776a972c86ccf70660b517ecabbeced9fb58d8b961a13ad129af"
dependencies = [
"anyhow",
"cocoa",
"cocoa 0.24.1",
"dirs-next",
"embed_plist",
"encoding_rs",
@ -2653,6 +2718,8 @@ dependencies = [
"serde_json",
"tauri",
"tauri-build",
"tauri-plugin-window-state",
"window-shadows",
]
[[package]]
@ -2714,6 +2781,20 @@ dependencies = [
"tauri-utils",
]
[[package]]
name = "tauri-plugin-window-state"
version = "0.1.0"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#c5e8cd31ec86ba7ddcd524f1377a5bf09229fb9e"
dependencies = [
"bincode",
"bitflags 2.4.1",
"log",
"serde",
"serde_json",
"tauri",
"thiserror",
]
[[package]]
name = "tauri-runtime"
version = "0.14.2"
@ -2741,7 +2822,7 @@ version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6cae61fbc731f690a4899681c9052dde6d05b159b44563ace8186fc1bfb7d158"
dependencies = [
"cocoa",
"cocoa 0.24.1",
"gtk",
"percent-encoding",
"rand 0.8.5",
@ -3345,6 +3426,18 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "window-shadows"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67ff424735b1ac21293b0492b069394b0a189c8a463fb015a16dea7c2e221c08"
dependencies = [
"cocoa 0.25.0",
"objc",
"raw-window-handle",
"windows-sys 0.48.0",
]
[[package]]
name = "windows"
version = "0.39.0"
@ -3664,8 +3757,8 @@ checksum = "6ad85d0e067359e409fcb88903c3eac817c392e5d638258abfb3da5ad8ba6fc4"
dependencies = [
"base64 0.13.1",
"block",
"cocoa",
"core-graphics",
"cocoa 0.24.1",
"core-graphics 0.22.3",
"crossbeam-channel",
"dunce",
"gdk",

View file

@ -14,8 +14,10 @@ tauri-build = { version = "1.5", features = [] }
[dependencies]
tauri = { version = "1.5", features = [ "macos-private-api", "window-minimize", "window-maximize", "window-hide", "window-unminimize", "window-unmaximize", "window-start-dragging", "window-close", "window-show", "shell-open"] }
tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
window-shadows = "0.2"
[features]
# this feature is used for production builds or when `devPath` points to the filesystem

View file

@ -2,10 +2,17 @@
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
use tauri::Manager;
use window_shadows::set_shadow;
fn main() {
tauri::Builder::default()
.invoke_handler(tauri::generate_handler![close_splashscreen])
.setup(|app| {
let window = app.get_window("main").unwrap();
set_shadow(&window, true).expect("Unsupported platform!");
Ok(())
})
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
@ -13,6 +20,7 @@ fn main() {
#[tauri::command]
async fn close_splashscreen(window: tauri::Window) {
if let Some(splashscreen) = window.get_window("splashscreen") {
println!("Closing splashscreen");
splashscreen.close().unwrap();
}
window.get_window("main").unwrap().show().unwrap();

View file

@ -43,27 +43,6 @@
"security": {
"csp": null
},
"windows": [
{
"fullscreen": false,
"resizable": true,
"title": "Vybr",
"width": 800,
"height": 600,
"decorations": true,
"hiddenTitle": true,
"titleBarStyle": "Overlay",
"visible": false,
"userAgent": "Vybr-App"
},
{
"width": 300,
"height": 400,
"decorations": false,
"url": "splashscreen.html",
"label": "splashscreen"
}
],
"macOSPrivateApi": true
}
}

View file

@ -0,0 +1,24 @@
{
"tauri": {
"windows": [
{
"fullscreen": false,
"resizable": true,
"title": "Vybr (MacOS)",
"width": 800,
"height": 600,
"decorations": true,
"hiddenTitle": true,
"titleBarStyle": "Overlay",
"visible": false
},
{
"width": 300,
"height": 400,
"decorations": false,
"url": "splashscreen.html",
"label": "splashscreen"
}
]
}
}

View file

@ -0,0 +1,22 @@
{
"tauri": {
"windows": [
{
"fullscreen": false,
"resizable": true,
"title": "Vybr (Windows)",
"width": 800,
"height": 600,
"decorations": false,
"visible": false
},
{
"width": 300,
"height": 400,
"decorations": false,
"url": "splashscreen.html",
"label": "splashscreen"
}
]
}
}