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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(feature = "UIHoverStyle")]
    pub struct UIPointerStyle;

    #[cfg(feature = "UIHoverStyle")]
    unsafe impl ClassType for UIPointerStyle {
        #[inherits(NSObject)]
        type Super = UIHoverStyle;
        type Mutability = MainThreadOnly;
    }
);

#[cfg(feature = "UIHoverStyle")]
unsafe impl NSCopying for UIPointerStyle {}

#[cfg(feature = "UIHoverStyle")]
unsafe impl NSObjectProtocol for UIPointerStyle {}

extern_methods!(
    #[cfg(feature = "UIHoverStyle")]
    unsafe impl UIPointerStyle {
        #[cfg(feature = "UIPointerAccessory")]
        #[method_id(@__retain_semantics Other accessories)]
        pub unsafe fn accessories(&self) -> Retained<NSArray<UIPointerAccessory>>;

        #[cfg(feature = "UIPointerAccessory")]
        #[method(setAccessories:)]
        pub unsafe fn setAccessories(&self, accessories: &NSArray<UIPointerAccessory>);

        #[method_id(@__retain_semantics Other styleWithEffect:shape:)]
        pub unsafe fn styleWithEffect_shape(
            effect: &UIPointerEffect,
            shape: Option<&UIPointerShape>,
        ) -> Retained<Self>;

        #[cfg(feature = "UIGeometry")]
        #[method_id(@__retain_semantics Other styleWithShape:constrainedAxes:)]
        pub unsafe fn styleWithShape_constrainedAxes(
            shape: &UIPointerShape,
            axes: UIAxis,
        ) -> Retained<Self>;

        #[method_id(@__retain_semantics Other hiddenPointerStyle)]
        pub unsafe fn hiddenPointerStyle(mtm: MainThreadMarker) -> Retained<Self>;

        #[method_id(@__retain_semantics Other systemPointerStyle)]
        pub unsafe fn systemPointerStyle(mtm: MainThreadMarker) -> Retained<Self>;

        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
    }
);

extern_methods!(
    /// Methods declared on superclass `UIHoverStyle`
    #[cfg(feature = "UIHoverStyle")]
    unsafe impl UIPointerStyle {
        #[cfg(feature = "UIShape")]
        #[method_id(@__retain_semantics Other styleWithShape:)]
        pub unsafe fn styleWithShape(
            shape: Option<&UIShape>,
            mtm: MainThreadMarker,
        ) -> Retained<Self>;

        #[method_id(@__retain_semantics Other automaticStyle)]
        pub unsafe fn automaticStyle(mtm: MainThreadMarker) -> Retained<Self>;
    }
);

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct UIPointerEffect;

    unsafe impl ClassType for UIPointerEffect {
        type Super = NSObject;
        type Mutability = MainThreadOnly;
    }
);

unsafe impl NSCopying for UIPointerEffect {}

unsafe impl NSObjectProtocol for UIPointerEffect {}

#[cfg(feature = "UIHoverEffect")]
unsafe impl UIHoverEffect for UIPointerEffect {}

extern_methods!(
    unsafe impl UIPointerEffect {
        #[cfg(feature = "UITargetedPreview")]
        #[method_id(@__retain_semantics Other preview)]
        pub unsafe fn preview(&self) -> Retained<UITargetedPreview>;

        #[cfg(feature = "UITargetedPreview")]
        #[method_id(@__retain_semantics Other effectWithPreview:)]
        pub unsafe fn effectWithPreview(preview: &UITargetedPreview) -> Retained<Self>;

        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
    }
);

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct UIPointerHighlightEffect;

    unsafe impl ClassType for UIPointerHighlightEffect {
        #[inherits(NSObject)]
        type Super = UIPointerEffect;
        type Mutability = MainThreadOnly;
    }
);

unsafe impl NSCopying for UIPointerHighlightEffect {}

unsafe impl NSObjectProtocol for UIPointerHighlightEffect {}

#[cfg(feature = "UIHoverEffect")]
unsafe impl UIHoverEffect for UIPointerHighlightEffect {}

extern_methods!(
    unsafe impl UIPointerHighlightEffect {}
);

