use core::ptr::NonNull;
#[cfg(feature = "objc2")]
use objc2::__framework_prelude::*;
use objc2_core_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct LSAcceptanceFlags(pub OptionBits);
bitflags::bitflags! {
impl LSAcceptanceFlags: OptionBits {
#[doc(alias = "kLSAcceptDefault")]
const AcceptDefault = 0x00000001;
#[doc(alias = "kLSAcceptAllowLoginUI")]
const AcceptAllowLoginUI = 0x00000002;
}
}
#[cfg(feature = "objc2")]
unsafe impl Encode for LSAcceptanceFlags {
const ENCODING: Encoding = OptionBits::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for LSAcceptanceFlags {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(feature = "LSConstants")]
#[deprecated = "Use -[NSWorkspace URLForApplicationToOpenURL:] instead."]
#[inline]
pub unsafe extern "C-unwind" fn LSCopyDefaultApplicationURLForURL(
in_url: &CFURL,
in_role_mask: LSRolesMask,
out_error: *mut *mut CFError,
) -> Option<CFRetained<CFURL>> {
extern "C-unwind" {
fn LSCopyDefaultApplicationURLForURL(
in_url: &CFURL,
in_role_mask: LSRolesMask,
out_error: *mut *mut CFError,
) -> Option<NonNull<CFURL>>;
}
let ret = unsafe { LSCopyDefaultApplicationURLForURL(in_url, in_role_mask, out_error) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
#[cfg(feature = "LSConstants")]
#[deprecated = "Use -[NSWorkspace URLForApplicationToOpenContentType:] instead."]
#[inline]
pub unsafe extern "C-unwind" fn LSCopyDefaultApplicationURLForContentType(
in_content_type: &CFString,
in_role_mask: LSRolesMask,
out_error: *mut *mut CFError,
) -> Option<CFRetained<CFURL>> {
extern "C-unwind" {
fn LSCopyDefaultApplicationURLForContentType(
in_content_type: &CFString,
in_role_mask: LSRolesMask,
out_error: *mut *mut CFError,
) -> Option<NonNull<CFURL>>;
}
let ret = unsafe {
LSCopyDefaultApplicationURLForContentType(in_content_type, in_role_mask, out_error)
};
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
#[deprecated = "Use -[NSWorkspace URLsForApplicationsWithBundleIdentifier:] instead."]
#[inline]
pub unsafe extern "C-unwind" fn LSCopyApplicationURLsForBundleIdentifier(
in_bundle_identifier: &CFString,
out_error: *mut *mut CFError,
) -> Option<CFRetained<CFArray>> {
extern "C-unwind" {
fn LSCopyApplicationURLsForBundleIdentifier(
in_bundle_identifier: &CFString,
out_error: *mut *mut CFError,
) -> Option<NonNull<CFArray>>;
}
let ret = unsafe { LSCopyApplicationURLsForBundleIdentifier(in_bundle_identifier, out_error) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
#[cfg(feature = "LSConstants")]
#[deprecated = "Use -[NSWorkspace URLsForApplicationsToOpenURL:] instead."]
#[inline]
pub unsafe extern "C-unwind" fn LSCopyApplicationURLsForURL(
in_url: &CFURL,
in_role_mask: LSRolesMask,
) -> Option<CFRetained<CFArray>> {
extern "C-unwind" {
fn LSCopyApplicationURLsForURL(
in_url: &CFURL,
in_role_mask: LSRolesMask,
) -> Option<NonNull<CFArray>>;
}
let ret = unsafe { LSCopyApplicationURLsForURL(in_url, in_role_mask) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
extern "C-unwind" {
#[cfg(feature = "LSConstants")]
pub fn LSCanURLAcceptURL(
in_item_url: &CFURL,
in_target_url: &CFURL,
in_role_mask: LSRolesMask,
in_flags: LSAcceptanceFlags,
out_accepts_item: NonNull<Boolean>,
) -> OSStatus;
}
#[inline]
pub unsafe extern "C-unwind" fn LSRegisterURL(in_url: &CFURL, in_update: bool) -> OSStatus {
extern "C-unwind" {
fn LSRegisterURL(in_url: &CFURL, in_update: Boolean) -> OSStatus;
}
unsafe { LSRegisterURL(in_url, in_update as _) }
}
#[cfg(feature = "LSConstants")]
#[deprecated = "Use -[NSWorkspace URLForApplicationToOpenContentType:] instead."]
#[inline]
pub unsafe extern "C-unwind" fn LSCopyDefaultRoleHandlerForContentType(
in_content_type: &CFString,
in_role: LSRolesMask,
) -> Option<CFRetained<CFString>> {
extern "C-unwind" {
fn LSCopyDefaultRoleHandlerForContentType(
in_content_type: &CFString,
in_role: LSRolesMask,
) -> Option<NonNull<CFString>>;
}
let ret = unsafe { LSCopyDefaultRoleHandlerForContentType(in_content_type, in_role) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
#[cfg(feature = "LSConstants")]
#[deprecated = "Use -[NSWorkspace URLsForApplicationsToOpenContentType:] instead."]
#[inline]
pub unsafe extern "C-unwind" fn LSCopyAllRoleHandlersForContentType(
in_content_type: &CFString,
in_role: LSRolesMask,
) -> Option<CFRetained<CFArray>> {
extern "C-unwind" {
fn LSCopyAllRoleHandlersForContentType(
in_content_type: &CFString,
in_role: LSRolesMask,
) -> Option<NonNull<CFArray>>;
}
let ret = unsafe { LSCopyAllRoleHandlersForContentType(in_content_type, in_role) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
extern "C-unwind" {
#[cfg(feature = "LSConstants")]
#[deprecated = "Use -[NSWorkspace setDefaultApplicationAtURL:toOpenContentType:completionHandler:] instead."]
pub fn LSSetDefaultRoleHandlerForContentType(
in_content_type: &CFString,
in_role: LSRolesMask,
in_handler_bundle_id: &CFString,
) -> OSStatus;
}
#[deprecated = "Use -[NSWorkspace URLForApplicationToOpenURL:] instead."]
#[inline]
pub unsafe extern "C-unwind" fn LSCopyDefaultHandlerForURLScheme(
in_url_scheme: &CFString,
) -> Option<CFRetained<CFString>> {
extern "C-unwind" {
fn LSCopyDefaultHandlerForURLScheme(in_url_scheme: &CFString) -> Option<NonNull<CFString>>;
}
let ret = unsafe { LSCopyDefaultHandlerForURLScheme(in_url_scheme) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
#[deprecated = "Use -[NSWorkspace URLsForApplicationsToOpenURL:] instead."]
#[inline]
pub unsafe extern "C-unwind" fn LSCopyAllHandlersForURLScheme(
in_url_scheme: &CFString,
) -> Option<CFRetained<CFArray>> {
extern "C-unwind" {
fn LSCopyAllHandlersForURLScheme(in_url_scheme: &CFString) -> Option<NonNull<CFArray>>;
}
let ret = unsafe { LSCopyAllHandlersForURLScheme(in_url_scheme) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
extern "C-unwind" {
#[deprecated = "Use -[NSWorkspace setDefaultApplicationAtURL:toOpenURLsWithScheme:completionHandler:] instead."]
pub fn LSSetDefaultHandlerForURLScheme(
in_url_scheme: &CFString,
in_handler_bundle_id: &CFString,
) -> OSStatus;
}