main.rs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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(if cfg!(target_os = "macos") {
  24. tauri::Menu::os_default(&context.package_info().name)
  25. } else {
  26. tauri::Menu::default()
  27. })
  28. .on_page_load(|window, _payload| {
  29. let label = window.label().to_string();
  30. window.listen("clicked".to_string(), move |_payload| {
  31. println!("got 'clicked' event on window '{}'", label);
  32. });
  33. })
  34. .invoke_handler(tauri::generate_handler![create_child_window])
  35. .setup(|app| {
  36. WindowBuilder::new(app, "main".to_string(), WindowUrl::default())
  37. .title("Main")
  38. .inner_size(600.0, 400.0)
  39. .build()?;
  40. Ok(())
  41. })
  42. .run(context)
  43. .expect("failed to run tauri application");
  44. }