stremio-shell-ng/src/stremio_app/systray.rs
2024-04-19 19:05:32 +03:00

28 lines
977 B
Rust

use native_windows_derive::NwgPartial;
use native_windows_gui as nwg;
#[derive(Default, NwgPartial)]
pub struct SystemTray {
#[nwg_resource]
pub embed: nwg::EmbedResource,
#[nwg_resource(source_embed: Some(&data.embed), source_embed_str: Some("MAINICON"))]
pub tray_icon: nwg::Icon,
#[nwg_control(icon: Some(&data.tray_icon), tip: Some("Stremio"))]
#[nwg_events(OnContextMenu: [Self::show_menu])]
pub tray: nwg::TrayNotification,
#[nwg_control(popup: true)]
pub tray_menu: nwg::Menu,
#[nwg_control(parent: tray_menu, text: "&Show window")]
pub tray_show_hide: nwg::MenuItem,
#[nwg_control(parent: tray_menu, text: "Always on &top")]
pub tray_topmost: nwg::MenuItem,
#[nwg_control(parent: tray_menu, text: "&Quit")]
pub tray_exit: nwg::MenuItem,
}
impl SystemTray {
fn show_menu(&self) {
let (x, y) = nwg::GlobalCursor::position();
self.tray_menu.popup(x, y);
}
}