use objc::runtime::Object;
use objc::{class, msg_send, sel, sel_impl};
use objc_id::Id;
use crate::foundation::{id, NSString};
use crate::uikit::scene::SessionRole;
#[derive(Debug)]
pub struct SceneConfig(Id<Object>);
impl SceneConfig {
pub fn new(name: &str, role: SessionRole) -> Self {
SceneConfig(unsafe {
let name = NSString::new(name);
let role = NSString::from(role);
let cls = class!(UISceneConfiguration);
let config: id = msg_send![cls, configurationWithName:name sessionRole:role];
let _: () = msg_send![config, setSceneClass: class!(UIWindowScene)];
let _: () = msg_send![config, setDelegateClass: class!(RSTWindowSceneDelegate)];
Id::from_ptr(config)
})
}
pub fn into_inner(mut self) -> id {
&mut *self.0
}
}