use windows::Win32::UI::Shell::{
QUNS_APP, QUNS_BUSY, QUNS_NOT_PRESENT, QUNS_PRESENTATION_MODE, QUNS_RUNNING_D3D_FULL_SCREEN,
SHQueryUserNotificationState,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Busy {
Away,
FullScreen,
Presenting,
}
pub fn busy() -> Option<Busy> {
let state = unsafe { SHQueryUserNotificationState() }.ok()?;
match state {
QUNS_NOT_PRESENT => Some(Busy::Away),
QUNS_BUSY | QUNS_RUNNING_D3D_FULL_SCREEN | QUNS_APP => Some(Busy::FullScreen),
QUNS_PRESENTATION_MODE => Some(Busy::Presenting),
_ => None,
}
}