extern_methods!(
    /// Methods declared on superclass `UIPointerEffect`
    unsafe impl UIPointerHighlightEffect {
        #[cfg(feature = "UITargetedPreview")]
        #[method_id(@__retain_semantics Other effectWithPreview:)]
        pub unsafe fn effectWithPreview(preview: &UITargetedPreview) -> Retained<Self>;

        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
    }
);

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct UIPointerLiftEffect;

    unsafe impl ClassType for UIPointerLiftEffect {
        #[inherits(NSObject)]
        type Super = UIPointerEffect;
        type Mutability = MainThreadOnly;
    }
);

unsafe impl NSCopying for UIPointerLiftEffect {}

unsafe impl NSObjectProtocol for UIPointerLiftEffect {}

#[cfg(feature = "UIHoverEffect")]
unsafe impl UIHoverEffect for UIPointerLiftEffect {}

extern_methods!(
    unsafe impl UIPointerLiftEffect {}
);

extern_methods!(
    /// Methods declared on superclass `UIPointerEffect`
    unsafe impl UIPointerLiftEffect {
        #[cfg(feature = "UITargetedPreview")]
        #[method_id(@__retain_semantics Other effectWithPreview:)]
        pub unsafe fn effectWithPreview(preview: &UITargetedPreview) -> Retained<Self>;

        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
    }
);

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIPointerEffectTintMode(pub NSInteger);
impl UIPointerEffectTintMode {
    #[doc(alias = "UIPointerEffectTintModeNone")]
    pub const None: Self = Self(0);
    #[doc(alias = "UIPointerEffectTintModeOverlay")]
    pub const Overlay: Self = Self(1);
    #[doc(alias = "UIPointerEffectTintModeUnderlay")]
    pub const Underlay: Self = Self(2);
}

unsafe impl Encode for UIPointerEffectTintMode {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

unsafe impl RefEncode for UIPointerEffectTintMode {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct UIPointerHoverEffect;

    unsafe impl ClassType for UIPointerHoverEffect {
        #[inherits(NSObject)]
        type Super = UIPointerEffect;
        type Mutability = MainThreadOnly;
    }
);

unsafe impl NSCopying for UIPointerHoverEffect {}

unsafe impl NSObjectProtocol for UIPointerHoverEffect {}

#[cfg(feature = "UIHoverEffect")]
unsafe impl UIHoverEffect for UIPointerHoverEffect {}

extern_methods!(
    unsafe impl UIPointerHoverEffect {
        #[method(preferredTintMode)]
        pub unsafe fn preferredTintMode(&self) -> UIPointerEffectTintMode;

        #[method(setPreferredTintMode:)]
        pub unsafe fn setPreferredTintMode(&self, preferred_tint_mode: UIPointerEffectTintMode);

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

        #[method(setPrefersShadow:)]
        pub unsafe fn setPrefersShadow(&self, prefers_shadow: bool);

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

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

extern_methods!(
    /// Methods declared on superclass `UIPointerEffect`
    unsafe impl UIPointerHoverEffect {
        #[cfg(feature = "UITargetedPreview")]
        #[method_id(@__retain_semantics Other effectWithPreview:)]
        pub unsafe fn effectWithPreview(preview: &UITargetedPreview) -> Retained<Self>;

        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
    }
);

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct UIPointerShape;

    unsafe impl ClassType for UIPointerShape {
        type Super = NSObject;
        type Mutability = MainThreadOnly;
    }
);

unsafe impl NSCopying for UIPointerShape {}

unsafe impl NSObjectProtocol for UIPointerShape {}

extern_methods!(
    unsafe impl UIPointerShape {
        #[cfg(feature = "UIBezierPath")]
        #[method_id(@__retain_semantics Other shapeWithPath:)]
        pub unsafe fn shapeWithPath(path: &UIBezierPath, mtm: MainThreadMarker) -> Retained<Self>;

        #[method_id(@__retain_semantics Other shapeWithRoundedRect:)]
        pub unsafe fn shapeWithRoundedRect(rect: CGRect, mtm: MainThreadMarker) -> Retained<Self>;

        #[method_id(@__retain_semantics Other shapeWithRoundedRect:cornerRadius:)]
        pub unsafe fn shapeWithRoundedRect_cornerRadius(
            rect: CGRect,
            corner_radius: CGFloat,
            mtm: MainThreadMarker,
        ) -> Retained<Self>;

        #[cfg(feature = "UIGeometry")]
        #[method_id(@__retain_semantics Other beamWithPreferredLength:axis:)]
        pub unsafe fn beamWithPreferredLength_axis(
            length: CGFloat,
            axis: UIAxis,
            mtm: MainThreadMarker,
        ) -> Retained<Self>;

        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
    }
);