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