use crate::{
util::{PROCESS_NAME, to_wide},
win32::{NIF_INFO, NIIF_INFO, NIM_MODIFY, NOTIFYICONDATAW, Shell_NotifyIconW},
};
#[derive(Clone, Copy)]
#[allow(dead_code)]
pub enum NotifyIconType {
Info,
Warning,
Error,
}
#[allow(dead_code)]
pub fn notify_msgbox(hwnd: crate::HWND, msg: impl ToString, icon_id: u32) -> i32 {
let mut nid: NOTIFYICONDATAW = unsafe { std::mem::zeroed() };
nid.cbSize = std::mem::size_of::<NOTIFYICONDATAW>() as u32;
nid.hWnd = hwnd;
nid.uID = icon_id;
nid.uFlags = NIF_INFO;
nid.dwInfoFlags = NIIF_INFO;
let title_w = to_wide(PROCESS_NAME);
let msg_w = to_wide(msg);
for (i, &c) in title_w.iter().take(63).enumerate() {
nid.szInfoTitle[i] = c;
}
for (i, &c) in msg_w.iter().take(255).enumerate() {
nid.szInfo[i] = c;
}
unsafe { Shell_NotifyIconW(NIM_MODIFY, &nid) }
}