tray_wrapper/
event_loop.rs1use crate::server_status::ServerStatus;
2use tray_icon::menu::MenuEvent;
3use winit::event_loop::EventLoop;
4
5#[derive(Debug)]
6pub enum UserEvent {
7 Menu(tray_icon::menu::MenuEvent),
8 ServerStatus(ServerStatus),
9 ServerExit,
10}
11
12pub(crate) fn setup_event_loop() -> EventLoop<UserEvent> {
13 let event_loop = EventLoop::<UserEvent>::with_user_event().build().unwrap();
14
15 let proxy = event_loop.create_proxy();
17 MenuEvent::set_event_handler(Some(move |event| {
18 proxy
19 .send_event(UserEvent::Menu(event))
20 .expect("Menu Event loop doesn't exist");
21 }));
22
23 event_loop
24}