mirror of
https://github.com/tauri-apps/tauri.git
synced 2026-04-11 10:43:31 +02:00
56 lines
1.6 KiB
Rust
56 lines
1.6 KiB
Rust
// Copyright 2019-2021 Tauri Programme within The Commons Conservancy
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
#![cfg_attr(
|
|
all(not(debug_assertions), target_os = "windows"),
|
|
windows_subsystem = "windows"
|
|
)]
|
|
|
|
#[cfg(any(windows, target_os = "macos"))]
|
|
use tauri::Manager;
|
|
use tauri::{command, window, AppHandle, WindowBuilder, WindowUrl};
|
|
|
|
#[command]
|
|
fn create_child_window(id: String, app: AppHandle) {
|
|
#[cfg(any(windows, target_os = "macos"))]
|
|
let main = app.get_window("main").unwrap();
|
|
|
|
let child = window::WindowBuilder::new(&app, id, WindowUrl::default())
|
|
.title("Child")
|
|
.inner_size(400.0, 300.0);
|
|
|
|
#[cfg(target_os = "macos")]
|
|
let child = child.parent_window(main.ns_window().unwrap());
|
|
#[cfg(windows)]
|
|
let child = child.parent_window(main.hwnd().unwrap());
|
|
|
|
child.build().unwrap();
|
|
}
|
|
|
|
fn main() {
|
|
tauri::Builder::default()
|
|
.on_page_load(|window, _payload| {
|
|
let label = window.label().to_string();
|
|
window.listen("clicked".to_string(), move |_payload| {
|
|
println!("got 'clicked' event on window '{}'", label);
|
|
});
|
|
})
|
|
.invoke_handler(tauri::generate_handler![create_child_window])
|
|
.create_window(
|
|
"main".to_string(),
|
|
WindowUrl::default(),
|
|
|window_builder, webview_attributes| {
|
|
(
|
|
window_builder.title("Main").inner_size(600.0, 400.0),
|
|
webview_attributes,
|
|
)
|
|
},
|
|
)
|
|
.unwrap() // safe to unwrap: window label is valid
|
|
.run(tauri::generate_context!(
|
|
"../../examples/parent-window/tauri.conf.json"
|
|
))
|
|
.expect("failed to run tauri application");
|
|
}
|