objc2_quartz/generated/ImageKit/
IKScannerDeviceView.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_app_kit::*;
7use objc2_foundation::*;
8#[cfg(feature = "objc2-image-capture-core")]
9use objc2_image_capture_core::*;
10
11use crate::*;
12
13extern_protocol!(
14    /// A delegate of IKScannerDeviceView must conform to IKScannerDeviceViewDelegate protocol.
15    ///
16    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartz/ikscannerdeviceviewdelegate?language=objc)
17    pub unsafe trait IKScannerDeviceViewDelegate {
18        /// This message is sent for each image that gets scanned.
19        ///
20        /// Based on the IKScannerDeviceViewTransferMode the downloaded file will be saved on disk using the 'url', or returned in memory as NSData
21        #[optional]
22        #[unsafe(method(scannerDeviceView:didScanToURL:fileData:error:))]
23        #[unsafe(method_family = none)]
24        unsafe fn scannerDeviceView_didScanToURL_fileData_error(
25            &self,
26            scanner_device_view: Option<&IKScannerDeviceView>,
27            url: Option<&NSURL>,
28            data: Option<&NSData>,
29            error: Option<&NSError>,
30        );
31
32        /// For file based transfer this message is sent for each image that gets scanned.
33        ///
34        /// Based on the IKScannerDeviceViewTransferMode the downloaded file will be saved on disk using the 'url', or returned in memory as NSData
35        #[optional]
36        #[unsafe(method(scannerDeviceView:didScanToURL:error:))]
37        #[unsafe(method_family = none)]
38        unsafe fn scannerDeviceView_didScanToURL_error(
39            &self,
40            scanner_device_view: Option<&IKScannerDeviceView>,
41            url: Option<&NSURL>,
42            error: Option<&NSError>,
43        );
44
45        #[cfg(feature = "objc2-image-capture-core")]
46        /// For memory a based transfer this message is sent for every time an image band of data was scanned.
47        ///
48        /// The 'data' parameter describes the scanned image data. Note that rotation/cropping/image adjustments are not applied yet. The 'scanInfo' parameter contains additional information (rotation angle, ...) that should be applied once the scan is completed.
49        #[optional]
50        #[unsafe(method(scannerDeviceView:didScanToBandData:scanInfo:error:))]
51        #[unsafe(method_family = none)]
52        unsafe fn scannerDeviceView_didScanToBandData_scanInfo_error(
53            &self,
54            scanner_device_view: Option<&IKScannerDeviceView>,
55            data: Option<&ICScannerBandData>,
56            scan_info: Option<&NSDictionary>,
57            error: Option<&NSError>,
58        );
59
60        /// This message is sent every time the scanner device reports an error.
61        #[optional]
62        #[unsafe(method(scannerDeviceView:didEncounterError:))]
63        #[unsafe(method_family = none)]
64        unsafe fn scannerDeviceView_didEncounterError(
65            &self,
66            scanner_device_view: Option<&IKScannerDeviceView>,
67            error: Option<&NSError>,
68        );
69    }
70);
71
72/// [Apple's documentation](https://developer.apple.com/documentation/quartz/ikscannerdeviceviewtransfermode?language=objc)
73// NS_CLOSED_ENUM
74#[repr(isize)] // NSInteger
75#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
76pub enum IKScannerDeviceViewTransferMode {
77    #[doc(alias = "IKScannerDeviceViewTransferModeFileBased")]
78    FileBased = 0,
79    #[doc(alias = "IKScannerDeviceViewTransferModeMemoryBased")]
80    MemoryBased = 1,
81}
82
83unsafe impl Encode for IKScannerDeviceViewTransferMode {
84    const ENCODING: Encoding = NSInteger::ENCODING;
85}
86
87unsafe impl RefEncode for IKScannerDeviceViewTransferMode {
88    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
89}
90
91/// [Apple's documentation](https://developer.apple.com/documentation/quartz/ikscannerdeviceviewdisplaymode?language=objc)
92// NS_CLOSED_ENUM
93#[repr(isize)] // NSInteger
94#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
95pub enum IKScannerDeviceViewDisplayMode {
96    #[doc(alias = "IKScannerDeviceViewDisplayModeNone")]
97    None = -1,
98    #[doc(alias = "IKScannerDeviceViewDisplayModeSimple")]
99    Simple = 0,
100    #[doc(alias = "IKScannerDeviceViewDisplayModeAdvanced")]
101    Advanced = 1,
102}
103
104unsafe impl Encode for IKScannerDeviceViewDisplayMode {
105    const ENCODING: Encoding = NSInteger::ENCODING;
106}
107
108unsafe impl RefEncode for IKScannerDeviceViewDisplayMode {
109    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
110}
111
112extern_class!(
113    /// IKScannerDeviceView displays a UI to work with Image Capture supported scanners.
114    ///
115    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartz/ikscannerdeviceview?language=objc)
116    #[unsafe(super(NSView, NSResponder, NSObject))]
117    #[derive(Debug, PartialEq, Eq, Hash)]
118    pub struct IKScannerDeviceView;
119);
120
121extern_conformance!(
122    unsafe impl NSAccessibility for IKScannerDeviceView {}
123);
124
125extern_conformance!(
126    unsafe impl NSAccessibilityElementProtocol for IKScannerDeviceView {}
127);
128
129extern_conformance!(
130    unsafe impl NSAnimatablePropertyContainer for IKScannerDeviceView {}
131);
132
133extern_conformance!(
134    unsafe impl NSAppearanceCustomization for IKScannerDeviceView {}
135);
136
137extern_conformance!(
138    unsafe impl NSCoding for IKScannerDeviceView {}
139);
140
141extern_conformance!(
142    unsafe impl NSDraggingDestination for IKScannerDeviceView {}
143);
144
145extern_conformance!(
146    unsafe impl NSObjectProtocol for IKScannerDeviceView {}
147);
148
149extern_conformance!(
150    unsafe impl NSUserInterfaceItemIdentification for IKScannerDeviceView {}
151);
152
153impl IKScannerDeviceView {
154    extern_methods!(
155        /// delegate of the IKScannerDeviceView.
156        #[unsafe(method(delegate))]
157        #[unsafe(method_family = none)]
158        pub unsafe fn delegate(
159            &self,
160        ) -> Option<Retained<ProtocolObject<dyn IKScannerDeviceViewDelegate>>>;
161
162        /// Setter for [`delegate`][Self::delegate].
163        #[unsafe(method(setDelegate:))]
164        #[unsafe(method_family = none)]
165        pub unsafe fn setDelegate(
166            &self,
167            delegate: Option<&ProtocolObject<dyn IKScannerDeviceViewDelegate>>,
168        );
169
170        #[cfg(feature = "objc2-image-capture-core")]
171        /// the scanner device.
172        #[unsafe(method(scannerDevice))]
173        #[unsafe(method_family = none)]
174        pub unsafe fn scannerDevice(&self) -> Option<Retained<ICScannerDevice>>;
175
176        #[cfg(feature = "objc2-image-capture-core")]
177        /// Setter for [`scannerDevice`][Self::scannerDevice].
178        #[unsafe(method(setScannerDevice:))]
179        #[unsafe(method_family = none)]
180        pub unsafe fn setScannerDevice(&self, scanner_device: Option<&ICScannerDevice>);
181
182        /// current display mode.
183        #[unsafe(method(mode))]
184        #[unsafe(method_family = none)]
185        pub unsafe fn mode(&self) -> IKScannerDeviceViewDisplayMode;
186
187        /// Setter for [`mode`][Self::mode].
188        #[unsafe(method(setMode:))]
189        #[unsafe(method_family = none)]
190        pub unsafe fn setMode(&self, mode: IKScannerDeviceViewDisplayMode);
191
192        /// support a simple scanning UI.
193        #[unsafe(method(hasDisplayModeSimple))]
194        #[unsafe(method_family = none)]
195        pub unsafe fn hasDisplayModeSimple(&self) -> bool;
196
197        /// Setter for [`hasDisplayModeSimple`][Self::hasDisplayModeSimple].
198        #[unsafe(method(setHasDisplayModeSimple:))]
199        #[unsafe(method_family = none)]
200        pub unsafe fn setHasDisplayModeSimple(&self, has_display_mode_simple: bool);
201
202        /// support advanced scanning UI.
203        #[unsafe(method(hasDisplayModeAdvanced))]
204        #[unsafe(method_family = none)]
205        pub unsafe fn hasDisplayModeAdvanced(&self) -> bool;
206
207        /// Setter for [`hasDisplayModeAdvanced`][Self::hasDisplayModeAdvanced].
208        #[unsafe(method(setHasDisplayModeAdvanced:))]
209        #[unsafe(method_family = none)]
210        pub unsafe fn setHasDisplayModeAdvanced(&self, has_display_mode_advanced: bool);
211
212        /// transfer mode either file based - or - in memory.
213        #[unsafe(method(transferMode))]
214        #[unsafe(method_family = none)]
215        pub unsafe fn transferMode(&self) -> IKScannerDeviceViewTransferMode;
216
217        /// Setter for [`transferMode`][Self::transferMode].
218        #[unsafe(method(setTransferMode:))]
219        #[unsafe(method_family = none)]
220        pub unsafe fn setTransferMode(&self, transfer_mode: IKScannerDeviceViewTransferMode);
221
222        /// label for the 'Scan' control.
223        #[unsafe(method(scanControlLabel))]
224        #[unsafe(method_family = none)]
225        pub unsafe fn scanControlLabel(&self) -> Retained<NSString>;
226
227        /// Setter for [`scanControlLabel`][Self::scanControlLabel].
228        #[unsafe(method(setScanControlLabel:))]
229        #[unsafe(method_family = none)]
230        pub unsafe fn setScanControlLabel(&self, scan_control_label: Option<&NSString>);
231
232        /// label for the 'Overview' control.
233        #[unsafe(method(overviewControlLabel))]
234        #[unsafe(method_family = none)]
235        pub unsafe fn overviewControlLabel(&self) -> Retained<NSString>;
236
237        /// Setter for [`overviewControlLabel`][Self::overviewControlLabel].
238        #[unsafe(method(setOverviewControlLabel:))]
239        #[unsafe(method_family = none)]
240        pub unsafe fn setOverviewControlLabel(&self, overview_control_label: Option<&NSString>);
241
242        /// show a downloads directory control.
243        #[unsafe(method(displaysDownloadsDirectoryControl))]
244        #[unsafe(method_family = none)]
245        pub unsafe fn displaysDownloadsDirectoryControl(&self) -> bool;
246
247        /// Setter for [`displaysDownloadsDirectoryControl`][Self::displaysDownloadsDirectoryControl].
248        #[unsafe(method(setDisplaysDownloadsDirectoryControl:))]
249        #[unsafe(method_family = none)]
250        pub unsafe fn setDisplaysDownloadsDirectoryControl(
251            &self,
252            displays_downloads_directory_control: bool,
253        );
254
255        /// downloads directory.
256        #[unsafe(method(downloadsDirectory))]
257        #[unsafe(method_family = none)]
258        pub unsafe fn downloadsDirectory(&self) -> Option<Retained<NSURL>>;
259
260        /// Setter for [`downloadsDirectory`][Self::downloadsDirectory].
261        #[unsafe(method(setDownloadsDirectory:))]
262        #[unsafe(method_family = none)]
263        pub unsafe fn setDownloadsDirectory(&self, downloads_directory: Option<&NSURL>);
264
265        /// document name.
266        #[unsafe(method(documentName))]
267        #[unsafe(method_family = none)]
268        pub unsafe fn documentName(&self) -> Retained<NSString>;
269
270        /// Setter for [`documentName`][Self::documentName].
271        #[unsafe(method(setDocumentName:))]
272        #[unsafe(method_family = none)]
273        pub unsafe fn setDocumentName(&self, document_name: Option<&NSString>);
274
275        /// show a postprocessing application control.
276        #[unsafe(method(displaysPostProcessApplicationControl))]
277        #[unsafe(method_family = none)]
278        pub unsafe fn displaysPostProcessApplicationControl(&self) -> bool;
279
280        /// Setter for [`displaysPostProcessApplicationControl`][Self::displaysPostProcessApplicationControl].
281        #[unsafe(method(setDisplaysPostProcessApplicationControl:))]
282        #[unsafe(method_family = none)]
283        pub unsafe fn setDisplaysPostProcessApplicationControl(
284            &self,
285            displays_post_process_application_control: bool,
286        );
287
288        /// postprocessing application.
289        #[unsafe(method(postProcessApplication))]
290        #[unsafe(method_family = none)]
291        pub unsafe fn postProcessApplication(&self) -> Option<Retained<NSURL>>;
292
293        /// Setter for [`postProcessApplication`][Self::postProcessApplication].
294        #[unsafe(method(setPostProcessApplication:))]
295        #[unsafe(method_family = none)]
296        pub unsafe fn setPostProcessApplication(&self, post_process_application: Option<&NSURL>);
297    );
298}
299
300/// Methods declared on superclass `NSView`.
301impl IKScannerDeviceView {
302    extern_methods!(
303        #[unsafe(method(initWithFrame:))]
304        #[unsafe(method_family = init)]
305        pub unsafe fn initWithFrame(this: Allocated<Self>, frame_rect: NSRect) -> Retained<Self>;
306
307        #[unsafe(method(initWithCoder:))]
308        #[unsafe(method_family = init)]
309        pub unsafe fn initWithCoder(
310            this: Allocated<Self>,
311            coder: &NSCoder,
312        ) -> Option<Retained<Self>>;
313    );
314}
315
316/// Methods declared on superclass `NSResponder`.
317impl IKScannerDeviceView {
318    extern_methods!(
319        #[unsafe(method(init))]
320        #[unsafe(method_family = init)]
321        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
322    );
323}
324
325/// Methods declared on superclass `NSObject`.
326impl IKScannerDeviceView {
327    extern_methods!(
328        #[unsafe(method(new))]
329        #[unsafe(method_family = new)]
330        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
331    );
332}