objc2_ui_kit/generated/
UIPrinterPickerController.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::*;
6#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8use objc2_foundation::*;
9
10use crate::*;
11
12/// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiprinterpickercompletionhandler?language=objc)
13#[cfg(feature = "block2")]
14pub type UIPrinterPickerCompletionHandler =
15    *mut block2::DynBlock<dyn Fn(NonNull<UIPrinterPickerController>, Bool, *mut NSError)>;
16
17extern_protocol!(
18    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiprinterpickercontrollerdelegate?language=objc)
19    pub unsafe trait UIPrinterPickerControllerDelegate:
20        NSObjectProtocol + MainThreadOnly
21    {
22        #[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
23        #[optional]
24        #[unsafe(method(printerPickerControllerParentViewController:))]
25        #[unsafe(method_family = none)]
26        unsafe fn printerPickerControllerParentViewController(
27            &self,
28            printer_picker_controller: &UIPrinterPickerController,
29        ) -> Option<Retained<UIViewController>>;
30
31        #[cfg(feature = "UIPrinter")]
32        /// Use to filter out specific printers from the printer picker.
33        /// Evaluate the UIPrinter object and returns YES if the printer should
34        /// be shown, NO otherwise.
35        /// This delegate can assume that all UIPrinter properties are available
36        /// (the contactPrinter: method need not be called).
37        /// This method may be called from threads other than the main thread,
38        /// and may be called simultaneously from several different threads.
39        #[optional]
40        #[unsafe(method(printerPickerController:shouldShowPrinter:))]
41        #[unsafe(method_family = none)]
42        unsafe fn printerPickerController_shouldShowPrinter(
43            &self,
44            printer_picker_controller: &UIPrinterPickerController,
45            printer: &UIPrinter,
46        ) -> bool;
47
48        #[optional]
49        #[unsafe(method(printerPickerControllerWillPresent:))]
50        #[unsafe(method_family = none)]
51        unsafe fn printerPickerControllerWillPresent(
52            &self,
53            printer_picker_controller: &UIPrinterPickerController,
54        );
55
56        #[optional]
57        #[unsafe(method(printerPickerControllerDidPresent:))]
58        #[unsafe(method_family = none)]
59        unsafe fn printerPickerControllerDidPresent(
60            &self,
61            printer_picker_controller: &UIPrinterPickerController,
62        );
63
64        #[optional]
65        #[unsafe(method(printerPickerControllerWillDismiss:))]
66        #[unsafe(method_family = none)]
67        unsafe fn printerPickerControllerWillDismiss(
68            &self,
69            printer_picker_controller: &UIPrinterPickerController,
70        );
71
72        #[optional]
73        #[unsafe(method(printerPickerControllerDidDismiss:))]
74        #[unsafe(method_family = none)]
75        unsafe fn printerPickerControllerDidDismiss(
76            &self,
77            printer_picker_controller: &UIPrinterPickerController,
78        );
79
80        #[optional]
81        #[unsafe(method(printerPickerControllerDidSelectPrinter:))]
82        #[unsafe(method_family = none)]
83        unsafe fn printerPickerControllerDidSelectPrinter(
84            &self,
85            printer_picker_controller: &UIPrinterPickerController,
86        );
87    }
88);
89
90extern_class!(
91    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiprinterpickercontroller?language=objc)
92    #[unsafe(super(NSObject))]
93    #[thread_kind = MainThreadOnly]
94    #[derive(Debug, PartialEq, Eq, Hash)]
95    pub struct UIPrinterPickerController;
96);
97
98extern_conformance!(
99    unsafe impl NSObjectProtocol for UIPrinterPickerController {}
100);
101
102impl UIPrinterPickerController {
103    extern_methods!(
104        #[cfg(feature = "UIPrinter")]
105        /// This method returns a printer picker controller object for showing the
106        /// UI that allows the user to select a printer. This is only used with the
107        /// UIPrintInteractionController's printWithoutUIToPrinter: method.
108        /// If no printer should be preselected, use a value of nil for the parameter.
109        #[unsafe(method(printerPickerControllerWithInitiallySelectedPrinter:))]
110        #[unsafe(method_family = none)]
111        pub unsafe fn printerPickerControllerWithInitiallySelectedPrinter(
112            printer: Option<&UIPrinter>,
113            mtm: MainThreadMarker,
114        ) -> Retained<UIPrinterPickerController>;
115
116        #[cfg(feature = "UIPrinter")]
117        /// The selected printer. Set this before presenting the UI to show the currently
118        /// selected printer. Use this to determine which printer the user selected.
119        #[unsafe(method(selectedPrinter))]
120        #[unsafe(method_family = none)]
121        pub unsafe fn selectedPrinter(&self) -> Option<Retained<UIPrinter>>;
122
123        #[unsafe(method(delegate))]
124        #[unsafe(method_family = none)]
125        pub unsafe fn delegate(
126            &self,
127        ) -> Option<Retained<ProtocolObject<dyn UIPrinterPickerControllerDelegate>>>;
128
129        /// This is a [weak property][objc2::topics::weak_property].
130        /// Setter for [`delegate`][Self::delegate].
131        #[unsafe(method(setDelegate:))]
132        #[unsafe(method_family = none)]
133        pub unsafe fn setDelegate(
134            &self,
135            delegate: Option<&ProtocolObject<dyn UIPrinterPickerControllerDelegate>>,
136        );
137
138        #[cfg(feature = "block2")]
139        #[unsafe(method(presentAnimated:completionHandler:))]
140        #[unsafe(method_family = none)]
141        pub unsafe fn presentAnimated_completionHandler(
142            &self,
143            animated: bool,
144            completion: UIPrinterPickerCompletionHandler,
145        ) -> bool;
146
147        #[cfg(all(
148            feature = "UIResponder",
149            feature = "UIView",
150            feature = "block2",
151            feature = "objc2-core-foundation"
152        ))]
153        #[unsafe(method(presentFromRect:inView:animated:completionHandler:))]
154        #[unsafe(method_family = none)]
155        pub unsafe fn presentFromRect_inView_animated_completionHandler(
156            &self,
157            rect: CGRect,
158            view: &UIView,
159            animated: bool,
160            completion: UIPrinterPickerCompletionHandler,
161        ) -> bool;
162
163        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem", feature = "block2"))]
164        #[unsafe(method(presentFromBarButtonItem:animated:completionHandler:))]
165        #[unsafe(method_family = none)]
166        pub unsafe fn presentFromBarButtonItem_animated_completionHandler(
167            &self,
168            item: &UIBarButtonItem,
169            animated: bool,
170            completion: UIPrinterPickerCompletionHandler,
171        ) -> bool;
172
173        #[unsafe(method(dismissAnimated:))]
174        #[unsafe(method_family = none)]
175        pub unsafe fn dismissAnimated(&self, animated: bool);
176    );
177}
178
179/// Methods declared on superclass `NSObject`.
180impl UIPrinterPickerController {
181    extern_methods!(
182        #[unsafe(method(init))]
183        #[unsafe(method_family = init)]
184        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
185
186        #[unsafe(method(new))]
187        #[unsafe(method_family = new)]
188        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
189    );
190}