use objc::{msg_send, sel, sel_impl};
use crate::{
object,
objective_c_runtime::traits::{FromId, PNSObject},
};
use super::{interface_impl, NSApplicationActivationOptions};
object! {
unsafe pub struct NSRunningApplication;
}
#[interface_impl(NSObject)]
impl NSRunningApplication {
#[property]
pub fn current_application() -> Self
where
Self: Sized + FromId,
{
unsafe { Self::from_id(msg_send![Self::m_class(), currentApplication]) }
}
#[property]
pub fn is_active(&self) -> bool {
unsafe { msg_send![self.m_self(), isActive] }
}
#[method]
pub fn activate_with_options(&mut self, options: NSApplicationActivationOptions) {
unsafe { msg_send![self.m_self(), activateWithOptions: options] }
}
}