main.rs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  2. // SPDX-License-Identifier: Apache-2.0
  3. // SPDX-License-Identifier: MIT
  4. #![cfg_attr(
  5. all(not(debug_assertions), target_os = "windows"),
  6. windows_subsystem = "windows"
  7. )]
  8. use tauri::{command, window::WindowBuilder, Window, WindowUrl};
  9. #[command]
  10. async fn create_child_window(id: String, window: Window) {
  11. let child = WindowBuilder::new(&window, id, WindowUrl::default())
  12. .title("Child")
  13. .inner_size(400.0, 300.0);
  14. #[cfg(target_os = "macos")]
  15. let child = child.parent_window(window.ns_window().unwrap());
  16. #[cfg(windows)]
  17. let child = child.parent_window(window.hwnd().unwrap());
  18. child.build().unwrap();
  19. }
  20. fn main() {
  21. let context = tauri::generate_context!("../../examples/parent-window/tauri.conf.json");
  22. tauri::Builder::default()
  23. .menu(tauri::Menu::os_default(&context.package_info().name))
  24. .on_page_load(|window, _payload| {
  25. let label = window.label().to_string();
  26. window.listen("clicked".to_string(), move |_payload| {
  27. println!("got 'clicked' event on window '{}'", label);
  28. });
  29. })
  30. .invoke_handler(tauri::generate_handler![create_child_window])
  31. .setup(|app| {
  32. WindowBuilder::new(app, "main".to_string(), WindowUrl::default())
  33. .title("Main")
  34. .inner_size(600.0, 400.0)
  35. .build()?;
  36. Ok(())
  37. })
  38. .run(context)
  39. .expect("failed to run tauri application");
  40. }