use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIPrintInfoOutputType(pub NSInteger);
impl UIPrintInfoOutputType {
pub const UIPrintInfoOutputGeneral: Self = Self(0);
pub const UIPrintInfoOutputPhoto: Self = Self(1);
pub const UIPrintInfoOutputGrayscale: Self = Self(2);
pub const UIPrintInfoOutputPhotoGrayscale: Self = Self(3);
}
unsafe impl Encode for UIPrintInfoOutputType {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIPrintInfoOutputType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIPrintInfoOrientation(pub NSInteger);
impl UIPrintInfoOrientation {
#[doc(alias = "UIPrintInfoOrientationPortrait")]
pub const Portrait: Self = Self(0);
#[doc(alias = "UIPrintInfoOrientationLandscape")]
pub const Landscape: Self = Self(1);
}
unsafe impl Encode for UIPrintInfoOrientation {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIPrintInfoOrientation {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIPrintInfoDuplex(pub NSInteger);
impl UIPrintInfoDuplex {
#[doc(alias = "UIPrintInfoDuplexNone")]
pub const None: Self = Self(0);
#[doc(alias = "UIPrintInfoDuplexLongEdge")]
pub const LongEdge: Self = Self(1);
#[doc(alias = "UIPrintInfoDuplexShortEdge")]
pub const ShortEdge: Self = Self(2);
}
unsafe impl Encode for UIPrintInfoDuplex {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIPrintInfoDuplex {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UIPrintInfo;
unsafe impl ClassType for UIPrintInfo {
type Super = NSObject;
type Mutability = MainThreadOnly;
}
);
unsafe impl NSCoding for UIPrintInfo {}
unsafe impl NSCopying for UIPrintInfo {}
unsafe impl NSObjectProtocol for UIPrintInfo {}
extern_methods!(
unsafe impl UIPrintInfo {
#[method_id(@__retain_semantics Init initWithCoder:)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
#[method_id(@__retain_semantics Other printInfo)]
pub unsafe fn printInfo(mtm: MainThreadMarker) -> Retained<UIPrintInfo>;
#[method_id(@__retain_semantics Other printInfoWithDictionary:)]
pub unsafe fn printInfoWithDictionary(
dictionary: Option<&NSDictionary>,
mtm: MainThreadMarker,
) -> Retained<UIPrintInfo>;
#[method_id(@__retain_semantics Other printerID)]
pub unsafe fn printerID(&self) -> Option<Retained<NSString>>;
#[method(setPrinterID:)]
pub unsafe fn setPrinterID(&self, printer_id: Option<&NSString>);
#[method_id(@__retain_semantics Other jobName)]
pub unsafe fn jobName(&self) -> Retained<NSString>;
#[method(setJobName:)]
pub unsafe fn setJobName(&self, job_name: &NSString);
#[method(outputType)]
pub unsafe fn outputType(&self) -> UIPrintInfoOutputType;
#[method(setOutputType:)]
pub unsafe fn setOutputType(&self, output_type: UIPrintInfoOutputType);
#[method(orientation)]
pub unsafe fn orientation(&self) -> UIPrintInfoOrientation;
#[method(setOrientation:)]
pub unsafe fn setOrientation(&self, orientation: UIPrintInfoOrientation);
#[method(duplex)]
pub unsafe fn duplex(&self) -> UIPrintInfoDuplex;
#[method(setDuplex:)]
pub unsafe fn setDuplex(&self, duplex: UIPrintInfoDuplex);
#[method_id(@__retain_semantics Other dictionaryRepresentation)]
pub unsafe fn dictionaryRepresentation(&self) -> Retained<NSDictionary>;
}
);
extern_methods!(
unsafe impl UIPrintInfo {
#[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>;
}
);