1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

#[cfg(all(feature = "UIActivity", feature = "block2"))]
pub type UIActivityViewControllerCompletionHandler =
    *mut block2::Block<dyn Fn(*mut UIActivityType, Bool)>;

#[cfg(all(feature = "UIActivity", feature = "block2"))]
pub type UIActivityViewControllerCompletionWithItemsHandler =
    *mut block2::Block<dyn Fn(*mut UIActivityType, Bool, *mut NSArray, *mut NSError)>;

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
    pub struct UIActivityViewController;

    #[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
    unsafe impl ClassType for UIActivityViewController {
        #[inherits(UIResponder, NSObject)]
        type Super = UIViewController;
        type Mutability = MainThreadOnly;
    }
);

#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
unsafe impl NSCoding for UIActivityViewController {}

#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
unsafe impl NSObjectProtocol for UIActivityViewController {}

#[cfg(all(
    feature = "UIAppearance",
    feature = "UIResponder",
    feature = "UIViewController"
))]
unsafe impl UIAppearanceContainer for UIActivityViewController {}

#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
unsafe impl UIContentContainer for UIActivityViewController {}

#[cfg(all(
    feature = "UIFocus",
    feature = "UIResponder",
    feature = "UIViewController"
))]
unsafe impl UIFocusEnvironment for UIActivityViewController {}

#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
unsafe impl UIResponderStandardEditActions for UIActivityViewController {}

#[cfg(all(
    feature = "UIResponder",
    feature = "UITraitCollection",
    feature = "UIViewController"
))]
unsafe impl UITraitEnvironment for UIActivityViewController {}

extern_methods!(
    #[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
    unsafe impl UIActivityViewController {
        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[method_id(@__retain_semantics Init initWithNibName:bundle:)]
        pub unsafe fn initWithNibName_bundle(
            this: Allocated<Self>,
            nib_name_or_nil: Option<&NSString>,
            nib_bundle_or_nil: Option<&NSBundle>,
        ) -> Retained<Self>;

        #[method_id(@__retain_semantics Init initWithCoder:)]
        pub unsafe fn initWithCoder(
            this: Allocated<Self>,
            coder: &NSCoder,
        ) -> Option<Retained<Self>>;

        #[cfg(feature = "UIActivity")]
        #[method_id(@__retain_semantics Init initWithActivityItems:applicationActivities:)]
        pub unsafe fn initWithActivityItems_applicationActivities(
            this: Allocated<Self>,
            activity_items: &NSArray,
            application_activities: Option<&NSArray<UIActivity>>,
        ) -> Retained<Self>;

        #[cfg(all(feature = "UIActivity", feature = "block2"))]
        #[deprecated]
        #[method(completionHandler)]
        pub unsafe fn completionHandler(&self) -> UIActivityViewControllerCompletionHandler;

        #[cfg(all(feature = "UIActivity", feature = "block2"))]
        #[deprecated]
        #[method(setCompletionHandler:)]
        pub unsafe fn setCompletionHandler(
            &self,
            completion_handler: UIActivityViewControllerCompletionHandler,
        );

        #[cfg(all(feature = "UIActivity", feature = "block2"))]
        #[method(completionWithItemsHandler)]
        pub unsafe fn completionWithItemsHandler(
            &self,
        ) -> UIActivityViewControllerCompletionWithItemsHandler;

        #[cfg(all(feature = "UIActivity", feature = "block2"))]
        #[method(setCompletionWithItemsHandler:)]
        pub unsafe fn setCompletionWithItemsHandler(
            &self,
            completion_with_items_handler: UIActivityViewControllerCompletionWithItemsHandler,
        );

        #[cfg(feature = "UIActivity")]
        #[method_id(@__retain_semantics Other excludedActivityTypes)]
        pub unsafe fn excludedActivityTypes(&self) -> Option<Retained<NSArray<UIActivityType>>>;

        #[cfg(feature = "UIActivity")]
        #[method(setExcludedActivityTypes:)]
        pub unsafe fn setExcludedActivityTypes(
            &self,
            excluded_activity_types: Option<&NSArray<UIActivityType>>,
        );

        #[method(allowsProminentActivity)]
        pub unsafe fn allowsProminentActivity(&self) -> bool;

        #[method(setAllowsProminentActivity:)]
        pub unsafe fn setAllowsProminentActivity(&self, allows_prominent_activity: bool);
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    #[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
    unsafe impl UIActivityViewController {
        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
    }
);

extern_methods!(
    /// UIActivityItemsConfiguration
    #[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
    unsafe impl UIActivityViewController {
        #[cfg(feature = "UIActivityItemsConfigurationReading")]
        #[method_id(@__retain_semantics Init initWithActivityItemsConfiguration:)]
        pub unsafe fn initWithActivityItemsConfiguration(
            this: Allocated<Self>,
            activity_items_configuration: &ProtocolObject<dyn UIActivityItemsConfigurationReading>,
        ) -> Retained<Self>;
    }
);