use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIPrintRenderingQuality(pub NSInteger);
impl UIPrintRenderingQuality {
#[doc(alias = "UIPrintRenderingQualityBest")]
pub const Best: Self = Self(0);
#[doc(alias = "UIPrintRenderingQualityResponsive")]
pub const Responsive: Self = Self(1);
}
unsafe impl Encode for UIPrintRenderingQuality {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIPrintRenderingQuality {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UIPrintPageRenderer;
unsafe impl ClassType for UIPrintPageRenderer {
type Super = NSObject;
type Mutability = MainThreadOnly;
}
);
unsafe impl NSObjectProtocol for UIPrintPageRenderer {}
extern_methods!(
unsafe impl UIPrintPageRenderer {
#[method(headerHeight)]
pub unsafe fn headerHeight(&self) -> CGFloat;
#[method(setHeaderHeight:)]
pub unsafe fn setHeaderHeight(&self, header_height: CGFloat);
#[method(footerHeight)]
pub unsafe fn footerHeight(&self) -> CGFloat;
#[method(setFooterHeight:)]
pub unsafe fn setFooterHeight(&self, footer_height: CGFloat);
#[method(paperRect)]
pub unsafe fn paperRect(&self) -> CGRect;
#[method(printableRect)]
pub unsafe fn printableRect(&self) -> CGRect;
#[method(numberOfPages)]
pub unsafe fn numberOfPages(&self) -> NSInteger;
#[cfg(feature = "UIPrintFormatter")]
#[method_id(@__retain_semantics Other printFormatters)]
pub unsafe fn printFormatters(&self) -> Option<Retained<NSArray<UIPrintFormatter>>>;
#[cfg(feature = "UIPrintFormatter")]
#[method(setPrintFormatters:)]
pub unsafe fn setPrintFormatters(
&self,
print_formatters: Option<&NSArray<UIPrintFormatter>>,
);
#[cfg(feature = "UIPrintFormatter")]
#[method_id(@__retain_semantics Other printFormattersForPageAtIndex:)]
pub unsafe fn printFormattersForPageAtIndex(
&self,
page_index: NSInteger,
) -> Option<Retained<NSArray<UIPrintFormatter>>>;
#[cfg(feature = "UIPrintFormatter")]
#[method(addPrintFormatter:startingAtPageAtIndex:)]
pub unsafe fn addPrintFormatter_startingAtPageAtIndex(
&self,
formatter: &UIPrintFormatter,
page_index: NSInteger,
);
#[method(currentRenderingQualityForRequestedRenderingQuality:)]
pub unsafe fn currentRenderingQualityForRequestedRenderingQuality(
&self,
requested_rendering_quality: UIPrintRenderingQuality,
) -> UIPrintRenderingQuality;
#[method(prepareForDrawingPages:)]
pub unsafe fn prepareForDrawingPages(&self, range: NSRange);
#[method(drawPageAtIndex:inRect:)]
pub unsafe fn drawPageAtIndex_inRect(&self, page_index: NSInteger, printable_rect: CGRect);
#[cfg(feature = "UIPrintFormatter")]
#[method(drawPrintFormatter:forPageAtIndex:)]
pub unsafe fn drawPrintFormatter_forPageAtIndex(
&self,
print_formatter: &UIPrintFormatter,
page_index: NSInteger,
);
#[method(drawHeaderForPageAtIndex:inRect:)]
pub unsafe fn drawHeaderForPageAtIndex_inRect(
&self,
page_index: NSInteger,
header_rect: CGRect,
);
#[method(drawContentForPageAtIndex:inRect:)]
pub unsafe fn drawContentForPageAtIndex_inRect(
&self,
page_index: NSInteger,
content_rect: CGRect,
);
#[method(drawFooterForPageAtIndex:inRect:)]
pub unsafe fn drawFooterForPageAtIndex_inRect(
&self,
page_index: NSInteger,
footer_rect: CGRect,
);
}
);
extern_methods!(
unsafe impl UIPrintPageRenderer {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
}
);