main.rs 1.3 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. tauri::Builder::default()
  22. .on_page_load(|window, _payload| {
  23. let label = window.label().to_string();
  24. window.listen("clicked".to_string(), move |_payload| {
  25. println!("got 'clicked' event on window '{}'", label);
  26. });
  27. })
  28. .invoke_handler(tauri::generate_handler![create_child_window])
  29. .setup(|app| {
  30. WindowBuilder::new(app, "main".to_string(), WindowUrl::default())
  31. .title("Main")
  32. .inner_size(600.0, 400.0)
  33. .build()?;
  34. Ok(())
  35. })
  36. .run(tauri::generate_context!(
  37. "../../examples/parent-window/tauri.conf.json"
  38. ))
  39. .expect("failed to run tauri application");
  40. }