12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- // 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");
- }
|