// Copyright 2020-2023 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT fn main() -> wry::Result<()> { use wry::{ application::{ event::{Event, StartCause, WindowEvent}, event_loop::{ControlFlow, EventLoop}, window::{Window, WindowBuilder}, }, webview::WebViewBuilder, }; enum UserEvents { CloseWindow, } let event_loop = EventLoop::::with_user_event(); let window = WindowBuilder::new() .with_decorations(false) .build(&event_loop) .unwrap(); const HTML: &str = r#"
Custom Titlebar

WRYYYYYYYYYYYYYYYYYYYYYY!

"#; let proxy = event_loop.create_proxy(); let handler = move |window: &Window, req: String| { if req == "minimize" { window.set_minimized(true); } if req == "maximize" { window.set_maximized(!window.is_maximized()); } if req == "close" { let _ = proxy.send_event(UserEvents::CloseWindow); } if req == "drag_window" { let _ = window.drag_window(); } }; let mut webview = Some( WebViewBuilder::new(window) .unwrap() .with_html(HTML)? .with_ipc_handler(handler) .with_accept_first_mouse(true) .build()?, ); event_loop.run(move |event, _, control_flow| { *control_flow = ControlFlow::Wait; match event { Event::NewEvents(StartCause::Init) => println!("Wry application started!"), Event::WindowEvent { event: WindowEvent::CloseRequested, .. } | Event::UserEvent(UserEvents::CloseWindow) => { let _ = webview.take(); *control_flow = ControlFlow::Exit } _ => (), } }); }