use core::cell::UnsafeCell;
use core::ffi::*;
use core::marker::{PhantomData, PhantomPinned};
use core::ptr::NonNull;
#[cfg(feature = "dispatch2")]
use dispatch2::*;
#[cfg(feature = "objc2")]
use objc2::__framework_prelude::*;
use objc2_core_foundation::*;
#[cfg(feature = "objc2-core-graphics")]
use objc2_core_graphics::*;
use crate::*;
#[doc(alias = "QLThumbnailRef")]
#[repr(C)]
pub struct QLThumbnail {
inner: [u8; 0],
_p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
}
cf_type!(
unsafe impl QLThumbnail {}
);
#[cfg(feature = "objc2")]
cf_objc2_type!(
unsafe impl RefEncode<"__QLThumbnail"> for QLThumbnail {}
);
unsafe impl ConcreteType for QLThumbnail {
#[doc(alias = "QLThumbnailGetTypeID")]
#[inline]
fn type_id() -> CFTypeID {
extern "C-unwind" {
fn QLThumbnailGetTypeID() -> CFTypeID;
}
unsafe { QLThumbnailGetTypeID() }
}
}
impl QLThumbnail {
#[doc(alias = "QLThumbnailCreate")]
#[deprecated = "Use QLThumbnailGenerationRequest in QuickLookThumbnailing to generate thumbnails."]
#[inline]
pub unsafe fn new(
allocator: Option<&CFAllocator>,
url: Option<&CFURL>,
max_thumbnail_size: CGSize,
options: Option<&CFDictionary>,
) -> Option<CFRetained<QLThumbnail>> {
extern "C-unwind" {
fn QLThumbnailCreate(
allocator: Option<&CFAllocator>,
url: Option<&CFURL>,
max_thumbnail_size: CGSize,
options: Option<&CFDictionary>,
) -> Option<NonNull<QLThumbnail>>;
}
let ret = unsafe { QLThumbnailCreate(allocator, url, max_thumbnail_size, options) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
#[doc(alias = "QLThumbnailCopyDocumentURL")]
#[deprecated = "Use QuickLookThumbnailing for thumbnails."]
#[inline]
pub unsafe fn document_url(&self) -> Option<CFRetained<CFURL>> {
extern "C-unwind" {
fn QLThumbnailCopyDocumentURL(thumbnail: &QLThumbnail) -> Option<NonNull<CFURL>>;
}
let ret = unsafe { QLThumbnailCopyDocumentURL(self) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
#[doc(alias = "QLThumbnailGetMaximumSize")]
#[deprecated = "Use QLThumbnailGenerationRequest in QuickLookThumbnailing."]
#[inline]
pub unsafe fn maximum_size(&self) -> CGSize {
extern "C-unwind" {
fn QLThumbnailGetMaximumSize(thumbnail: &QLThumbnail) -> CGSize;
}
unsafe { QLThumbnailGetMaximumSize(self) }
}
#[doc(alias = "QLThumbnailCopyOptions")]
#[deprecated = "Use QuickLookThumbnailing for thumbnails."]
#[inline]
pub unsafe fn options(&self) -> Option<CFRetained<CFDictionary>> {
extern "C-unwind" {
fn QLThumbnailCopyOptions(thumbnail: &QLThumbnail) -> Option<NonNull<CFDictionary>>;
}
let ret = unsafe { QLThumbnailCopyOptions(self) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
#[doc(alias = "QLThumbnailDispatchAsync")]
#[cfg(feature = "dispatch2")]
#[deprecated = "Use QLThumbnailGenerator in QuickLookThumbnailing to generate thumbnails."]
#[inline]
pub unsafe fn dispatch_async(
&self,
queue: Option<&DispatchQueue>,
completion: dispatch_block_t,
) {
extern "C-unwind" {
fn QLThumbnailDispatchAsync(
thumbnail: &QLThumbnail,
queue: Option<&DispatchQueue>,
completion: dispatch_block_t,
);
}
unsafe { QLThumbnailDispatchAsync(self, queue, completion) }
}
#[doc(alias = "QLThumbnailCopyImage")]
#[cfg(feature = "objc2-core-graphics")]
#[deprecated = "Use QuickLookThumbnailing for thumbnails."]
#[inline]
pub unsafe fn image(&self) -> Option<CFRetained<CGImage>> {
extern "C-unwind" {
fn QLThumbnailCopyImage(thumbnail: &QLThumbnail) -> Option<NonNull<CGImage>>;
}
let ret = unsafe { QLThumbnailCopyImage(self) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
#[doc(alias = "QLThumbnailGetContentRect")]
#[deprecated = "Use QuickLookThumbnailing for thumbnails."]
#[inline]
pub unsafe fn content_rect(&self) -> CGRect {
extern "C-unwind" {
fn QLThumbnailGetContentRect(thumbnail: &QLThumbnail) -> CGRect;
}
unsafe { QLThumbnailGetContentRect(self) }
}
#[doc(alias = "QLThumbnailCancel")]
#[deprecated = "Use [QLThumbnailGenerator cancelRequest:] in QuickLookThumbnailing."]
#[inline]
pub unsafe fn cancel(&self) {
extern "C-unwind" {
fn QLThumbnailCancel(thumbnail: &QLThumbnail);
}
unsafe { QLThumbnailCancel(self) }
}
#[doc(alias = "QLThumbnailIsCancelled")]
#[deprecated = "Use QuickLookThumbnailing for thumbnails."]
#[inline]
pub unsafe fn is_cancelled(&self) -> bool {
extern "C-unwind" {
fn QLThumbnailIsCancelled(thumbnail: &QLThumbnail) -> Boolean;
}
let ret = unsafe { QLThumbnailIsCancelled(self) };
ret != 0
}
}
#[deprecated = "renamed to `QLThumbnail::new`"]
#[inline]
pub unsafe extern "C-unwind" fn QLThumbnailCreate(
allocator: Option<&CFAllocator>,
url: Option<&CFURL>,
max_thumbnail_size: CGSize,
options: Option<&CFDictionary>,
) -> Option<CFRetained<QLThumbnail>> {
extern "C-unwind" {
fn QLThumbnailCreate(
allocator: Option<&CFAllocator>,
url: Option<&CFURL>,
max_thumbnail_size: CGSize,
options: Option<&CFDictionary>,
) -> Option<NonNull<QLThumbnail>>;
}
let ret = unsafe { QLThumbnailCreate(allocator, url, max_thumbnail_size, options) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
#[deprecated = "renamed to `QLThumbnail::document_url`"]
#[inline]
pub unsafe extern "C-unwind" fn QLThumbnailCopyDocumentURL(
thumbnail: &QLThumbnail,
) -> Option<CFRetained<CFURL>> {
extern "C-unwind" {
fn QLThumbnailCopyDocumentURL(thumbnail: &QLThumbnail) -> Option<NonNull<CFURL>>;
}
let ret = unsafe { QLThumbnailCopyDocumentURL(thumbnail) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
extern "C-unwind" {
#[deprecated = "renamed to `QLThumbnail::maximum_size`"]
pub fn QLThumbnailGetMaximumSize(thumbnail: &QLThumbnail) -> CGSize;
}
#[deprecated = "renamed to `QLThumbnail::options`"]
#[inline]
pub unsafe extern "C-unwind" fn QLThumbnailCopyOptions(
thumbnail: &QLThumbnail,
) -> Option<CFRetained<CFDictionary>> {
extern "C-unwind" {
fn QLThumbnailCopyOptions(thumbnail: &QLThumbnail) -> Option<NonNull<CFDictionary>>;
}
let ret = unsafe { QLThumbnailCopyOptions(thumbnail) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
extern "C-unwind" {
#[cfg(feature = "dispatch2")]
#[deprecated = "renamed to `QLThumbnail::dispatch_async`"]
pub fn QLThumbnailDispatchAsync(
thumbnail: &QLThumbnail,
queue: Option<&DispatchQueue>,
completion: dispatch_block_t,
);
}
#[cfg(feature = "objc2-core-graphics")]
#[deprecated = "renamed to `QLThumbnail::image`"]
#[inline]
pub unsafe extern "C-unwind" fn QLThumbnailCopyImage(
thumbnail: &QLThumbnail,
) -> Option<CFRetained<CGImage>> {
extern "C-unwind" {
fn QLThumbnailCopyImage(thumbnail: &QLThumbnail) -> Option<NonNull<CGImage>>;
}
let ret = unsafe { QLThumbnailCopyImage(thumbnail) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
extern "C-unwind" {
#[deprecated = "renamed to `QLThumbnail::content_rect`"]
pub fn QLThumbnailGetContentRect(thumbnail: &QLThumbnail) -> CGRect;
}
extern "C-unwind" {
#[deprecated = "renamed to `QLThumbnail::cancel`"]
pub fn QLThumbnailCancel(thumbnail: &QLThumbnail);
}
#[deprecated = "renamed to `QLThumbnail::is_cancelled`"]
#[inline]
pub unsafe extern "C-unwind" fn QLThumbnailIsCancelled(thumbnail: &QLThumbnail) -> bool {
extern "C-unwind" {
fn QLThumbnailIsCancelled(thumbnail: &QLThumbnail) -> Boolean;
}
let ret = unsafe { QLThumbnailIsCancelled(thumbnail) };
ret != 0
}