objc2_quartz/generated/ImageKit/
IKDeviceBrowserView.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 IKDeviceBrowserView must conform to IKDeviceBrowserViewDelegate protocol.
15    ///
16    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartz/ikdevicebrowserviewdelegate?language=objc)
17    pub unsafe trait IKDeviceBrowserViewDelegate {
18        #[cfg(feature = "objc2-image-capture-core")]
19        /// This message is sent when the user selection did change.
20        ///
21        /// The device may be a ICCameraDevice or a ICScannerDevice.
22        ///
23        /// # Safety
24        ///
25        /// - `device_browser_view` might not allow `None`.
26        /// - `device` might not allow `None`.
27        #[unsafe(method(deviceBrowserView:selectionDidChange:))]
28        #[unsafe(method_family = none)]
29        unsafe fn deviceBrowserView_selectionDidChange(
30            &self,
31            device_browser_view: Option<&IKDeviceBrowserView>,
32            device: Option<&ICDevice>,
33        );
34
35        /// This message is sent every time the device browser reports an error.
36        ///
37        /// # Safety
38        ///
39        /// - `device_browser_view` might not allow `None`.
40        /// - `error` might not allow `None`.
41        #[optional]
42        #[unsafe(method(deviceBrowserView:didEncounterError:))]
43        #[unsafe(method_family = none)]
44        unsafe fn deviceBrowserView_didEncounterError(
45            &self,
46            device_browser_view: Option<&IKDeviceBrowserView>,
47            error: Option<&NSError>,
48        );
49    }
50);
51
52/// [Apple's documentation](https://developer.apple.com/documentation/quartz/ikdevicebrowserviewdisplaymode?language=objc)
53// NS_CLOSED_ENUM
54#[repr(isize)] // NSInteger
55#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
56pub enum IKDeviceBrowserViewDisplayMode {
57    #[doc(alias = "IKDeviceBrowserViewDisplayModeTable")]
58    Table = 0,
59    #[doc(alias = "IKDeviceBrowserViewDisplayModeOutline")]
60    Outline = 1,
61    #[doc(alias = "IKDeviceBrowserViewDisplayModeIcon")]
62    Icon = 2,
63}
64
65unsafe impl Encode for IKDeviceBrowserViewDisplayMode {
66    const ENCODING: Encoding = NSInteger::ENCODING;
67}
68
69unsafe impl RefEncode for IKDeviceBrowserViewDisplayMode {
70    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
71}
72
73extern_class!(
74    /// IKDeviceBrowserView displays Image Capture cameras and scanners.
75    ///
76    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartz/ikdevicebrowserview?language=objc)
77    #[unsafe(super(NSView, NSResponder, NSObject))]
78    #[derive(Debug, PartialEq, Eq, Hash)]
79    pub struct IKDeviceBrowserView;
80);
81
82extern_conformance!(
83    unsafe impl NSAccessibility for IKDeviceBrowserView {}
84);
85
86extern_conformance!(
87    unsafe impl NSAccessibilityElementProtocol for IKDeviceBrowserView {}
88);
89
90extern_conformance!(
91    unsafe impl NSAnimatablePropertyContainer for IKDeviceBrowserView {}
92);
93
94extern_conformance!(
95    unsafe impl NSAppearanceCustomization for IKDeviceBrowserView {}
96);
97
98extern_conformance!(
99    unsafe impl NSCoding for IKDeviceBrowserView {}
100);
101
102extern_conformance!(
103    unsafe impl NSDraggingDestination for IKDeviceBrowserView {}
104);
105
106extern_conformance!(
107    unsafe impl NSObjectProtocol for IKDeviceBrowserView {}
108);
109
110extern_conformance!(
111    unsafe impl NSUserInterfaceItemIdentification for IKDeviceBrowserView {}
112);
113
114impl IKDeviceBrowserView {
115    extern_methods!(
116        /// delegate of the IKDeviceBrowserView.
117        ///
118        /// # Safety
119        ///
120        /// This is not retained internally, you must ensure the object is still alive.
121        #[unsafe(method(delegate))]
122        #[unsafe(method_family = none)]
123        pub unsafe fn delegate(
124            &self,
125        ) -> Option<Retained<ProtocolObject<dyn IKDeviceBrowserViewDelegate>>>;
126
127        /// Setter for [`delegate`][Self::delegate].
128        ///
129        /// # Safety
130        ///
131        /// - `delegate` might not allow `None`.
132        /// - This is unretained, you must ensure the object is kept alive while in use.
133        #[unsafe(method(setDelegate:))]
134        #[unsafe(method_family = none)]
135        pub unsafe fn setDelegate(
136            &self,
137            delegate: Option<&ProtocolObject<dyn IKDeviceBrowserViewDelegate>>,
138        );
139
140        /// for device filtering - indicates that the IKDeviceBrowserView should include local cameras.
141        #[unsafe(method(displaysLocalCameras))]
142        #[unsafe(method_family = none)]
143        pub unsafe fn displaysLocalCameras(&self) -> bool;
144
145        /// Setter for [`displaysLocalCameras`][Self::displaysLocalCameras].
146        #[unsafe(method(setDisplaysLocalCameras:))]
147        #[unsafe(method_family = none)]
148        pub unsafe fn setDisplaysLocalCameras(&self, displays_local_cameras: bool);
149
150        /// for device filtering - indicates that the IKDeviceBrowserView should include network/shared cameras.
151        #[unsafe(method(displaysNetworkCameras))]
152        #[unsafe(method_family = none)]
153        pub unsafe fn displaysNetworkCameras(&self) -> bool;
154
155        /// Setter for [`displaysNetworkCameras`][Self::displaysNetworkCameras].
156        #[unsafe(method(setDisplaysNetworkCameras:))]
157        #[unsafe(method_family = none)]
158        pub unsafe fn setDisplaysNetworkCameras(&self, displays_network_cameras: bool);
159
160        /// for device filtering - indicates that the IKDeviceBrowserView should include local scanners.
161        #[unsafe(method(displaysLocalScanners))]
162        #[unsafe(method_family = none)]
163        pub unsafe fn displaysLocalScanners(&self) -> bool;
164
165        /// Setter for [`displaysLocalScanners`][Self::displaysLocalScanners].
166        #[unsafe(method(setDisplaysLocalScanners:))]
167        #[unsafe(method_family = none)]
168        pub unsafe fn setDisplaysLocalScanners(&self, displays_local_scanners: bool);
169
170        /// for device filtering - indicates that the IKDeviceBrowserView should include network/shared scanners.
171        #[unsafe(method(displaysNetworkScanners))]
172        #[unsafe(method_family = none)]
173        pub unsafe fn displaysNetworkScanners(&self) -> bool;
174
175        /// Setter for [`displaysNetworkScanners`][Self::displaysNetworkScanners].
176        #[unsafe(method(setDisplaysNetworkScanners:))]
177        #[unsafe(method_family = none)]
178        pub unsafe fn setDisplaysNetworkScanners(&self, displays_network_scanners: bool);
179
180        /// one of the supported display modes (table, outline, or icon mode).
181        #[unsafe(method(mode))]
182        #[unsafe(method_family = none)]
183        pub unsafe fn mode(&self) -> IKDeviceBrowserViewDisplayMode;
184
185        /// Setter for [`mode`][Self::mode].
186        #[unsafe(method(setMode:))]
187        #[unsafe(method_family = none)]
188        pub unsafe fn setMode(&self, mode: IKDeviceBrowserViewDisplayMode);
189
190        #[cfg(feature = "objc2-image-capture-core")]
191        /// user selected device (ICCameraDevice or ICScannerDevice).
192        #[unsafe(method(selectedDevice))]
193        #[unsafe(method_family = none)]
194        pub unsafe fn selectedDevice(&self) -> Option<Retained<ICDevice>>;
195    );
196}
197
198/// Methods declared on superclass `NSView`.
199impl IKDeviceBrowserView {
200    extern_methods!(
201        #[unsafe(method(initWithFrame:))]
202        #[unsafe(method_family = init)]
203        pub unsafe fn initWithFrame(this: Allocated<Self>, frame_rect: NSRect) -> Retained<Self>;
204
205        /// # Safety
206        ///
207        /// `coder` possibly has further requirements.
208        #[unsafe(method(initWithCoder:))]
209        #[unsafe(method_family = init)]
210        pub unsafe fn initWithCoder(
211            this: Allocated<Self>,
212            coder: &NSCoder,
213        ) -> Option<Retained<Self>>;
214    );
215}
216
217/// Methods declared on superclass `NSResponder`.
218impl IKDeviceBrowserView {
219    extern_methods!(
220        #[unsafe(method(init))]
221        #[unsafe(method_family = init)]
222        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
223    );
224}
225
226/// Methods declared on superclass `NSObject`.
227impl IKDeviceBrowserView {
228    extern_methods!(
229        #[unsafe(method(new))]
230        #[unsafe(method_family = new)]
231        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
232    );
233}