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::Block<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
98unsafe impl NSObjectProtocol for UIPrinterPickerController {}
99
100impl UIPrinterPickerController {
101    extern_methods!(
102        #[cfg(feature = "UIPrinter")]
103        /// This method returns a printer picker controller object for showing the
104        /// UI that allows the user to select a printer. This is only used with the
105        /// UIPrintInteractionController's printWithoutUIToPrinter: method.
106        /// If no printer should be preselected, use a value of nil for the parameter.
107        #[unsafe(method(printerPickerControllerWithInitiallySelectedPrinter:))]
108        #[unsafe(method_family = none)]
109        pub unsafe fn printerPickerControllerWithInitiallySelectedPrinter(
110            printer: Option<&UIPrinter>,
111            mtm: MainThreadMarker,
112        ) -> Retained<UIPrinterPickerController>;
113
114        #[cfg(feature = "UIPrinter")]
115        /// The selected printer. Set this before presenting the UI to show the currently
116        /// selected printer. Use this to determine which printer the user selected.
117        #[unsafe(method(selectedPrinter))]
118        #[unsafe(method_family = none)]
119        pub unsafe fn selectedPrinter(&self) -> Option<Retained<UIPrinter>>;
120
121        #[unsafe(method(delegate))]
122        #[unsafe(method_family = none)]
123        pub unsafe fn delegate(
124            &self,
125        ) -> Option<Retained<ProtocolObject<dyn UIPrinterPickerControllerDelegate>>>;
126
127        /// This is a [weak property][objc2::topics::weak_property].
128        /// Setter for [`delegate`][Self::delegate].
129        #[unsafe(method(setDelegate:))]
130        #[unsafe(method_family = none)]
131        pub unsafe fn setDelegate(
132            &self,
133            delegate: Option<&ProtocolObject<dyn UIPrinterPickerControllerDelegate>>,
134        );
135
136        #[cfg(feature = "block2")]
137        #[unsafe(method(presentAnimated:completionHandler:))]
138        #[unsafe(method_family = none)]
139        pub unsafe fn presentAnimated_completionHandler(
140            &self,
141            animated: bool,
142            completion: UIPrinterPickerCompletionHandler,
143        ) -> bool;
144
145        #[cfg(all(
146            feature = "UIResponder",
147            feature = "UIView",
148            feature = "block2",
149            feature = "objc2-core-foundation"
150        ))]
151        #[unsafe(method(presentFromRect:inView:animated:completionHandler:))]
152        #[unsafe(method_family = none)]
153        pub unsafe fn presentFromRect_inView_animated_completionHandler(
154            &self,
155            rect: CGRect,
156            view: &UIView,
157            animated: bool,
158            completion: UIPrinterPickerCompletionHandler,
159        ) -> bool;
160
161        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem", feature = "block2"))]
162        #[unsafe(method(presentFromBarButtonItem:animated:completionHandler:))]
163        #[unsafe(method_family = none)]
164        pub unsafe fn presentFromBarButtonItem_animated_completionHandler(
165            &self,
166            item: &UIBarButtonItem,
167            animated: bool,
168            completion: UIPrinterPickerCompletionHandler,
169        ) -> bool;
170
171        #[unsafe(method(dismissAnimated:))]
172        #[unsafe(method_family = none)]
173        pub unsafe fn dismissAnimated(&self, animated: bool);
174    );
175}
176
177/// Methods declared on superclass `NSObject`.
178impl UIPrinterPickerController {
179    extern_methods!(
180        #[unsafe(method(init))]
181        #[unsafe(method_family = init)]
182        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
183
184        #[unsafe(method(new))]
185        #[unsafe(method_family = new)]
186        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
187    );
188}