objc2_quartz/generated/ImageKit/
IKCameraDeviceView.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 IKCameraDeviceView must conform to IKCameraDeviceViewDelegate protocol.
15    ///
16    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartz/ikcameradeviceviewdelegate?language=objc)
17    pub unsafe trait IKCameraDeviceViewDelegate {
18        /// This message is sent when the user selection did change.
19        #[optional]
20        #[unsafe(method(cameraDeviceViewSelectionDidChange:))]
21        #[unsafe(method_family = none)]
22        unsafe fn cameraDeviceViewSelectionDidChange(
23            &self,
24            camera_device_view: Option<&IKCameraDeviceView>,
25        );
26
27        #[cfg(feature = "objc2-image-capture-core")]
28        /// This message is sent for each file that gets downloaded.
29        ///
30        /// Based on the IKCameraDeviceViewDisplayMode the downloaded file will be saved on disk using the 'url', or returned in memory as NSData
31        #[optional]
32        #[unsafe(method(cameraDeviceView:didDownloadFile:location:fileData:error:))]
33        #[unsafe(method_family = none)]
34        unsafe fn cameraDeviceView_didDownloadFile_location_fileData_error(
35            &self,
36            camera_device_view: Option<&IKCameraDeviceView>,
37            file: Option<&ICCameraFile>,
38            url: Option<&NSURL>,
39            data: Option<&NSData>,
40            error: Option<&NSError>,
41        );
42
43        /// This message is sent every time the camera device reports an error.
44        #[optional]
45        #[unsafe(method(cameraDeviceView:didEncounterError:))]
46        #[unsafe(method_family = none)]
47        unsafe fn cameraDeviceView_didEncounterError(
48            &self,
49            camera_device_view: Option<&IKCameraDeviceView>,
50            error: Option<&NSError>,
51        );
52    }
53);
54
55/// [Apple's documentation](https://developer.apple.com/documentation/quartz/ikcameradeviceviewdisplaymode?language=objc)
56// NS_CLOSED_ENUM
57#[repr(isize)] // NSInteger
58#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
59pub enum IKCameraDeviceViewDisplayMode {
60    #[doc(alias = "IKCameraDeviceViewDisplayModeNone")]
61    None = -1,
62    #[doc(alias = "IKCameraDeviceViewDisplayModeTable")]
63    Table = 0,
64    #[doc(alias = "IKCameraDeviceViewDisplayModeIcon")]
65    Icon = 1,
66}
67
68unsafe impl Encode for IKCameraDeviceViewDisplayMode {
69    const ENCODING: Encoding = NSInteger::ENCODING;
70}
71
72unsafe impl RefEncode for IKCameraDeviceViewDisplayMode {
73    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
74}
75
76/// [Apple's documentation](https://developer.apple.com/documentation/quartz/ikcameradeviceviewtransfermode?language=objc)
77// NS_CLOSED_ENUM
78#[repr(isize)] // NSInteger
79#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
80pub enum IKCameraDeviceViewTransferMode {
81    #[doc(alias = "IKCameraDeviceViewTransferModeFileBased")]
82    FileBased = 0,
83    #[doc(alias = "IKCameraDeviceViewTransferModeMemoryBased")]
84    MemoryBased = 1,
85}
86
87unsafe impl Encode for IKCameraDeviceViewTransferMode {
88    const ENCODING: Encoding = NSInteger::ENCODING;
89}
90
91unsafe impl RefEncode for IKCameraDeviceViewTransferMode {
92    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
93}
94
95extern_class!(
96    /// IKCameraDeviceView displays content of a Image Capture supported camera.
97    ///
98    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartz/ikcameradeviceview?language=objc)
99    #[unsafe(super(NSView, NSResponder, NSObject))]
100    #[derive(Debug, PartialEq, Eq, Hash)]
101    pub struct IKCameraDeviceView;
102);
103
104extern_conformance!(
105    unsafe impl NSAccessibility for IKCameraDeviceView {}
106);
107
108extern_conformance!(
109    unsafe impl NSAccessibilityElementProtocol for IKCameraDeviceView {}
110);
111
112extern_conformance!(
113    unsafe impl NSAnimatablePropertyContainer for IKCameraDeviceView {}
114);
115
116extern_conformance!(
117    unsafe impl NSAppearanceCustomization for IKCameraDeviceView {}
118);
119
120extern_conformance!(
121    unsafe impl NSCoding for IKCameraDeviceView {}
122);
123
124extern_conformance!(
125    unsafe impl NSDraggingDestination for IKCameraDeviceView {}
126);
127
128extern_conformance!(
129    unsafe impl NSObjectProtocol for IKCameraDeviceView {}
130);
131
132extern_conformance!(
133    unsafe impl NSUserInterfaceItemIdentification for IKCameraDeviceView {}
134);
135
136impl IKCameraDeviceView {
137    extern_methods!(
138        /// Delegate of the IKCameraDeviceView.
139        #[unsafe(method(delegate))]
140        #[unsafe(method_family = none)]
141        pub unsafe fn delegate(
142            &self,
143        ) -> Option<Retained<ProtocolObject<dyn IKCameraDeviceViewDelegate>>>;
144
145        /// Setter for [`delegate`][Self::delegate].
146        #[unsafe(method(setDelegate:))]
147        #[unsafe(method_family = none)]
148        pub unsafe fn setDelegate(
149            &self,
150            delegate: Option<&ProtocolObject<dyn IKCameraDeviceViewDelegate>>,
151        );
152
153        #[cfg(feature = "objc2-image-capture-core")]
154        /// the camera device.
155        #[unsafe(method(cameraDevice))]
156        #[unsafe(method_family = none)]
157        pub unsafe fn cameraDevice(&self) -> Option<Retained<ICCameraDevice>>;
158
159        #[cfg(feature = "objc2-image-capture-core")]
160        /// Setter for [`cameraDevice`][Self::cameraDevice].
161        #[unsafe(method(setCameraDevice:))]
162        #[unsafe(method_family = none)]
163        pub unsafe fn setCameraDevice(&self, camera_device: Option<&ICCameraDevice>);
164
165        /// current display mode.
166        #[unsafe(method(mode))]
167        #[unsafe(method_family = none)]
168        pub unsafe fn mode(&self) -> IKCameraDeviceViewDisplayMode;
169
170        /// Setter for [`mode`][Self::mode].
171        #[unsafe(method(setMode:))]
172        #[unsafe(method_family = none)]
173        pub unsafe fn setMode(&self, mode: IKCameraDeviceViewDisplayMode);
174
175        /// support table view display mode.
176        #[unsafe(method(hasDisplayModeTable))]
177        #[unsafe(method_family = none)]
178        pub unsafe fn hasDisplayModeTable(&self) -> bool;
179
180        /// Setter for [`hasDisplayModeTable`][Self::hasDisplayModeTable].
181        #[unsafe(method(setHasDisplayModeTable:))]
182        #[unsafe(method_family = none)]
183        pub unsafe fn setHasDisplayModeTable(&self, has_display_mode_table: bool);
184
185        /// support icon view display mode.
186        #[unsafe(method(hasDisplayModeIcon))]
187        #[unsafe(method_family = none)]
188        pub unsafe fn hasDisplayModeIcon(&self) -> bool;
189
190        /// Setter for [`hasDisplayModeIcon`][Self::hasDisplayModeIcon].
191        #[unsafe(method(setHasDisplayModeIcon:))]
192        #[unsafe(method_family = none)]
193        pub unsafe fn setHasDisplayModeIcon(&self, has_display_mode_icon: bool);
194
195        /// label for the 'Download All' control - allows for example renaming to 'Import All'.
196        #[unsafe(method(downloadAllControlLabel))]
197        #[unsafe(method_family = none)]
198        pub unsafe fn downloadAllControlLabel(&self) -> Retained<NSString>;
199
200        /// Setter for [`downloadAllControlLabel`][Self::downloadAllControlLabel].
201        #[unsafe(method(setDownloadAllControlLabel:))]
202        #[unsafe(method_family = none)]
203        pub unsafe fn setDownloadAllControlLabel(
204            &self,
205            download_all_control_label: Option<&NSString>,
206        );
207
208        /// label for the 'Download Selected' control.
209        #[unsafe(method(downloadSelectedControlLabel))]
210        #[unsafe(method_family = none)]
211        pub unsafe fn downloadSelectedControlLabel(&self) -> Retained<NSString>;
212
213        /// Setter for [`downloadSelectedControlLabel`][Self::downloadSelectedControlLabel].
214        #[unsafe(method(setDownloadSelectedControlLabel:))]
215        #[unsafe(method_family = none)]
216        pub unsafe fn setDownloadSelectedControlLabel(
217            &self,
218            download_selected_control_label: Option<&NSString>,
219        );
220
221        /// in icon mode: size of the image thumbnails.
222        #[unsafe(method(iconSize))]
223        #[unsafe(method_family = none)]
224        pub unsafe fn iconSize(&self) -> NSUInteger;
225
226        /// Setter for [`iconSize`][Self::iconSize].
227        #[unsafe(method(setIconSize:))]
228        #[unsafe(method_family = none)]
229        pub unsafe fn setIconSize(&self, icon_size: NSUInteger);
230
231        /// transfer mode either file based - or - in memory.
232        #[unsafe(method(transferMode))]
233        #[unsafe(method_family = none)]
234        pub unsafe fn transferMode(&self) -> IKCameraDeviceViewTransferMode;
235
236        /// Setter for [`transferMode`][Self::transferMode].
237        #[unsafe(method(setTransferMode:))]
238        #[unsafe(method_family = none)]
239        pub unsafe fn setTransferMode(&self, transfer_mode: IKCameraDeviceViewTransferMode);
240
241        /// show a downloads directory control.
242        #[unsafe(method(displaysDownloadsDirectoryControl))]
243        #[unsafe(method_family = none)]
244        pub unsafe fn displaysDownloadsDirectoryControl(&self) -> bool;
245
246        /// Setter for [`displaysDownloadsDirectoryControl`][Self::displaysDownloadsDirectoryControl].
247        #[unsafe(method(setDisplaysDownloadsDirectoryControl:))]
248        #[unsafe(method_family = none)]
249        pub unsafe fn setDisplaysDownloadsDirectoryControl(
250            &self,
251            displays_downloads_directory_control: bool,
252        );
253
254        /// downloads directory.
255        #[unsafe(method(downloadsDirectory))]
256        #[unsafe(method_family = none)]
257        pub unsafe fn downloadsDirectory(&self) -> Option<Retained<NSURL>>;
258
259        /// Setter for [`downloadsDirectory`][Self::downloadsDirectory].
260        #[unsafe(method(setDownloadsDirectory:))]
261        #[unsafe(method_family = none)]
262        pub unsafe fn setDownloadsDirectory(&self, downloads_directory: Option<&NSURL>);
263
264        /// show a postprocessing application control.
265        #[unsafe(method(displaysPostProcessApplicationControl))]
266        #[unsafe(method_family = none)]
267        pub unsafe fn displaysPostProcessApplicationControl(&self) -> bool;
268
269        /// Setter for [`displaysPostProcessApplicationControl`][Self::displaysPostProcessApplicationControl].
270        #[unsafe(method(setDisplaysPostProcessApplicationControl:))]
271        #[unsafe(method_family = none)]
272        pub unsafe fn setDisplaysPostProcessApplicationControl(
273            &self,
274            displays_post_process_application_control: bool,
275        );
276
277        /// postprocessing application.
278        #[unsafe(method(postProcessApplication))]
279        #[unsafe(method_family = none)]
280        pub unsafe fn postProcessApplication(&self) -> Option<Retained<NSURL>>;
281
282        /// Setter for [`postProcessApplication`][Self::postProcessApplication].
283        #[unsafe(method(setPostProcessApplication:))]
284        #[unsafe(method_family = none)]
285        pub unsafe fn setPostProcessApplication(&self, post_process_application: Option<&NSURL>);
286
287        /// indicates if the user selected items can be rotated left.
288        #[unsafe(method(canRotateSelectedItemsLeft))]
289        #[unsafe(method_family = none)]
290        pub unsafe fn canRotateSelectedItemsLeft(&self) -> bool;
291
292        /// indicates if the user selected items can be rotated right.
293        #[unsafe(method(canRotateSelectedItemsRight))]
294        #[unsafe(method_family = none)]
295        pub unsafe fn canRotateSelectedItemsRight(&self) -> bool;
296
297        /// indicates if the user selected items can be deleted.
298        #[unsafe(method(canDeleteSelectedItems))]
299        #[unsafe(method_family = none)]
300        pub unsafe fn canDeleteSelectedItems(&self) -> bool;
301
302        /// indicates if the user selected items can be downloaded.
303        #[unsafe(method(canDownloadSelectedItems))]
304        #[unsafe(method_family = none)]
305        pub unsafe fn canDownloadSelectedItems(&self) -> bool;
306
307        /// current user selection.
308        #[unsafe(method(selectedIndexes))]
309        #[unsafe(method_family = none)]
310        pub unsafe fn selectedIndexes(&self) -> Option<Retained<NSIndexSet>>;
311
312        /// setting current user selection.
313        #[unsafe(method(selectIndexes:byExtendingSelection:))]
314        #[unsafe(method_family = none)]
315        pub unsafe fn selectIndexes_byExtendingSelection(
316            &self,
317            indexes: Option<&NSIndexSet>,
318            extend: bool,
319        );
320
321        /// rotate selected items left.
322        #[unsafe(method(rotateLeft:))]
323        #[unsafe(method_family = none)]
324        pub unsafe fn rotateLeft(&self, sender: Option<&AnyObject>);
325
326        /// rotate selected items right.
327        #[unsafe(method(rotateRight:))]
328        #[unsafe(method_family = none)]
329        pub unsafe fn rotateRight(&self, sender: Option<&AnyObject>);
330
331        /// delete selected items.
332        #[unsafe(method(deleteSelectedItems:))]
333        #[unsafe(method_family = none)]
334        pub unsafe fn deleteSelectedItems(&self, sender: Option<&AnyObject>);
335
336        /// download selected items.
337        #[unsafe(method(downloadSelectedItems:))]
338        #[unsafe(method_family = none)]
339        pub unsafe fn downloadSelectedItems(&self, sender: Option<&AnyObject>);
340
341        /// download all items.
342        #[unsafe(method(downloadAllItems:))]
343        #[unsafe(method_family = none)]
344        pub unsafe fn downloadAllItems(&self, sender: Option<&AnyObject>);
345
346        /// provide your own NSSlider to resize item thumbnails
347        #[unsafe(method(setCustomIconSizeSlider:))]
348        #[unsafe(method_family = none)]
349        pub unsafe fn setCustomIconSizeSlider(&self, slider: Option<&NSSlider>);
350
351        /// provide your own control to toggle between IKCameraDeviceViewDisplayMode table / icon
352        #[unsafe(method(setCustomModeControl:))]
353        #[unsafe(method_family = none)]
354        pub unsafe fn setCustomModeControl(&self, control: Option<&NSSegmentedControl>);
355
356        /// provide your own control to toggle between IKCameraDeviceViewDisplayMode table / icon
357        #[unsafe(method(setCustomActionControl:))]
358        #[unsafe(method_family = none)]
359        pub unsafe fn setCustomActionControl(&self, control: Option<&NSSegmentedControl>);
360
361        /// provide your own control to rotate items (multiple of 90ยบ)
362        #[unsafe(method(setCustomRotateControl:))]
363        #[unsafe(method_family = none)]
364        pub unsafe fn setCustomRotateControl(&self, control: Option<&NSSegmentedControl>);
365
366        /// provide your own control to delete selected items
367        #[unsafe(method(setCustomDeleteControl:))]
368        #[unsafe(method_family = none)]
369        pub unsafe fn setCustomDeleteControl(&self, control: Option<&NSSegmentedControl>);
370
371        /// display status info as window subtitle
372        #[unsafe(method(setShowStatusInfoAsWindowSubtitle:))]
373        #[unsafe(method_family = none)]
374        pub unsafe fn setShowStatusInfoAsWindowSubtitle(&self, value: bool);
375    );
376}
377
378/// Methods declared on superclass `NSView`.
379impl IKCameraDeviceView {
380    extern_methods!(
381        #[unsafe(method(initWithFrame:))]
382        #[unsafe(method_family = init)]
383        pub unsafe fn initWithFrame(this: Allocated<Self>, frame_rect: NSRect) -> Retained<Self>;
384
385        #[unsafe(method(initWithCoder:))]
386        #[unsafe(method_family = init)]
387        pub unsafe fn initWithCoder(
388            this: Allocated<Self>,
389            coder: &NSCoder,
390        ) -> Option<Retained<Self>>;
391    );
392}
393
394/// Methods declared on superclass `NSResponder`.
395impl IKCameraDeviceView {
396    extern_methods!(
397        #[unsafe(method(init))]
398        #[unsafe(method_family = init)]
399        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
400    );
401}
402
403/// Methods declared on superclass `NSObject`.
404impl IKCameraDeviceView {
405    extern_methods!(
406        #[unsafe(method(new))]
407        #[unsafe(method_family = new)]
408        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
409    );
410}