objc2_ui_kit/generated/
UIActivityViewController.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_foundation::*;
7
8use crate::*;
9
10/// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiactivitysectiontypes?language=objc)
11// NS_OPTIONS
12#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct UIActivitySectionTypes(pub NSUInteger);
15bitflags::bitflags! {
16    impl UIActivitySectionTypes: NSUInteger {
17        #[doc(alias = "UIActivitySectionTypesNone")]
18        const None = 0;
19        #[doc(alias = "UIActivitySectionTypesPeopleSuggestions")]
20        const PeopleSuggestions = 1<<0;
21    }
22}
23
24unsafe impl Encode for UIActivitySectionTypes {
25    const ENCODING: Encoding = NSUInteger::ENCODING;
26}
27
28unsafe impl RefEncode for UIActivitySectionTypes {
29    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
30}
31
32/// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiactivityviewcontrollercompletionhandler?language=objc)
33#[cfg(all(feature = "UIActivity", feature = "block2"))]
34pub type UIActivityViewControllerCompletionHandler =
35    *mut block2::DynBlock<dyn Fn(*mut UIActivityType, Bool)>;
36
37/// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiactivityviewcontrollercompletionwithitemshandler?language=objc)
38#[cfg(all(feature = "UIActivity", feature = "block2"))]
39pub type UIActivityViewControllerCompletionWithItemsHandler =
40    *mut block2::DynBlock<dyn Fn(*mut UIActivityType, Bool, *mut NSArray, *mut NSError)>;
41
42extern_class!(
43    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiactivityviewcontroller?language=objc)
44    #[unsafe(super(UIViewController, UIResponder, NSObject))]
45    #[derive(Debug, PartialEq, Eq, Hash)]
46    #[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
47    pub struct UIActivityViewController;
48);
49
50#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
51extern_conformance!(
52    unsafe impl NSCoding for UIActivityViewController {}
53);
54
55#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
56extern_conformance!(
57    unsafe impl NSObjectProtocol for UIActivityViewController {}
58);
59
60#[cfg(all(
61    feature = "UIAppearance",
62    feature = "UIResponder",
63    feature = "UIViewController"
64))]
65extern_conformance!(
66    unsafe impl UIAppearanceContainer for UIActivityViewController {}
67);
68
69#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
70extern_conformance!(
71    unsafe impl UIContentContainer for UIActivityViewController {}
72);
73
74#[cfg(all(
75    feature = "UIFocus",
76    feature = "UIResponder",
77    feature = "UIViewController"
78))]
79extern_conformance!(
80    unsafe impl UIFocusEnvironment for UIActivityViewController {}
81);
82
83#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
84extern_conformance!(
85    unsafe impl UIResponderStandardEditActions for UIActivityViewController {}
86);
87
88#[cfg(all(
89    feature = "UIResponder",
90    feature = "UITraitCollection",
91    feature = "UIViewController"
92))]
93extern_conformance!(
94    unsafe impl UITraitEnvironment for UIActivityViewController {}
95);
96
97#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
98impl UIActivityViewController {
99    extern_methods!(
100        #[unsafe(method(init))]
101        #[unsafe(method_family = init)]
102        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
103
104        #[unsafe(method(initWithNibName:bundle:))]
105        #[unsafe(method_family = init)]
106        pub unsafe fn initWithNibName_bundle(
107            this: Allocated<Self>,
108            nib_name_or_nil: Option<&NSString>,
109            nib_bundle_or_nil: Option<&NSBundle>,
110        ) -> Retained<Self>;
111
112        /// # Safety
113        ///
114        /// `coder` possibly has further requirements.
115        #[unsafe(method(initWithCoder:))]
116        #[unsafe(method_family = init)]
117        pub unsafe fn initWithCoder(
118            this: Allocated<Self>,
119            coder: &NSCoder,
120        ) -> Option<Retained<Self>>;
121
122        #[cfg(feature = "UIActivity")]
123        /// # Safety
124        ///
125        /// `activity_items` generic should be of the correct type.
126        #[unsafe(method(initWithActivityItems:applicationActivities:))]
127        #[unsafe(method_family = init)]
128        pub unsafe fn initWithActivityItems_applicationActivities(
129            this: Allocated<Self>,
130            activity_items: &NSArray,
131            application_activities: Option<&NSArray<UIActivity>>,
132        ) -> Retained<Self>;
133
134        #[cfg(all(feature = "UIActivity", feature = "block2"))]
135        /// # Safety
136        ///
137        /// The returned block's argument 1 must be a valid pointer or null.
138        #[deprecated]
139        #[unsafe(method(completionHandler))]
140        #[unsafe(method_family = none)]
141        pub unsafe fn completionHandler(&self) -> UIActivityViewControllerCompletionHandler;
142
143        #[cfg(all(feature = "UIActivity", feature = "block2"))]
144        /// Setter for [`completionHandler`][Self::completionHandler].
145        ///
146        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
147        ///
148        /// # Safety
149        ///
150        /// `completion_handler` must be a valid pointer or null.
151        #[deprecated]
152        #[unsafe(method(setCompletionHandler:))]
153        #[unsafe(method_family = none)]
154        pub unsafe fn setCompletionHandler(
155            &self,
156            completion_handler: UIActivityViewControllerCompletionHandler,
157        );
158
159        #[cfg(all(feature = "UIActivity", feature = "block2"))]
160        /// # Safety
161        ///
162        /// - The returned block's argument 1 must be a valid pointer or null.
163        /// - The returned block's argument 3 must be a valid pointer or null.
164        /// - The returned block's argument 4 must be a valid pointer or null.
165        #[unsafe(method(completionWithItemsHandler))]
166        #[unsafe(method_family = none)]
167        pub unsafe fn completionWithItemsHandler(
168            &self,
169        ) -> UIActivityViewControllerCompletionWithItemsHandler;
170
171        #[cfg(all(feature = "UIActivity", feature = "block2"))]
172        /// Setter for [`completionWithItemsHandler`][Self::completionWithItemsHandler].
173        ///
174        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
175        ///
176        /// # Safety
177        ///
178        /// `completion_with_items_handler` must be a valid pointer or null.
179        #[unsafe(method(setCompletionWithItemsHandler:))]
180        #[unsafe(method_family = none)]
181        pub unsafe fn setCompletionWithItemsHandler(
182            &self,
183            completion_with_items_handler: UIActivityViewControllerCompletionWithItemsHandler,
184        );
185
186        #[cfg(feature = "UIActivity")]
187        #[unsafe(method(excludedActivityTypes))]
188        #[unsafe(method_family = none)]
189        pub fn excludedActivityTypes(&self) -> Option<Retained<NSArray<UIActivityType>>>;
190
191        #[cfg(feature = "UIActivity")]
192        /// Setter for [`excludedActivityTypes`][Self::excludedActivityTypes].
193        ///
194        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
195        #[unsafe(method(setExcludedActivityTypes:))]
196        #[unsafe(method_family = none)]
197        pub fn setExcludedActivityTypes(
198            &self,
199            excluded_activity_types: Option<&NSArray<UIActivityType>>,
200        );
201
202        /// Hides some sections of the activity view controller. Default is none
203        #[unsafe(method(excludedActivitySectionTypes))]
204        #[unsafe(method_family = none)]
205        pub fn excludedActivitySectionTypes(&self) -> UIActivitySectionTypes;
206
207        /// Setter for [`excludedActivitySectionTypes`][Self::excludedActivitySectionTypes].
208        #[unsafe(method(setExcludedActivitySectionTypes:))]
209        #[unsafe(method_family = none)]
210        pub fn setExcludedActivitySectionTypes(
211            &self,
212            excluded_activity_section_types: UIActivitySectionTypes,
213        );
214
215        /// In some contexts, the activity view controller can elevate a specific activity in the header view to enhance it.
216        /// The prominent activity can only be chosen by the system.
217        /// Defaults to YES.
218        #[unsafe(method(allowsProminentActivity))]
219        #[unsafe(method_family = none)]
220        pub fn allowsProminentActivity(&self) -> bool;
221
222        /// Setter for [`allowsProminentActivity`][Self::allowsProminentActivity].
223        #[unsafe(method(setAllowsProminentActivity:))]
224        #[unsafe(method_family = none)]
225        pub fn setAllowsProminentActivity(&self, allows_prominent_activity: bool);
226    );
227}
228
229/// Methods declared on superclass `NSObject`.
230#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
231impl UIActivityViewController {
232    extern_methods!(
233        #[unsafe(method(new))]
234        #[unsafe(method_family = new)]
235        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
236    );
237}
238
239/// UIActivityItemsConfiguration.
240#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
241impl UIActivityViewController {
242    extern_methods!(
243        #[cfg(feature = "UIActivityItemsConfigurationReading")]
244        #[unsafe(method(initWithActivityItemsConfiguration:))]
245        #[unsafe(method_family = init)]
246        pub fn initWithActivityItemsConfiguration(
247            this: Allocated<Self>,
248            activity_items_configuration: &ProtocolObject<dyn UIActivityItemsConfigurationReading>,
249        ) -> Retained<Self>;
250    );
251}