use objc::{msg_send, sel, sel_impl};
use crate::{
foundation::NSString,
object,
objective_c_runtime::{
macros::interface_impl,
traits::{FromId, PNSObject},
},
};
object! {
unsafe pub struct CNSocialProfile;
}
#[interface_impl(NSObject)]
impl CNSocialProfile {
#[method]
pub fn init_with_url_string_username_user_identifier_service(
&mut self,
url_string: NSString,
username: NSString,
user_identifier: NSString,
service: NSString,
) -> Self
where
Self: Sized + FromId,
{
unsafe {
Self::from_id(
msg_send![self.m_self(), initWithUrlString: url_string username: username userIdentifier: user_identifier service: service],
)
}
}
#[property]
pub fn username(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), username]) }
}
#[property]
pub fn service(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), service]) }
}
#[property]
pub fn url_string(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), urlString]) }
}
#[property]
pub fn user_identifier(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), userIdentifier]) }
}
#[method]
pub fn localized_string_for_key(key: NSString) -> NSString {
unsafe { NSString::from_id(msg_send![Self::m_class(), localizedStringForKey: key]) }
}
#[method]
pub fn localized_string_for_service(service: NSString) -> NSString {
unsafe {
NSString::from_id(msg_send![
Self::m_class(),
localizedStringForService: service
])
}
}
}