use core::cell::UnsafeCell;
use core::ffi::*;
use core::marker::{PhantomData, PhantomPinned};
use core::ptr::NonNull;
#[cfg(feature = "objc2")]
use objc2::__framework_prelude::*;
use objc2_core_foundation::*;
use crate::*;
#[doc(alias = "CGPDFPageRef")]
#[repr(C)]
pub struct CGPDFPage {
inner: [u8; 0],
_p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
}
cf_type!(
unsafe impl CGPDFPage {}
);
#[cfg(feature = "objc2")]
cf_objc2_type!(
unsafe impl RefEncode<"CGPDFPage"> for CGPDFPage {}
);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CGPDFBox(pub i32);
impl CGPDFBox {
#[doc(alias = "kCGPDFMediaBox")]
pub const MediaBox: Self = Self(0);
#[doc(alias = "kCGPDFCropBox")]
pub const CropBox: Self = Self(1);
#[doc(alias = "kCGPDFBleedBox")]
pub const BleedBox: Self = Self(2);
#[doc(alias = "kCGPDFTrimBox")]
pub const TrimBox: Self = Self(3);
#[doc(alias = "kCGPDFArtBox")]
pub const ArtBox: Self = Self(4);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for CGPDFBox {
const ENCODING: Encoding = i32::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for CGPDFBox {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
impl CGPDFPage {
#[doc(alias = "CGPDFPageGetDocument")]
#[cfg(feature = "CGPDFDocument")]
#[inline]
pub fn document(page: Option<&CGPDFPage>) -> Option<CFRetained<CGPDFDocument>> {
extern "C-unwind" {
fn CGPDFPageGetDocument(page: Option<&CGPDFPage>) -> Option<NonNull<CGPDFDocument>>;
}
let ret = unsafe { CGPDFPageGetDocument(page) };
ret.map(|ret| unsafe { CFRetained::retain(ret) })
}
#[doc(alias = "CGPDFPageGetPageNumber")]
#[inline]
pub fn page_number(page: Option<&CGPDFPage>) -> usize {
extern "C-unwind" {
fn CGPDFPageGetPageNumber(page: Option<&CGPDFPage>) -> usize;
}
unsafe { CGPDFPageGetPageNumber(page) }
}
#[doc(alias = "CGPDFPageGetBoxRect")]
#[inline]
pub fn box_rect(page: Option<&CGPDFPage>, r#box: CGPDFBox) -> CGRect {
extern "C-unwind" {
fn CGPDFPageGetBoxRect(page: Option<&CGPDFPage>, r#box: CGPDFBox) -> CGRect;
}
unsafe { CGPDFPageGetBoxRect(page, r#box) }
}
#[doc(alias = "CGPDFPageGetRotationAngle")]
#[inline]
pub fn rotation_angle(page: Option<&CGPDFPage>) -> c_int {
extern "C-unwind" {
fn CGPDFPageGetRotationAngle(page: Option<&CGPDFPage>) -> c_int;
}
unsafe { CGPDFPageGetRotationAngle(page) }
}
#[doc(alias = "CGPDFPageGetDrawingTransform")]
#[inline]
pub fn drawing_transform(
page: Option<&CGPDFPage>,
r#box: CGPDFBox,
rect: CGRect,
rotate: c_int,
preserve_aspect_ratio: bool,
) -> CGAffineTransform {
extern "C-unwind" {
fn CGPDFPageGetDrawingTransform(
page: Option<&CGPDFPage>,
r#box: CGPDFBox,
rect: CGRect,
rotate: c_int,
preserve_aspect_ratio: bool,
) -> CGAffineTransform;
}
unsafe { CGPDFPageGetDrawingTransform(page, r#box, rect, rotate, preserve_aspect_ratio) }
}
#[doc(alias = "CGPDFPageGetDictionary")]
#[cfg(feature = "CGPDFDictionary")]
#[inline]
pub fn dictionary(page: Option<&CGPDFPage>) -> CGPDFDictionaryRef {
extern "C-unwind" {
fn CGPDFPageGetDictionary(page: Option<&CGPDFPage>) -> CGPDFDictionaryRef;
}
unsafe { CGPDFPageGetDictionary(page) }
}
}
unsafe impl ConcreteType for CGPDFPage {
#[doc(alias = "CGPDFPageGetTypeID")]
#[inline]
fn type_id() -> CFTypeID {
extern "C-unwind" {
fn CGPDFPageGetTypeID() -> CFTypeID;
}
unsafe { CGPDFPageGetTypeID() }
}
}
#[cfg(feature = "CGPDFDocument")]
#[deprecated = "renamed to `CGPDFPage::document`"]
#[inline]
pub extern "C-unwind" fn CGPDFPageGetDocument(
page: Option<&CGPDFPage>,
) -> Option<CFRetained<CGPDFDocument>> {
extern "C-unwind" {
fn CGPDFPageGetDocument(page: Option<&CGPDFPage>) -> Option<NonNull<CGPDFDocument>>;
}
let ret = unsafe { CGPDFPageGetDocument(page) };
ret.map(|ret| unsafe { CFRetained::retain(ret) })
}
#[deprecated = "renamed to `CGPDFPage::page_number`"]
#[inline]
pub extern "C-unwind" fn CGPDFPageGetPageNumber(page: Option<&CGPDFPage>) -> usize {
extern "C-unwind" {
fn CGPDFPageGetPageNumber(page: Option<&CGPDFPage>) -> usize;
}
unsafe { CGPDFPageGetPageNumber(page) }
}
#[deprecated = "renamed to `CGPDFPage::box_rect`"]
#[inline]
pub extern "C-unwind" fn CGPDFPageGetBoxRect(page: Option<&CGPDFPage>, r#box: CGPDFBox) -> CGRect {
extern "C-unwind" {
fn CGPDFPageGetBoxRect(page: Option<&CGPDFPage>, r#box: CGPDFBox) -> CGRect;
}
unsafe { CGPDFPageGetBoxRect(page, r#box) }
}
#[deprecated = "renamed to `CGPDFPage::rotation_angle`"]
#[inline]
pub extern "C-unwind" fn CGPDFPageGetRotationAngle(page: Option<&CGPDFPage>) -> c_int {
extern "C-unwind" {
fn CGPDFPageGetRotationAngle(page: Option<&CGPDFPage>) -> c_int;
}
unsafe { CGPDFPageGetRotationAngle(page) }
}
#[deprecated = "renamed to `CGPDFPage::drawing_transform`"]
#[inline]
pub extern "C-unwind" fn CGPDFPageGetDrawingTransform(
page: Option<&CGPDFPage>,
r#box: CGPDFBox,
rect: CGRect,
rotate: c_int,
preserve_aspect_ratio: bool,
) -> CGAffineTransform {
extern "C-unwind" {
fn CGPDFPageGetDrawingTransform(
page: Option<&CGPDFPage>,
r#box: CGPDFBox,
rect: CGRect,
rotate: c_int,
preserve_aspect_ratio: bool,
) -> CGAffineTransform;
}
unsafe { CGPDFPageGetDrawingTransform(page, r#box, rect, rotate, preserve_aspect_ratio) }
}
#[cfg(feature = "CGPDFDictionary")]
#[deprecated = "renamed to `CGPDFPage::dictionary`"]
#[inline]
pub extern "C-unwind" fn CGPDFPageGetDictionary(page: Option<&CGPDFPage>) -> CGPDFDictionaryRef {
extern "C-unwind" {
fn CGPDFPageGetDictionary(page: Option<&CGPDFPage>) -> CGPDFDictionaryRef;
}
unsafe { CGPDFPageGetDictionary(page) }
}