objc2_ui_kit/generated/
UIAccessibility.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
12extern "C-unwind" {
13    #[cfg(all(
14        feature = "UIResponder",
15        feature = "UIView",
16        feature = "objc2-core-foundation"
17    ))]
18    pub fn UIAccessibilityConvertFrameToScreenCoordinates(rect: CGRect, view: &UIView) -> CGRect;
19}
20
21#[cfg(all(feature = "UIBezierPath", feature = "UIResponder", feature = "UIView"))]
22#[inline]
23pub unsafe extern "C-unwind" fn UIAccessibilityConvertPathToScreenCoordinates(
24    path: &UIBezierPath,
25    view: &UIView,
26) -> Retained<UIBezierPath> {
27    extern "C-unwind" {
28        fn UIAccessibilityConvertPathToScreenCoordinates(
29            path: &UIBezierPath,
30            view: &UIView,
31        ) -> *mut UIBezierPath;
32    }
33    let ret = unsafe { UIAccessibilityConvertPathToScreenCoordinates(path, view) };
34    unsafe { Retained::retain_autoreleased(ret) }
35        .expect("function was marked as returning non-null, but actually returned NULL")
36}
37
38/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axboolreturnblock?language=objc)
39#[cfg(feature = "block2")]
40pub type AXBoolReturnBlock = *mut block2::Block<dyn Fn() -> Bool>;
41
42/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axstringreturnblock?language=objc)
43#[cfg(feature = "block2")]
44pub type AXStringReturnBlock = *mut block2::Block<dyn Fn() -> *mut NSString>;
45
46/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axstringarrayreturnblock?language=objc)
47#[cfg(feature = "block2")]
48pub type AXStringArrayReturnBlock = *mut block2::Block<dyn Fn() -> *mut NSArray<NSString>>;
49
50/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axattributedstringreturnblock?language=objc)
51#[cfg(feature = "block2")]
52pub type AXAttributedStringReturnBlock = *mut block2::Block<dyn Fn() -> *mut NSAttributedString>;
53
54/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axattributedstringarrayreturnblock?language=objc)
55#[cfg(feature = "block2")]
56pub type AXAttributedStringArrayReturnBlock =
57    *mut block2::Block<dyn Fn() -> *mut NSArray<NSAttributedString>>;
58
59/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axrectreturnblock?language=objc)
60#[cfg(all(feature = "block2", feature = "objc2-core-foundation"))]
61pub type AXRectReturnBlock = *mut block2::Block<dyn Fn() -> CGRect>;
62
63/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axpathreturnblock?language=objc)
64#[cfg(all(feature = "UIBezierPath", feature = "block2"))]
65pub type AXPathReturnBlock = *mut block2::Block<dyn Fn() -> *mut UIBezierPath>;
66
67/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axpointreturnblock?language=objc)
68#[cfg(all(feature = "block2", feature = "objc2-core-foundation"))]
69pub type AXPointReturnBlock = *mut block2::Block<dyn Fn() -> CGPoint>;
70
71/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axobjectreturnblock?language=objc)
72#[cfg(feature = "block2")]
73pub type AXObjectReturnBlock = *mut block2::Block<dyn Fn() -> *mut AnyObject>;
74
75/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axarrayreturnblock?language=objc)
76#[cfg(feature = "block2")]
77pub type AXArrayReturnBlock = *mut block2::Block<dyn Fn() -> *mut NSArray>;
78
79/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axvoidreturnblock?language=objc)
80#[cfg(feature = "block2")]
81pub type AXVoidReturnBlock = *mut block2::Block<dyn Fn()>;
82
83/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axtraitsreturnblock?language=objc)
84#[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
85pub type AXTraitsReturnBlock = *mut block2::Block<dyn Fn() -> UIAccessibilityTraits>;
86
87/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axnavigationstylereturnblock?language=objc)
88#[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
89pub type AXNavigationStyleReturnBlock =
90    *mut block2::Block<dyn Fn() -> UIAccessibilityNavigationStyle>;
91
92/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axcontainertypereturnblock?language=objc)
93#[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
94pub type AXContainerTypeReturnBlock = *mut block2::Block<dyn Fn() -> UIAccessibilityContainerType>;
95
96/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axtextualcontextreturnblock?language=objc)
97#[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
98pub type AXTextualContextReturnBlock =
99    *mut block2::Block<dyn Fn() -> *mut UIAccessibilityTextualContext>;
100
101/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axcustomactionsreturnblock?language=objc)
102#[cfg(all(feature = "UIAccessibilityCustomAction", feature = "block2"))]
103pub type AXCustomActionsReturnBlock =
104    *mut block2::Block<dyn Fn() -> *mut NSArray<UIAccessibilityCustomAction>>;
105
106/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axuitextinputreturnblock?language=objc)
107#[cfg(all(
108    feature = "UITextInput",
109    feature = "UITextInputTraits",
110    feature = "block2"
111))]
112pub type AXUITextInputReturnBlock =
113    *mut block2::Block<dyn Fn() -> *mut ProtocolObject<dyn UITextInput>>;
114
115mod private_NSObjectUIAccessibility {
116    pub trait Sealed {}
117}
118
119/// Category "UIAccessibility" on [`NSObject`].
120#[doc(alias = "UIAccessibility")]
121pub unsafe trait NSObjectUIAccessibility:
122    ClassType + Sized + private_NSObjectUIAccessibility::Sealed
123{
124    extern_methods!(
125        #[unsafe(method(isAccessibilityElement))]
126        #[unsafe(method_family = none)]
127        unsafe fn isAccessibilityElement(&self, mtm: MainThreadMarker) -> bool;
128
129        /// Setter for [`isAccessibilityElement`][Self::isAccessibilityElement].
130        #[unsafe(method(setIsAccessibilityElement:))]
131        #[unsafe(method_family = none)]
132        unsafe fn setIsAccessibilityElement(
133            &self,
134            is_accessibility_element: bool,
135            mtm: MainThreadMarker,
136        );
137
138        #[unsafe(method(accessibilityLabel))]
139        #[unsafe(method_family = none)]
140        unsafe fn accessibilityLabel(&self, mtm: MainThreadMarker) -> Option<Retained<NSString>>;
141
142        /// Setter for [`accessibilityLabel`][Self::accessibilityLabel].
143        #[unsafe(method(setAccessibilityLabel:))]
144        #[unsafe(method_family = none)]
145        unsafe fn setAccessibilityLabel(
146            &self,
147            accessibility_label: Option<&NSString>,
148            mtm: MainThreadMarker,
149        );
150
151        #[unsafe(method(accessibilityAttributedLabel))]
152        #[unsafe(method_family = none)]
153        unsafe fn accessibilityAttributedLabel(
154            &self,
155            mtm: MainThreadMarker,
156        ) -> Option<Retained<NSAttributedString>>;
157
158        /// Setter for [`accessibilityAttributedLabel`][Self::accessibilityAttributedLabel].
159        #[unsafe(method(setAccessibilityAttributedLabel:))]
160        #[unsafe(method_family = none)]
161        unsafe fn setAccessibilityAttributedLabel(
162            &self,
163            accessibility_attributed_label: Option<&NSAttributedString>,
164            mtm: MainThreadMarker,
165        );
166
167        #[unsafe(method(accessibilityHint))]
168        #[unsafe(method_family = none)]
169        unsafe fn accessibilityHint(&self, mtm: MainThreadMarker) -> Option<Retained<NSString>>;
170
171        /// Setter for [`accessibilityHint`][Self::accessibilityHint].
172        #[unsafe(method(setAccessibilityHint:))]
173        #[unsafe(method_family = none)]
174        unsafe fn setAccessibilityHint(
175            &self,
176            accessibility_hint: Option<&NSString>,
177            mtm: MainThreadMarker,
178        );
179
180        #[unsafe(method(accessibilityAttributedHint))]
181        #[unsafe(method_family = none)]
182        unsafe fn accessibilityAttributedHint(
183            &self,
184            mtm: MainThreadMarker,
185        ) -> Option<Retained<NSAttributedString>>;
186
187        /// Setter for [`accessibilityAttributedHint`][Self::accessibilityAttributedHint].
188        #[unsafe(method(setAccessibilityAttributedHint:))]
189        #[unsafe(method_family = none)]
190        unsafe fn setAccessibilityAttributedHint(
191            &self,
192            accessibility_attributed_hint: Option<&NSAttributedString>,
193            mtm: MainThreadMarker,
194        );
195
196        #[unsafe(method(accessibilityValue))]
197        #[unsafe(method_family = none)]
198        unsafe fn accessibilityValue(&self, mtm: MainThreadMarker) -> Option<Retained<NSString>>;
199
200        /// Setter for [`accessibilityValue`][Self::accessibilityValue].
201        #[unsafe(method(setAccessibilityValue:))]
202        #[unsafe(method_family = none)]
203        unsafe fn setAccessibilityValue(
204            &self,
205            accessibility_value: Option<&NSString>,
206            mtm: MainThreadMarker,
207        );
208
209        #[unsafe(method(accessibilityAttributedValue))]
210        #[unsafe(method_family = none)]
211        unsafe fn accessibilityAttributedValue(
212            &self,
213            mtm: MainThreadMarker,
214        ) -> Option<Retained<NSAttributedString>>;
215
216        /// Setter for [`accessibilityAttributedValue`][Self::accessibilityAttributedValue].
217        #[unsafe(method(setAccessibilityAttributedValue:))]
218        #[unsafe(method_family = none)]
219        unsafe fn setAccessibilityAttributedValue(
220            &self,
221            accessibility_attributed_value: Option<&NSAttributedString>,
222            mtm: MainThreadMarker,
223        );
224
225        #[cfg(feature = "UIAccessibilityConstants")]
226        #[unsafe(method(accessibilityTraits))]
227        #[unsafe(method_family = none)]
228        unsafe fn accessibilityTraits(&self, mtm: MainThreadMarker) -> UIAccessibilityTraits;
229
230        #[cfg(feature = "UIAccessibilityConstants")]
231        /// Setter for [`accessibilityTraits`][Self::accessibilityTraits].
232        #[unsafe(method(setAccessibilityTraits:))]
233        #[unsafe(method_family = none)]
234        unsafe fn setAccessibilityTraits(
235            &self,
236            accessibility_traits: UIAccessibilityTraits,
237            mtm: MainThreadMarker,
238        );
239
240        #[cfg(feature = "objc2-core-foundation")]
241        #[unsafe(method(accessibilityFrame))]
242        #[unsafe(method_family = none)]
243        unsafe fn accessibilityFrame(&self, mtm: MainThreadMarker) -> CGRect;
244
245        #[cfg(feature = "objc2-core-foundation")]
246        /// Setter for [`accessibilityFrame`][Self::accessibilityFrame].
247        #[unsafe(method(setAccessibilityFrame:))]
248        #[unsafe(method_family = none)]
249        unsafe fn setAccessibilityFrame(&self, accessibility_frame: CGRect, mtm: MainThreadMarker);
250
251        #[cfg(feature = "UIBezierPath")]
252        #[unsafe(method(accessibilityPath))]
253        #[unsafe(method_family = none)]
254        unsafe fn accessibilityPath(&self, mtm: MainThreadMarker)
255            -> Option<Retained<UIBezierPath>>;
256
257        #[cfg(feature = "UIBezierPath")]
258        /// Setter for [`accessibilityPath`][Self::accessibilityPath].
259        #[unsafe(method(setAccessibilityPath:))]
260        #[unsafe(method_family = none)]
261        unsafe fn setAccessibilityPath(
262            &self,
263            accessibility_path: Option<&UIBezierPath>,
264            mtm: MainThreadMarker,
265        );
266
267        #[cfg(feature = "objc2-core-foundation")]
268        #[unsafe(method(accessibilityActivationPoint))]
269        #[unsafe(method_family = none)]
270        unsafe fn accessibilityActivationPoint(&self, mtm: MainThreadMarker) -> CGPoint;
271
272        #[cfg(feature = "objc2-core-foundation")]
273        /// Setter for [`accessibilityActivationPoint`][Self::accessibilityActivationPoint].
274        #[unsafe(method(setAccessibilityActivationPoint:))]
275        #[unsafe(method_family = none)]
276        unsafe fn setAccessibilityActivationPoint(
277            &self,
278            accessibility_activation_point: CGPoint,
279            mtm: MainThreadMarker,
280        );
281
282        #[unsafe(method(accessibilityLanguage))]
283        #[unsafe(method_family = none)]
284        unsafe fn accessibilityLanguage(&self, mtm: MainThreadMarker)
285            -> Option<Retained<NSString>>;
286
287        /// Setter for [`accessibilityLanguage`][Self::accessibilityLanguage].
288        #[unsafe(method(setAccessibilityLanguage:))]
289        #[unsafe(method_family = none)]
290        unsafe fn setAccessibilityLanguage(
291            &self,
292            accessibility_language: Option<&NSString>,
293            mtm: MainThreadMarker,
294        );
295
296        #[unsafe(method(accessibilityElementsHidden))]
297        #[unsafe(method_family = none)]
298        unsafe fn accessibilityElementsHidden(&self, mtm: MainThreadMarker) -> bool;
299
300        /// Setter for [`accessibilityElementsHidden`][Self::accessibilityElementsHidden].
301        #[unsafe(method(setAccessibilityElementsHidden:))]
302        #[unsafe(method_family = none)]
303        unsafe fn setAccessibilityElementsHidden(
304            &self,
305            accessibility_elements_hidden: bool,
306            mtm: MainThreadMarker,
307        );
308
309        #[unsafe(method(accessibilityViewIsModal))]
310        #[unsafe(method_family = none)]
311        unsafe fn accessibilityViewIsModal(&self, mtm: MainThreadMarker) -> bool;
312
313        /// Setter for [`accessibilityViewIsModal`][Self::accessibilityViewIsModal].
314        #[unsafe(method(setAccessibilityViewIsModal:))]
315        #[unsafe(method_family = none)]
316        unsafe fn setAccessibilityViewIsModal(
317            &self,
318            accessibility_view_is_modal: bool,
319            mtm: MainThreadMarker,
320        );
321
322        #[unsafe(method(shouldGroupAccessibilityChildren))]
323        #[unsafe(method_family = none)]
324        unsafe fn shouldGroupAccessibilityChildren(&self, mtm: MainThreadMarker) -> bool;
325
326        /// Setter for [`shouldGroupAccessibilityChildren`][Self::shouldGroupAccessibilityChildren].
327        #[unsafe(method(setShouldGroupAccessibilityChildren:))]
328        #[unsafe(method_family = none)]
329        unsafe fn setShouldGroupAccessibilityChildren(
330            &self,
331            should_group_accessibility_children: bool,
332            mtm: MainThreadMarker,
333        );
334
335        #[cfg(feature = "UIAccessibilityConstants")]
336        #[unsafe(method(accessibilityNavigationStyle))]
337        #[unsafe(method_family = none)]
338        unsafe fn accessibilityNavigationStyle(
339            &self,
340            mtm: MainThreadMarker,
341        ) -> UIAccessibilityNavigationStyle;
342
343        #[cfg(feature = "UIAccessibilityConstants")]
344        /// Setter for [`accessibilityNavigationStyle`][Self::accessibilityNavigationStyle].
345        #[unsafe(method(setAccessibilityNavigationStyle:))]
346        #[unsafe(method_family = none)]
347        unsafe fn setAccessibilityNavigationStyle(
348            &self,
349            accessibility_navigation_style: UIAccessibilityNavigationStyle,
350            mtm: MainThreadMarker,
351        );
352
353        #[unsafe(method(accessibilityRespondsToUserInteraction))]
354        #[unsafe(method_family = none)]
355        unsafe fn accessibilityRespondsToUserInteraction(&self, mtm: MainThreadMarker) -> bool;
356
357        /// Setter for [`accessibilityRespondsToUserInteraction`][Self::accessibilityRespondsToUserInteraction].
358        #[unsafe(method(setAccessibilityRespondsToUserInteraction:))]
359        #[unsafe(method_family = none)]
360        unsafe fn setAccessibilityRespondsToUserInteraction(
361            &self,
362            accessibility_responds_to_user_interaction: bool,
363            mtm: MainThreadMarker,
364        );
365
366        #[unsafe(method(accessibilityUserInputLabels))]
367        #[unsafe(method_family = none)]
368        unsafe fn accessibilityUserInputLabels(
369            &self,
370            mtm: MainThreadMarker,
371        ) -> Option<Retained<NSArray<NSString>>>;
372
373        /// Setter for [`accessibilityUserInputLabels`][Self::accessibilityUserInputLabels].
374        #[unsafe(method(setAccessibilityUserInputLabels:))]
375        #[unsafe(method_family = none)]
376        unsafe fn setAccessibilityUserInputLabels(
377            &self,
378            accessibility_user_input_labels: Option<&NSArray<NSString>>,
379            mtm: MainThreadMarker,
380        );
381
382        #[unsafe(method(accessibilityAttributedUserInputLabels))]
383        #[unsafe(method_family = none)]
384        unsafe fn accessibilityAttributedUserInputLabels(
385            &self,
386            mtm: MainThreadMarker,
387        ) -> Retained<NSArray<NSAttributedString>>;
388
389        /// Setter for [`accessibilityAttributedUserInputLabels`][Self::accessibilityAttributedUserInputLabels].
390        #[unsafe(method(setAccessibilityAttributedUserInputLabels:))]
391        #[unsafe(method_family = none)]
392        unsafe fn setAccessibilityAttributedUserInputLabels(
393            &self,
394            accessibility_attributed_user_input_labels: Option<&NSArray<NSAttributedString>>,
395            mtm: MainThreadMarker,
396        );
397
398        #[unsafe(method(accessibilityHeaderElements))]
399        #[unsafe(method_family = none)]
400        unsafe fn accessibilityHeaderElements(
401            &self,
402            mtm: MainThreadMarker,
403        ) -> Option<Retained<NSArray>>;
404
405        /// Setter for [`accessibilityHeaderElements`][Self::accessibilityHeaderElements].
406        #[unsafe(method(setAccessibilityHeaderElements:))]
407        #[unsafe(method_family = none)]
408        unsafe fn setAccessibilityHeaderElements(
409            &self,
410            accessibility_header_elements: Option<&NSArray>,
411            mtm: MainThreadMarker,
412        );
413
414        #[cfg(feature = "UIAccessibilityConstants")]
415        #[unsafe(method(accessibilityTextualContext))]
416        #[unsafe(method_family = none)]
417        unsafe fn accessibilityTextualContext(
418            &self,
419            mtm: MainThreadMarker,
420        ) -> Option<Retained<UIAccessibilityTextualContext>>;
421
422        #[cfg(feature = "UIAccessibilityConstants")]
423        /// Setter for [`accessibilityTextualContext`][Self::accessibilityTextualContext].
424        #[unsafe(method(setAccessibilityTextualContext:))]
425        #[unsafe(method_family = none)]
426        unsafe fn setAccessibilityTextualContext(
427            &self,
428            accessibility_textual_context: Option<&UIAccessibilityTextualContext>,
429            mtm: MainThreadMarker,
430        );
431
432        #[cfg(feature = "UIAccessibilityConstants")]
433        #[unsafe(method(accessibilityDirectTouchOptions))]
434        #[unsafe(method_family = none)]
435        unsafe fn accessibilityDirectTouchOptions(
436            &self,
437            mtm: MainThreadMarker,
438        ) -> UIAccessibilityDirectTouchOptions;
439
440        #[cfg(feature = "UIAccessibilityConstants")]
441        /// Setter for [`accessibilityDirectTouchOptions`][Self::accessibilityDirectTouchOptions].
442        #[unsafe(method(setAccessibilityDirectTouchOptions:))]
443        #[unsafe(method_family = none)]
444        unsafe fn setAccessibilityDirectTouchOptions(
445            &self,
446            accessibility_direct_touch_options: UIAccessibilityDirectTouchOptions,
447            mtm: MainThreadMarker,
448        );
449
450        #[cfg(feature = "UIAccessibilityConstants")]
451        #[unsafe(method(accessibilityExpandedStatus))]
452        #[unsafe(method_family = none)]
453        unsafe fn accessibilityExpandedStatus(
454            &self,
455            mtm: MainThreadMarker,
456        ) -> UIAccessibilityExpandedStatus;
457
458        #[cfg(feature = "UIAccessibilityConstants")]
459        /// Setter for [`accessibilityExpandedStatus`][Self::accessibilityExpandedStatus].
460        #[unsafe(method(setAccessibilityExpandedStatus:))]
461        #[unsafe(method_family = none)]
462        unsafe fn setAccessibilityExpandedStatus(
463            &self,
464            accessibility_expanded_status: UIAccessibilityExpandedStatus,
465            mtm: MainThreadMarker,
466        );
467
468        #[cfg(feature = "block2")]
469        #[unsafe(method(isAccessibilityElementBlock))]
470        #[unsafe(method_family = none)]
471        unsafe fn isAccessibilityElementBlock(&self, mtm: MainThreadMarker) -> AXBoolReturnBlock;
472
473        #[cfg(feature = "block2")]
474        /// Setter for [`isAccessibilityElementBlock`][Self::isAccessibilityElementBlock].
475        #[unsafe(method(setIsAccessibilityElementBlock:))]
476        #[unsafe(method_family = none)]
477        unsafe fn setIsAccessibilityElementBlock(
478            &self,
479            is_accessibility_element_block: AXBoolReturnBlock,
480            mtm: MainThreadMarker,
481        );
482
483        #[cfg(feature = "block2")]
484        #[unsafe(method(accessibilityLabelBlock))]
485        #[unsafe(method_family = none)]
486        unsafe fn accessibilityLabelBlock(&self, mtm: MainThreadMarker) -> AXStringReturnBlock;
487
488        #[cfg(feature = "block2")]
489        /// Setter for [`accessibilityLabelBlock`][Self::accessibilityLabelBlock].
490        #[unsafe(method(setAccessibilityLabelBlock:))]
491        #[unsafe(method_family = none)]
492        unsafe fn setAccessibilityLabelBlock(
493            &self,
494            accessibility_label_block: AXStringReturnBlock,
495            mtm: MainThreadMarker,
496        );
497
498        #[cfg(feature = "block2")]
499        #[unsafe(method(accessibilityValueBlock))]
500        #[unsafe(method_family = none)]
501        unsafe fn accessibilityValueBlock(&self, mtm: MainThreadMarker) -> AXStringReturnBlock;
502
503        #[cfg(feature = "block2")]
504        /// Setter for [`accessibilityValueBlock`][Self::accessibilityValueBlock].
505        #[unsafe(method(setAccessibilityValueBlock:))]
506        #[unsafe(method_family = none)]
507        unsafe fn setAccessibilityValueBlock(
508            &self,
509            accessibility_value_block: AXStringReturnBlock,
510            mtm: MainThreadMarker,
511        );
512
513        #[cfg(feature = "block2")]
514        #[unsafe(method(accessibilityHintBlock))]
515        #[unsafe(method_family = none)]
516        unsafe fn accessibilityHintBlock(&self, mtm: MainThreadMarker) -> AXStringReturnBlock;
517
518        #[cfg(feature = "block2")]
519        /// Setter for [`accessibilityHintBlock`][Self::accessibilityHintBlock].
520        #[unsafe(method(setAccessibilityHintBlock:))]
521        #[unsafe(method_family = none)]
522        unsafe fn setAccessibilityHintBlock(
523            &self,
524            accessibility_hint_block: AXStringReturnBlock,
525            mtm: MainThreadMarker,
526        );
527
528        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
529        #[unsafe(method(accessibilityTraitsBlock))]
530        #[unsafe(method_family = none)]
531        unsafe fn accessibilityTraitsBlock(&self, mtm: MainThreadMarker) -> AXTraitsReturnBlock;
532
533        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
534        /// Setter for [`accessibilityTraitsBlock`][Self::accessibilityTraitsBlock].
535        #[unsafe(method(setAccessibilityTraitsBlock:))]
536        #[unsafe(method_family = none)]
537        unsafe fn setAccessibilityTraitsBlock(
538            &self,
539            accessibility_traits_block: AXTraitsReturnBlock,
540            mtm: MainThreadMarker,
541        );
542
543        #[cfg(feature = "block2")]
544        #[unsafe(method(accessibilityIdentifierBlock))]
545        #[unsafe(method_family = none)]
546        unsafe fn accessibilityIdentifierBlock(&self, mtm: MainThreadMarker)
547            -> AXStringReturnBlock;
548
549        #[cfg(feature = "block2")]
550        /// Setter for [`accessibilityIdentifierBlock`][Self::accessibilityIdentifierBlock].
551        #[unsafe(method(setAccessibilityIdentifierBlock:))]
552        #[unsafe(method_family = none)]
553        unsafe fn setAccessibilityIdentifierBlock(
554            &self,
555            accessibility_identifier_block: AXStringReturnBlock,
556            mtm: MainThreadMarker,
557        );
558
559        #[cfg(feature = "block2")]
560        #[unsafe(method(accessibilityHeaderElementsBlock))]
561        #[unsafe(method_family = none)]
562        unsafe fn accessibilityHeaderElementsBlock(
563            &self,
564            mtm: MainThreadMarker,
565        ) -> AXArrayReturnBlock;
566
567        #[cfg(feature = "block2")]
568        /// Setter for [`accessibilityHeaderElementsBlock`][Self::accessibilityHeaderElementsBlock].
569        #[unsafe(method(setAccessibilityHeaderElementsBlock:))]
570        #[unsafe(method_family = none)]
571        unsafe fn setAccessibilityHeaderElementsBlock(
572            &self,
573            accessibility_header_elements_block: AXArrayReturnBlock,
574            mtm: MainThreadMarker,
575        );
576
577        #[cfg(feature = "block2")]
578        #[unsafe(method(accessibilityAttributedLabelBlock))]
579        #[unsafe(method_family = none)]
580        unsafe fn accessibilityAttributedLabelBlock(
581            &self,
582            mtm: MainThreadMarker,
583        ) -> AXAttributedStringReturnBlock;
584
585        #[cfg(feature = "block2")]
586        /// Setter for [`accessibilityAttributedLabelBlock`][Self::accessibilityAttributedLabelBlock].
587        #[unsafe(method(setAccessibilityAttributedLabelBlock:))]
588        #[unsafe(method_family = none)]
589        unsafe fn setAccessibilityAttributedLabelBlock(
590            &self,
591            accessibility_attributed_label_block: AXAttributedStringReturnBlock,
592            mtm: MainThreadMarker,
593        );
594
595        #[cfg(feature = "block2")]
596        #[unsafe(method(accessibilityAttributedHintBlock))]
597        #[unsafe(method_family = none)]
598        unsafe fn accessibilityAttributedHintBlock(
599            &self,
600            mtm: MainThreadMarker,
601        ) -> AXAttributedStringReturnBlock;
602
603        #[cfg(feature = "block2")]
604        /// Setter for [`accessibilityAttributedHintBlock`][Self::accessibilityAttributedHintBlock].
605        #[unsafe(method(setAccessibilityAttributedHintBlock:))]
606        #[unsafe(method_family = none)]
607        unsafe fn setAccessibilityAttributedHintBlock(
608            &self,
609            accessibility_attributed_hint_block: AXAttributedStringReturnBlock,
610            mtm: MainThreadMarker,
611        );
612
613        #[cfg(feature = "block2")]
614        #[unsafe(method(accessibilityLanguageBlock))]
615        #[unsafe(method_family = none)]
616        unsafe fn accessibilityLanguageBlock(&self, mtm: MainThreadMarker) -> AXStringReturnBlock;
617
618        #[cfg(feature = "block2")]
619        /// Setter for [`accessibilityLanguageBlock`][Self::accessibilityLanguageBlock].
620        #[unsafe(method(setAccessibilityLanguageBlock:))]
621        #[unsafe(method_family = none)]
622        unsafe fn setAccessibilityLanguageBlock(
623            &self,
624            accessibility_language_block: AXStringReturnBlock,
625            mtm: MainThreadMarker,
626        );
627
628        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
629        #[unsafe(method(accessibilityTextualContextBlock))]
630        #[unsafe(method_family = none)]
631        unsafe fn accessibilityTextualContextBlock(
632            &self,
633            mtm: MainThreadMarker,
634        ) -> AXTextualContextReturnBlock;
635
636        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
637        /// Setter for [`accessibilityTextualContextBlock`][Self::accessibilityTextualContextBlock].
638        #[unsafe(method(setAccessibilityTextualContextBlock:))]
639        #[unsafe(method_family = none)]
640        unsafe fn setAccessibilityTextualContextBlock(
641            &self,
642            accessibility_textual_context_block: AXTextualContextReturnBlock,
643            mtm: MainThreadMarker,
644        );
645
646        #[cfg(feature = "block2")]
647        #[unsafe(method(accessibilityUserInputLabelsBlock))]
648        #[unsafe(method_family = none)]
649        unsafe fn accessibilityUserInputLabelsBlock(
650            &self,
651            mtm: MainThreadMarker,
652        ) -> AXStringArrayReturnBlock;
653
654        #[cfg(feature = "block2")]
655        /// Setter for [`accessibilityUserInputLabelsBlock`][Self::accessibilityUserInputLabelsBlock].
656        #[unsafe(method(setAccessibilityUserInputLabelsBlock:))]
657        #[unsafe(method_family = none)]
658        unsafe fn setAccessibilityUserInputLabelsBlock(
659            &self,
660            accessibility_user_input_labels_block: AXStringArrayReturnBlock,
661            mtm: MainThreadMarker,
662        );
663
664        #[cfg(feature = "block2")]
665        #[unsafe(method(accessibilityAttributedUserInputLabelsBlock))]
666        #[unsafe(method_family = none)]
667        unsafe fn accessibilityAttributedUserInputLabelsBlock(
668            &self,
669            mtm: MainThreadMarker,
670        ) -> AXAttributedStringArrayReturnBlock;
671
672        #[cfg(feature = "block2")]
673        /// Setter for [`accessibilityAttributedUserInputLabelsBlock`][Self::accessibilityAttributedUserInputLabelsBlock].
674        #[unsafe(method(setAccessibilityAttributedUserInputLabelsBlock:))]
675        #[unsafe(method_family = none)]
676        unsafe fn setAccessibilityAttributedUserInputLabelsBlock(
677            &self,
678            accessibility_attributed_user_input_labels_block: AXAttributedStringArrayReturnBlock,
679            mtm: MainThreadMarker,
680        );
681
682        #[cfg(feature = "block2")]
683        #[unsafe(method(accessibilityAttributedValueBlock))]
684        #[unsafe(method_family = none)]
685        unsafe fn accessibilityAttributedValueBlock(
686            &self,
687            mtm: MainThreadMarker,
688        ) -> AXAttributedStringReturnBlock;
689
690        #[cfg(feature = "block2")]
691        /// Setter for [`accessibilityAttributedValueBlock`][Self::accessibilityAttributedValueBlock].
692        #[unsafe(method(setAccessibilityAttributedValueBlock:))]
693        #[unsafe(method_family = none)]
694        unsafe fn setAccessibilityAttributedValueBlock(
695            &self,
696            accessibility_attributed_value_block: AXAttributedStringReturnBlock,
697            mtm: MainThreadMarker,
698        );
699
700        #[cfg(feature = "block2")]
701        #[unsafe(method(accessibilityElementsHiddenBlock))]
702        #[unsafe(method_family = none)]
703        unsafe fn accessibilityElementsHiddenBlock(
704            &self,
705            mtm: MainThreadMarker,
706        ) -> AXBoolReturnBlock;
707
708        #[cfg(feature = "block2")]
709        /// Setter for [`accessibilityElementsHiddenBlock`][Self::accessibilityElementsHiddenBlock].
710        #[unsafe(method(setAccessibilityElementsHiddenBlock:))]
711        #[unsafe(method_family = none)]
712        unsafe fn setAccessibilityElementsHiddenBlock(
713            &self,
714            accessibility_elements_hidden_block: AXBoolReturnBlock,
715            mtm: MainThreadMarker,
716        );
717
718        #[cfg(feature = "block2")]
719        #[unsafe(method(accessibilityRespondsToUserInteractionBlock))]
720        #[unsafe(method_family = none)]
721        unsafe fn accessibilityRespondsToUserInteractionBlock(
722            &self,
723            mtm: MainThreadMarker,
724        ) -> AXBoolReturnBlock;
725
726        #[cfg(feature = "block2")]
727        /// Setter for [`accessibilityRespondsToUserInteractionBlock`][Self::accessibilityRespondsToUserInteractionBlock].
728        #[unsafe(method(setAccessibilityRespondsToUserInteractionBlock:))]
729        #[unsafe(method_family = none)]
730        unsafe fn setAccessibilityRespondsToUserInteractionBlock(
731            &self,
732            accessibility_responds_to_user_interaction_block: AXBoolReturnBlock,
733            mtm: MainThreadMarker,
734        );
735
736        #[cfg(feature = "block2")]
737        #[unsafe(method(accessibilityViewIsModalBlock))]
738        #[unsafe(method_family = none)]
739        unsafe fn accessibilityViewIsModalBlock(&self, mtm: MainThreadMarker) -> AXBoolReturnBlock;
740
741        #[cfg(feature = "block2")]
742        /// Setter for [`accessibilityViewIsModalBlock`][Self::accessibilityViewIsModalBlock].
743        #[unsafe(method(setAccessibilityViewIsModalBlock:))]
744        #[unsafe(method_family = none)]
745        unsafe fn setAccessibilityViewIsModalBlock(
746            &self,
747            accessibility_view_is_modal_block: AXBoolReturnBlock,
748            mtm: MainThreadMarker,
749        );
750
751        #[cfg(feature = "block2")]
752        #[unsafe(method(accessibilityShouldGroupAccessibilityChildrenBlock))]
753        #[unsafe(method_family = none)]
754        unsafe fn accessibilityShouldGroupAccessibilityChildrenBlock(
755            &self,
756            mtm: MainThreadMarker,
757        ) -> AXBoolReturnBlock;
758
759        #[cfg(feature = "block2")]
760        /// Setter for [`accessibilityShouldGroupAccessibilityChildrenBlock`][Self::accessibilityShouldGroupAccessibilityChildrenBlock].
761        #[unsafe(method(setAccessibilityShouldGroupAccessibilityChildrenBlock:))]
762        #[unsafe(method_family = none)]
763        unsafe fn setAccessibilityShouldGroupAccessibilityChildrenBlock(
764            &self,
765            accessibility_should_group_accessibility_children_block: AXBoolReturnBlock,
766            mtm: MainThreadMarker,
767        );
768
769        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
770        #[unsafe(method(accessibilityExpandedStatusBlock))]
771        #[unsafe(method_family = none)]
772        unsafe fn accessibilityExpandedStatusBlock(
773            &self,
774            mtm: MainThreadMarker,
775        ) -> *mut block2::Block<dyn Fn() -> UIAccessibilityExpandedStatus>;
776
777        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
778        /// Setter for [`accessibilityExpandedStatusBlock`][Self::accessibilityExpandedStatusBlock].
779        #[unsafe(method(setAccessibilityExpandedStatusBlock:))]
780        #[unsafe(method_family = none)]
781        unsafe fn setAccessibilityExpandedStatusBlock(
782            &self,
783            accessibility_expanded_status_block: Option<
784                &block2::Block<dyn Fn() -> UIAccessibilityExpandedStatus>,
785            >,
786            mtm: MainThreadMarker,
787        );
788
789        #[cfg(feature = "block2")]
790        #[unsafe(method(accessibilityElementsBlock))]
791        #[unsafe(method_family = none)]
792        unsafe fn accessibilityElementsBlock(&self, mtm: MainThreadMarker) -> AXArrayReturnBlock;
793
794        #[cfg(feature = "block2")]
795        /// Setter for [`accessibilityElementsBlock`][Self::accessibilityElementsBlock].
796        #[unsafe(method(setAccessibilityElementsBlock:))]
797        #[unsafe(method_family = none)]
798        unsafe fn setAccessibilityElementsBlock(
799            &self,
800            accessibility_elements_block: AXArrayReturnBlock,
801            mtm: MainThreadMarker,
802        );
803
804        #[cfg(feature = "block2")]
805        #[unsafe(method(automationElementsBlock))]
806        #[unsafe(method_family = none)]
807        unsafe fn automationElementsBlock(&self, mtm: MainThreadMarker) -> AXArrayReturnBlock;
808
809        #[cfg(feature = "block2")]
810        /// Setter for [`automationElementsBlock`][Self::automationElementsBlock].
811        #[unsafe(method(setAutomationElementsBlock:))]
812        #[unsafe(method_family = none)]
813        unsafe fn setAutomationElementsBlock(
814            &self,
815            automation_elements_block: AXArrayReturnBlock,
816            mtm: MainThreadMarker,
817        );
818
819        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
820        #[unsafe(method(accessibilityContainerTypeBlock))]
821        #[unsafe(method_family = none)]
822        unsafe fn accessibilityContainerTypeBlock(
823            &self,
824            mtm: MainThreadMarker,
825        ) -> AXContainerTypeReturnBlock;
826
827        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
828        /// Setter for [`accessibilityContainerTypeBlock`][Self::accessibilityContainerTypeBlock].
829        #[unsafe(method(setAccessibilityContainerTypeBlock:))]
830        #[unsafe(method_family = none)]
831        unsafe fn setAccessibilityContainerTypeBlock(
832            &self,
833            accessibility_container_type_block: AXContainerTypeReturnBlock,
834            mtm: MainThreadMarker,
835        );
836
837        #[cfg(all(feature = "block2", feature = "objc2-core-foundation"))]
838        #[unsafe(method(accessibilityActivationPointBlock))]
839        #[unsafe(method_family = none)]
840        unsafe fn accessibilityActivationPointBlock(
841            &self,
842            mtm: MainThreadMarker,
843        ) -> AXPointReturnBlock;
844
845        #[cfg(all(feature = "block2", feature = "objc2-core-foundation"))]
846        /// Setter for [`accessibilityActivationPointBlock`][Self::accessibilityActivationPointBlock].
847        #[unsafe(method(setAccessibilityActivationPointBlock:))]
848        #[unsafe(method_family = none)]
849        unsafe fn setAccessibilityActivationPointBlock(
850            &self,
851            accessibility_activation_point_block: AXPointReturnBlock,
852            mtm: MainThreadMarker,
853        );
854
855        #[cfg(all(feature = "block2", feature = "objc2-core-foundation"))]
856        #[unsafe(method(accessibilityFrameBlock))]
857        #[unsafe(method_family = none)]
858        unsafe fn accessibilityFrameBlock(&self, mtm: MainThreadMarker) -> AXRectReturnBlock;
859
860        #[cfg(all(feature = "block2", feature = "objc2-core-foundation"))]
861        /// Setter for [`accessibilityFrameBlock`][Self::accessibilityFrameBlock].
862        #[unsafe(method(setAccessibilityFrameBlock:))]
863        #[unsafe(method_family = none)]
864        unsafe fn setAccessibilityFrameBlock(
865            &self,
866            accessibility_frame_block: AXRectReturnBlock,
867            mtm: MainThreadMarker,
868        );
869
870        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
871        #[unsafe(method(accessibilityNavigationStyleBlock))]
872        #[unsafe(method_family = none)]
873        unsafe fn accessibilityNavigationStyleBlock(
874            &self,
875            mtm: MainThreadMarker,
876        ) -> AXNavigationStyleReturnBlock;
877
878        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
879        /// Setter for [`accessibilityNavigationStyleBlock`][Self::accessibilityNavigationStyleBlock].
880        #[unsafe(method(setAccessibilityNavigationStyleBlock:))]
881        #[unsafe(method_family = none)]
882        unsafe fn setAccessibilityNavigationStyleBlock(
883            &self,
884            accessibility_navigation_style_block: AXNavigationStyleReturnBlock,
885            mtm: MainThreadMarker,
886        );
887
888        #[cfg(all(feature = "UIBezierPath", feature = "block2"))]
889        #[unsafe(method(accessibilityPathBlock))]
890        #[unsafe(method_family = none)]
891        unsafe fn accessibilityPathBlock(&self, mtm: MainThreadMarker) -> AXPathReturnBlock;
892
893        #[cfg(all(feature = "UIBezierPath", feature = "block2"))]
894        /// Setter for [`accessibilityPathBlock`][Self::accessibilityPathBlock].
895        #[unsafe(method(setAccessibilityPathBlock:))]
896        #[unsafe(method_family = none)]
897        unsafe fn setAccessibilityPathBlock(
898            &self,
899            accessibility_path_block: AXPathReturnBlock,
900            mtm: MainThreadMarker,
901        );
902
903        #[cfg(feature = "block2")]
904        #[unsafe(method(accessibilityActivateBlock))]
905        #[unsafe(method_family = none)]
906        unsafe fn accessibilityActivateBlock(&self, mtm: MainThreadMarker) -> AXBoolReturnBlock;
907
908        #[cfg(feature = "block2")]
909        /// Setter for [`accessibilityActivateBlock`][Self::accessibilityActivateBlock].
910        #[unsafe(method(setAccessibilityActivateBlock:))]
911        #[unsafe(method_family = none)]
912        unsafe fn setAccessibilityActivateBlock(
913            &self,
914            accessibility_activate_block: AXBoolReturnBlock,
915            mtm: MainThreadMarker,
916        );
917
918        #[cfg(feature = "block2")]
919        #[unsafe(method(accessibilityIncrementBlock))]
920        #[unsafe(method_family = none)]
921        unsafe fn accessibilityIncrementBlock(&self, mtm: MainThreadMarker) -> AXVoidReturnBlock;
922
923        #[cfg(feature = "block2")]
924        /// Setter for [`accessibilityIncrementBlock`][Self::accessibilityIncrementBlock].
925        #[unsafe(method(setAccessibilityIncrementBlock:))]
926        #[unsafe(method_family = none)]
927        unsafe fn setAccessibilityIncrementBlock(
928            &self,
929            accessibility_increment_block: AXVoidReturnBlock,
930            mtm: MainThreadMarker,
931        );
932
933        #[cfg(feature = "block2")]
934        #[unsafe(method(accessibilityDecrementBlock))]
935        #[unsafe(method_family = none)]
936        unsafe fn accessibilityDecrementBlock(&self, mtm: MainThreadMarker) -> AXVoidReturnBlock;
937
938        #[cfg(feature = "block2")]
939        /// Setter for [`accessibilityDecrementBlock`][Self::accessibilityDecrementBlock].
940        #[unsafe(method(setAccessibilityDecrementBlock:))]
941        #[unsafe(method_family = none)]
942        unsafe fn setAccessibilityDecrementBlock(
943            &self,
944            accessibility_decrement_block: AXVoidReturnBlock,
945            mtm: MainThreadMarker,
946        );
947
948        #[cfg(feature = "block2")]
949        #[unsafe(method(accessibilityPerformEscapeBlock))]
950        #[unsafe(method_family = none)]
951        unsafe fn accessibilityPerformEscapeBlock(
952            &self,
953            mtm: MainThreadMarker,
954        ) -> AXBoolReturnBlock;
955
956        #[cfg(feature = "block2")]
957        /// Setter for [`accessibilityPerformEscapeBlock`][Self::accessibilityPerformEscapeBlock].
958        #[unsafe(method(setAccessibilityPerformEscapeBlock:))]
959        #[unsafe(method_family = none)]
960        unsafe fn setAccessibilityPerformEscapeBlock(
961            &self,
962            accessibility_perform_escape_block: AXBoolReturnBlock,
963            mtm: MainThreadMarker,
964        );
965
966        #[cfg(feature = "block2")]
967        #[unsafe(method(accessibilityMagicTapBlock))]
968        #[unsafe(method_family = none)]
969        unsafe fn accessibilityMagicTapBlock(&self, mtm: MainThreadMarker) -> AXBoolReturnBlock;
970
971        #[cfg(feature = "block2")]
972        /// Setter for [`accessibilityMagicTapBlock`][Self::accessibilityMagicTapBlock].
973        #[unsafe(method(setAccessibilityMagicTapBlock:))]
974        #[unsafe(method_family = none)]
975        unsafe fn setAccessibilityMagicTapBlock(
976            &self,
977            accessibility_magic_tap_block: AXBoolReturnBlock,
978            mtm: MainThreadMarker,
979        );
980
981        #[cfg(all(feature = "UIAccessibilityCustomAction", feature = "block2"))]
982        #[unsafe(method(accessibilityCustomActionsBlock))]
983        #[unsafe(method_family = none)]
984        unsafe fn accessibilityCustomActionsBlock(
985            &self,
986            mtm: MainThreadMarker,
987        ) -> AXCustomActionsReturnBlock;
988
989        #[cfg(all(feature = "UIAccessibilityCustomAction", feature = "block2"))]
990        /// Setter for [`accessibilityCustomActionsBlock`][Self::accessibilityCustomActionsBlock].
991        #[unsafe(method(setAccessibilityCustomActionsBlock:))]
992        #[unsafe(method_family = none)]
993        unsafe fn setAccessibilityCustomActionsBlock(
994            &self,
995            accessibility_custom_actions_block: AXCustomActionsReturnBlock,
996            mtm: MainThreadMarker,
997        );
998    );
999}
1000
1001impl private_NSObjectUIAccessibility::Sealed for NSObject {}
1002unsafe impl NSObjectUIAccessibility for NSObject {}
1003
1004#[cfg(feature = "UIAccessibilityConstants")]
1005#[inline]
1006pub unsafe extern "C-unwind" fn UIAccessibilityFocusedElement(
1007    assistive_technology_identifier: Option<&UIAccessibilityAssistiveTechnologyIdentifier>,
1008) -> Option<Retained<AnyObject>> {
1009    extern "C-unwind" {
1010        fn UIAccessibilityFocusedElement(
1011            assistive_technology_identifier: Option<&UIAccessibilityAssistiveTechnologyIdentifier>,
1012        ) -> *mut AnyObject;
1013    }
1014    let ret = unsafe { UIAccessibilityFocusedElement(assistive_technology_identifier) };
1015    unsafe { Retained::retain_autoreleased(ret) }
1016}
1017
1018mod private_NSObjectUIAccessibilityFocus {
1019    pub trait Sealed {}
1020}
1021
1022/// Category "UIAccessibilityFocus" on [`NSObject`].
1023#[doc(alias = "UIAccessibilityFocus")]
1024pub unsafe trait NSObjectUIAccessibilityFocus:
1025    ClassType + Sized + private_NSObjectUIAccessibilityFocus::Sealed
1026{
1027    extern_methods!(
1028        #[unsafe(method(accessibilityElementDidBecomeFocused))]
1029        #[unsafe(method_family = none)]
1030        unsafe fn accessibilityElementDidBecomeFocused(&self, mtm: MainThreadMarker);
1031
1032        #[unsafe(method(accessibilityElementDidLoseFocus))]
1033        #[unsafe(method_family = none)]
1034        unsafe fn accessibilityElementDidLoseFocus(&self, mtm: MainThreadMarker);
1035
1036        #[unsafe(method(accessibilityElementIsFocused))]
1037        #[unsafe(method_family = none)]
1038        unsafe fn accessibilityElementIsFocused(&self, mtm: MainThreadMarker) -> bool;
1039
1040        #[cfg(feature = "UIAccessibilityConstants")]
1041        #[unsafe(method(accessibilityAssistiveTechnologyFocusedIdentifiers))]
1042        #[unsafe(method_family = none)]
1043        unsafe fn accessibilityAssistiveTechnologyFocusedIdentifiers(
1044            &self,
1045            mtm: MainThreadMarker,
1046        ) -> Option<Retained<NSSet<UIAccessibilityAssistiveTechnologyIdentifier>>>;
1047    );
1048}
1049
1050impl private_NSObjectUIAccessibilityFocus::Sealed for NSObject {}
1051unsafe impl NSObjectUIAccessibilityFocus for NSObject {}
1052
1053/// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityscrolldirection?language=objc)
1054// NS_ENUM
1055#[repr(transparent)]
1056#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
1057pub struct UIAccessibilityScrollDirection(pub NSInteger);
1058impl UIAccessibilityScrollDirection {
1059    #[doc(alias = "UIAccessibilityScrollDirectionRight")]
1060    pub const Right: Self = Self(1);
1061    #[doc(alias = "UIAccessibilityScrollDirectionLeft")]
1062    pub const Left: Self = Self(2);
1063    #[doc(alias = "UIAccessibilityScrollDirectionUp")]
1064    pub const Up: Self = Self(3);
1065    #[doc(alias = "UIAccessibilityScrollDirectionDown")]
1066    pub const Down: Self = Self(4);
1067    #[doc(alias = "UIAccessibilityScrollDirectionNext")]
1068    pub const Next: Self = Self(5);
1069    #[doc(alias = "UIAccessibilityScrollDirectionPrevious")]
1070    pub const Previous: Self = Self(6);
1071}
1072
1073unsafe impl Encode for UIAccessibilityScrollDirection {
1074    const ENCODING: Encoding = NSInteger::ENCODING;
1075}
1076
1077unsafe impl RefEncode for UIAccessibilityScrollDirection {
1078    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1079}
1080
1081mod private_NSObjectUIAccessibilityAction {
1082    pub trait Sealed {}
1083}
1084
1085/// Category "UIAccessibilityAction" on [`NSObject`].
1086#[doc(alias = "UIAccessibilityAction")]
1087pub unsafe trait NSObjectUIAccessibilityAction:
1088    ClassType + Sized + private_NSObjectUIAccessibilityAction::Sealed
1089{
1090    extern_methods!(
1091        #[unsafe(method(accessibilityActivate))]
1092        #[unsafe(method_family = none)]
1093        unsafe fn accessibilityActivate(&self, mtm: MainThreadMarker) -> bool;
1094
1095        #[unsafe(method(accessibilityIncrement))]
1096        #[unsafe(method_family = none)]
1097        unsafe fn accessibilityIncrement(&self, mtm: MainThreadMarker);
1098
1099        #[unsafe(method(accessibilityDecrement))]
1100        #[unsafe(method_family = none)]
1101        unsafe fn accessibilityDecrement(&self, mtm: MainThreadMarker);
1102
1103        #[cfg(feature = "objc2-core-foundation")]
1104        #[unsafe(method(accessibilityZoomInAtPoint:))]
1105        #[unsafe(method_family = none)]
1106        unsafe fn accessibilityZoomInAtPoint(&self, point: CGPoint, mtm: MainThreadMarker) -> bool;
1107
1108        #[cfg(feature = "objc2-core-foundation")]
1109        #[unsafe(method(accessibilityZoomOutAtPoint:))]
1110        #[unsafe(method_family = none)]
1111        unsafe fn accessibilityZoomOutAtPoint(&self, point: CGPoint, mtm: MainThreadMarker)
1112            -> bool;
1113
1114        #[unsafe(method(accessibilityScroll:))]
1115        #[unsafe(method_family = none)]
1116        unsafe fn accessibilityScroll(
1117            &self,
1118            direction: UIAccessibilityScrollDirection,
1119            mtm: MainThreadMarker,
1120        ) -> bool;
1121
1122        #[unsafe(method(accessibilityPerformEscape))]
1123        #[unsafe(method_family = none)]
1124        unsafe fn accessibilityPerformEscape(&self, mtm: MainThreadMarker) -> bool;
1125
1126        #[unsafe(method(accessibilityPerformMagicTap))]
1127        #[unsafe(method_family = none)]
1128        unsafe fn accessibilityPerformMagicTap(&self, mtm: MainThreadMarker) -> bool;
1129
1130        #[cfg(feature = "UIAccessibilityCustomAction")]
1131        #[unsafe(method(accessibilityCustomActions))]
1132        #[unsafe(method_family = none)]
1133        unsafe fn accessibilityCustomActions(
1134            &self,
1135            mtm: MainThreadMarker,
1136        ) -> Option<Retained<NSArray<UIAccessibilityCustomAction>>>;
1137
1138        #[cfg(feature = "UIAccessibilityCustomAction")]
1139        /// Setter for [`accessibilityCustomActions`][Self::accessibilityCustomActions].
1140        #[unsafe(method(setAccessibilityCustomActions:))]
1141        #[unsafe(method_family = none)]
1142        unsafe fn setAccessibilityCustomActions(
1143            &self,
1144            accessibility_custom_actions: Option<&NSArray<UIAccessibilityCustomAction>>,
1145            mtm: MainThreadMarker,
1146        );
1147    );
1148}
1149
1150impl private_NSObjectUIAccessibilityAction::Sealed for NSObject {}
1151unsafe impl NSObjectUIAccessibilityAction for NSObject {}
1152
1153extern_protocol!(
1154    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityreadingcontent?language=objc)
1155    pub unsafe trait UIAccessibilityReadingContent: MainThreadOnly {
1156        #[cfg(feature = "objc2-core-foundation")]
1157        #[unsafe(method(accessibilityLineNumberForPoint:))]
1158        #[unsafe(method_family = none)]
1159        unsafe fn accessibilityLineNumberForPoint(&self, point: CGPoint) -> NSInteger;
1160
1161        #[unsafe(method(accessibilityContentForLineNumber:))]
1162        #[unsafe(method_family = none)]
1163        unsafe fn accessibilityContentForLineNumber(
1164            &self,
1165            line_number: NSInteger,
1166        ) -> Option<Retained<NSString>>;
1167
1168        #[cfg(feature = "objc2-core-foundation")]
1169        #[unsafe(method(accessibilityFrameForLineNumber:))]
1170        #[unsafe(method_family = none)]
1171        unsafe fn accessibilityFrameForLineNumber(&self, line_number: NSInteger) -> CGRect;
1172
1173        #[unsafe(method(accessibilityPageContent))]
1174        #[unsafe(method_family = none)]
1175        unsafe fn accessibilityPageContent(&self) -> Option<Retained<NSString>>;
1176
1177        #[optional]
1178        #[unsafe(method(accessibilityAttributedContentForLineNumber:))]
1179        #[unsafe(method_family = none)]
1180        unsafe fn accessibilityAttributedContentForLineNumber(
1181            &self,
1182            line_number: NSInteger,
1183        ) -> Option<Retained<NSAttributedString>>;
1184
1185        #[optional]
1186        #[unsafe(method(accessibilityAttributedPageContent))]
1187        #[unsafe(method_family = none)]
1188        unsafe fn accessibilityAttributedPageContent(&self)
1189            -> Option<Retained<NSAttributedString>>;
1190    }
1191);
1192
1193mod private_NSObjectUIAccessibilityDragging {
1194    pub trait Sealed {}
1195}
1196
1197/// Category "UIAccessibilityDragging" on [`NSObject`].
1198#[doc(alias = "UIAccessibilityDragging")]
1199pub unsafe trait NSObjectUIAccessibilityDragging:
1200    ClassType + Sized + private_NSObjectUIAccessibilityDragging::Sealed
1201{
1202    extern_methods!(
1203        #[cfg(feature = "UIAccessibilityLocationDescriptor")]
1204        #[unsafe(method(accessibilityDragSourceDescriptors))]
1205        #[unsafe(method_family = none)]
1206        unsafe fn accessibilityDragSourceDescriptors(
1207            &self,
1208            mtm: MainThreadMarker,
1209        ) -> Option<Retained<NSArray<UIAccessibilityLocationDescriptor>>>;
1210
1211        #[cfg(feature = "UIAccessibilityLocationDescriptor")]
1212        /// Setter for [`accessibilityDragSourceDescriptors`][Self::accessibilityDragSourceDescriptors].
1213        #[unsafe(method(setAccessibilityDragSourceDescriptors:))]
1214        #[unsafe(method_family = none)]
1215        unsafe fn setAccessibilityDragSourceDescriptors(
1216            &self,
1217            accessibility_drag_source_descriptors: Option<
1218                &NSArray<UIAccessibilityLocationDescriptor>,
1219            >,
1220            mtm: MainThreadMarker,
1221        );
1222
1223        #[cfg(feature = "UIAccessibilityLocationDescriptor")]
1224        #[unsafe(method(accessibilityDropPointDescriptors))]
1225        #[unsafe(method_family = none)]
1226        unsafe fn accessibilityDropPointDescriptors(
1227            &self,
1228            mtm: MainThreadMarker,
1229        ) -> Option<Retained<NSArray<UIAccessibilityLocationDescriptor>>>;
1230
1231        #[cfg(feature = "UIAccessibilityLocationDescriptor")]
1232        /// Setter for [`accessibilityDropPointDescriptors`][Self::accessibilityDropPointDescriptors].
1233        #[unsafe(method(setAccessibilityDropPointDescriptors:))]
1234        #[unsafe(method_family = none)]
1235        unsafe fn setAccessibilityDropPointDescriptors(
1236            &self,
1237            accessibility_drop_point_descriptors: Option<
1238                &NSArray<UIAccessibilityLocationDescriptor>,
1239            >,
1240            mtm: MainThreadMarker,
1241        );
1242    );
1243}
1244
1245impl private_NSObjectUIAccessibilityDragging::Sealed for NSObject {}
1246unsafe impl NSObjectUIAccessibilityDragging for NSObject {}
1247
1248mod private_NSObjectUIAccessibilityHitTest {
1249    pub trait Sealed {}
1250}
1251
1252/// Category "UIAccessibilityHitTest" on [`NSObject`].
1253#[doc(alias = "UIAccessibilityHitTest")]
1254pub unsafe trait NSObjectUIAccessibilityHitTest:
1255    ClassType + Sized + private_NSObjectUIAccessibilityHitTest::Sealed
1256{
1257    extern_methods!(
1258        #[cfg(all(feature = "UIEvent", feature = "objc2-core-foundation"))]
1259        #[unsafe(method(accessibilityHitTest:withEvent:))]
1260        #[unsafe(method_family = none)]
1261        unsafe fn accessibilityHitTest_withEvent(
1262            &self,
1263            point: CGPoint,
1264            event: Option<&UIEvent>,
1265            mtm: MainThreadMarker,
1266        ) -> Option<Retained<AnyObject>>;
1267    );
1268}
1269
1270impl private_NSObjectUIAccessibilityHitTest::Sealed for NSObject {}
1271unsafe impl NSObjectUIAccessibilityHitTest for NSObject {}
1272
1273mod private_NSObjectUIAccessibilityTextNavigation {
1274    pub trait Sealed {}
1275}
1276
1277/// Category "UIAccessibilityTextNavigation" on [`NSObject`].
1278#[doc(alias = "UIAccessibilityTextNavigation")]
1279pub unsafe trait NSObjectUIAccessibilityTextNavigation:
1280    ClassType + Sized + private_NSObjectUIAccessibilityTextNavigation::Sealed
1281{
1282    extern_methods!(
1283        #[unsafe(method(accessibilityPreviousTextNavigationElement))]
1284        #[unsafe(method_family = none)]
1285        unsafe fn accessibilityPreviousTextNavigationElement(
1286            &self,
1287            mtm: MainThreadMarker,
1288        ) -> Option<Retained<AnyObject>>;
1289
1290        /// Setter for [`accessibilityPreviousTextNavigationElement`][Self::accessibilityPreviousTextNavigationElement].
1291        #[unsafe(method(setAccessibilityPreviousTextNavigationElement:))]
1292        #[unsafe(method_family = none)]
1293        unsafe fn setAccessibilityPreviousTextNavigationElement(
1294            &self,
1295            accessibility_previous_text_navigation_element: Option<&AnyObject>,
1296            mtm: MainThreadMarker,
1297        );
1298
1299        #[unsafe(method(accessibilityNextTextNavigationElement))]
1300        #[unsafe(method_family = none)]
1301        unsafe fn accessibilityNextTextNavigationElement(
1302            &self,
1303            mtm: MainThreadMarker,
1304        ) -> Option<Retained<AnyObject>>;
1305
1306        /// Setter for [`accessibilityNextTextNavigationElement`][Self::accessibilityNextTextNavigationElement].
1307        #[unsafe(method(setAccessibilityNextTextNavigationElement:))]
1308        #[unsafe(method_family = none)]
1309        unsafe fn setAccessibilityNextTextNavigationElement(
1310            &self,
1311            accessibility_next_text_navigation_element: Option<&AnyObject>,
1312            mtm: MainThreadMarker,
1313        );
1314
1315        #[cfg(feature = "block2")]
1316        #[unsafe(method(accessibilityPreviousTextNavigationElementBlock))]
1317        #[unsafe(method_family = none)]
1318        unsafe fn accessibilityPreviousTextNavigationElementBlock(
1319            &self,
1320            mtm: MainThreadMarker,
1321        ) -> AXObjectReturnBlock;
1322
1323        #[cfg(feature = "block2")]
1324        /// Setter for [`accessibilityPreviousTextNavigationElementBlock`][Self::accessibilityPreviousTextNavigationElementBlock].
1325        #[unsafe(method(setAccessibilityPreviousTextNavigationElementBlock:))]
1326        #[unsafe(method_family = none)]
1327        unsafe fn setAccessibilityPreviousTextNavigationElementBlock(
1328            &self,
1329            accessibility_previous_text_navigation_element_block: AXObjectReturnBlock,
1330            mtm: MainThreadMarker,
1331        );
1332
1333        #[cfg(feature = "block2")]
1334        #[unsafe(method(accessibilityNextTextNavigationElementBlock))]
1335        #[unsafe(method_family = none)]
1336        unsafe fn accessibilityNextTextNavigationElementBlock(
1337            &self,
1338            mtm: MainThreadMarker,
1339        ) -> AXObjectReturnBlock;
1340
1341        #[cfg(feature = "block2")]
1342        /// Setter for [`accessibilityNextTextNavigationElementBlock`][Self::accessibilityNextTextNavigationElementBlock].
1343        #[unsafe(method(setAccessibilityNextTextNavigationElementBlock:))]
1344        #[unsafe(method_family = none)]
1345        unsafe fn setAccessibilityNextTextNavigationElementBlock(
1346            &self,
1347            accessibility_next_text_navigation_element_block: AXObjectReturnBlock,
1348            mtm: MainThreadMarker,
1349        );
1350    );
1351}
1352
1353impl private_NSObjectUIAccessibilityTextNavigation::Sealed for NSObject {}
1354unsafe impl NSObjectUIAccessibilityTextNavigation for NSObject {}
1355
1356mod private_NSObjectUIAccessibilityTextOperations {
1357    pub trait Sealed {}
1358}
1359
1360/// Category "UIAccessibilityTextOperations" on [`NSObject`].
1361#[doc(alias = "UIAccessibilityTextOperations")]
1362pub unsafe trait NSObjectUIAccessibilityTextOperations:
1363    ClassType + Sized + private_NSObjectUIAccessibilityTextOperations::Sealed
1364{
1365    extern_methods!(
1366        #[cfg(all(feature = "UITextInput", feature = "UITextInputTraits"))]
1367        #[unsafe(method(accessibilityTextInputResponder))]
1368        #[unsafe(method_family = none)]
1369        unsafe fn accessibilityTextInputResponder(
1370            &self,
1371            mtm: MainThreadMarker,
1372        ) -> Option<Retained<ProtocolObject<dyn UITextInput>>>;
1373
1374        #[cfg(all(feature = "UITextInput", feature = "UITextInputTraits"))]
1375        /// This is a [weak property][objc2::topics::weak_property].
1376        /// Setter for [`accessibilityTextInputResponder`][Self::accessibilityTextInputResponder].
1377        #[unsafe(method(setAccessibilityTextInputResponder:))]
1378        #[unsafe(method_family = none)]
1379        unsafe fn setAccessibilityTextInputResponder(
1380            &self,
1381            accessibility_text_input_responder: Option<&ProtocolObject<dyn UITextInput>>,
1382            mtm: MainThreadMarker,
1383        );
1384
1385        #[cfg(all(
1386            feature = "UITextInput",
1387            feature = "UITextInputTraits",
1388            feature = "block2"
1389        ))]
1390        #[unsafe(method(accessibilityTextInputResponderBlock))]
1391        #[unsafe(method_family = none)]
1392        unsafe fn accessibilityTextInputResponderBlock(
1393            &self,
1394            mtm: MainThreadMarker,
1395        ) -> AXUITextInputReturnBlock;
1396
1397        #[cfg(all(
1398            feature = "UITextInput",
1399            feature = "UITextInputTraits",
1400            feature = "block2"
1401        ))]
1402        /// Setter for [`accessibilityTextInputResponderBlock`][Self::accessibilityTextInputResponderBlock].
1403        #[unsafe(method(setAccessibilityTextInputResponderBlock:))]
1404        #[unsafe(method_family = none)]
1405        unsafe fn setAccessibilityTextInputResponderBlock(
1406            &self,
1407            accessibility_text_input_responder_block: AXUITextInputReturnBlock,
1408            mtm: MainThreadMarker,
1409        );
1410    );
1411}
1412
1413impl private_NSObjectUIAccessibilityTextOperations::Sealed for NSObject {}
1414unsafe impl NSObjectUIAccessibilityTextOperations for NSObject {}
1415
1416extern "C-unwind" {
1417    #[cfg(feature = "UIAccessibilityConstants")]
1418    pub fn UIAccessibilityPostNotification(
1419        notification: UIAccessibilityNotifications,
1420        argument: Option<&AnyObject>,
1421    );
1422}
1423
1424#[inline]
1425pub unsafe extern "C-unwind" fn UIAccessibilityIsVoiceOverRunning() -> bool {
1426    extern "C-unwind" {
1427        fn UIAccessibilityIsVoiceOverRunning() -> Bool;
1428    }
1429    unsafe { UIAccessibilityIsVoiceOverRunning() }.as_bool()
1430}
1431
1432extern "C" {
1433    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityvoiceoverstatuschanged?language=objc)
1434    pub static UIAccessibilityVoiceOverStatusChanged: &'static NSString;
1435}
1436
1437extern "C" {
1438    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityvoiceoverstatusdidchangenotification?language=objc)
1439    pub static UIAccessibilityVoiceOverStatusDidChangeNotification: &'static NSNotificationName;
1440}
1441
1442#[inline]
1443pub unsafe extern "C-unwind" fn UIAccessibilityIsMonoAudioEnabled() -> bool {
1444    extern "C-unwind" {
1445        fn UIAccessibilityIsMonoAudioEnabled() -> Bool;
1446    }
1447    unsafe { UIAccessibilityIsMonoAudioEnabled() }.as_bool()
1448}
1449
1450extern "C" {
1451    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilitymonoaudiostatusdidchangenotification?language=objc)
1452    pub static UIAccessibilityMonoAudioStatusDidChangeNotification: &'static NSNotificationName;
1453}
1454
1455#[inline]
1456pub unsafe extern "C-unwind" fn UIAccessibilityIsClosedCaptioningEnabled() -> bool {
1457    extern "C-unwind" {
1458        fn UIAccessibilityIsClosedCaptioningEnabled() -> Bool;
1459    }
1460    unsafe { UIAccessibilityIsClosedCaptioningEnabled() }.as_bool()
1461}
1462
1463extern "C" {
1464    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityclosedcaptioningstatusdidchangenotification?language=objc)
1465    pub static UIAccessibilityClosedCaptioningStatusDidChangeNotification:
1466        &'static NSNotificationName;
1467}
1468
1469#[inline]
1470pub unsafe extern "C-unwind" fn UIAccessibilityIsInvertColorsEnabled() -> bool {
1471    extern "C-unwind" {
1472        fn UIAccessibilityIsInvertColorsEnabled() -> Bool;
1473    }
1474    unsafe { UIAccessibilityIsInvertColorsEnabled() }.as_bool()
1475}
1476
1477extern "C" {
1478    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityinvertcolorsstatusdidchangenotification?language=objc)
1479    pub static UIAccessibilityInvertColorsStatusDidChangeNotification: &'static NSNotificationName;
1480}
1481
1482#[inline]
1483pub unsafe extern "C-unwind" fn UIAccessibilityIsGuidedAccessEnabled() -> bool {
1484    extern "C-unwind" {
1485        fn UIAccessibilityIsGuidedAccessEnabled() -> Bool;
1486    }
1487    unsafe { UIAccessibilityIsGuidedAccessEnabled() }.as_bool()
1488}
1489
1490extern "C" {
1491    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityguidedaccessstatusdidchangenotification?language=objc)
1492    pub static UIAccessibilityGuidedAccessStatusDidChangeNotification: &'static NSNotificationName;
1493}
1494
1495#[inline]
1496pub unsafe extern "C-unwind" fn UIAccessibilityIsBoldTextEnabled() -> bool {
1497    extern "C-unwind" {
1498        fn UIAccessibilityIsBoldTextEnabled() -> Bool;
1499    }
1500    unsafe { UIAccessibilityIsBoldTextEnabled() }.as_bool()
1501}
1502
1503extern "C" {
1504    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityboldtextstatusdidchangenotification?language=objc)
1505    pub static UIAccessibilityBoldTextStatusDidChangeNotification: &'static NSNotificationName;
1506}
1507
1508#[inline]
1509pub unsafe extern "C-unwind" fn UIAccessibilityButtonShapesEnabled() -> bool {
1510    extern "C-unwind" {
1511        fn UIAccessibilityButtonShapesEnabled() -> Bool;
1512    }
1513    unsafe { UIAccessibilityButtonShapesEnabled() }.as_bool()
1514}
1515
1516extern "C" {
1517    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilitybuttonshapesenabledstatusdidchangenotification?language=objc)
1518    pub static UIAccessibilityButtonShapesEnabledStatusDidChangeNotification:
1519        &'static NSNotificationName;
1520}
1521
1522#[inline]
1523pub unsafe extern "C-unwind" fn UIAccessibilityIsGrayscaleEnabled() -> bool {
1524    extern "C-unwind" {
1525        fn UIAccessibilityIsGrayscaleEnabled() -> Bool;
1526    }
1527    unsafe { UIAccessibilityIsGrayscaleEnabled() }.as_bool()
1528}
1529
1530extern "C" {
1531    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilitygrayscalestatusdidchangenotification?language=objc)
1532    pub static UIAccessibilityGrayscaleStatusDidChangeNotification: &'static NSNotificationName;
1533}
1534
1535#[inline]
1536pub unsafe extern "C-unwind" fn UIAccessibilityIsReduceTransparencyEnabled() -> bool {
1537    extern "C-unwind" {
1538        fn UIAccessibilityIsReduceTransparencyEnabled() -> Bool;
1539    }
1540    unsafe { UIAccessibilityIsReduceTransparencyEnabled() }.as_bool()
1541}
1542
1543extern "C" {
1544    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityreducetransparencystatusdidchangenotification?language=objc)
1545    pub static UIAccessibilityReduceTransparencyStatusDidChangeNotification:
1546        &'static NSNotificationName;
1547}
1548
1549#[inline]
1550pub unsafe extern "C-unwind" fn UIAccessibilityIsReduceMotionEnabled() -> bool {
1551    extern "C-unwind" {
1552        fn UIAccessibilityIsReduceMotionEnabled() -> Bool;
1553    }
1554    unsafe { UIAccessibilityIsReduceMotionEnabled() }.as_bool()
1555}
1556
1557extern "C" {
1558    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityreducemotionstatusdidchangenotification?language=objc)
1559    pub static UIAccessibilityReduceMotionStatusDidChangeNotification: &'static NSNotificationName;
1560}
1561
1562#[inline]
1563pub unsafe extern "C-unwind" fn UIAccessibilityPrefersCrossFadeTransitions() -> bool {
1564    extern "C-unwind" {
1565        fn UIAccessibilityPrefersCrossFadeTransitions() -> Bool;
1566    }
1567    unsafe { UIAccessibilityPrefersCrossFadeTransitions() }.as_bool()
1568}
1569
1570extern "C" {
1571    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilitypreferscrossfadetransitionsstatusdidchangenotification?language=objc)
1572    pub static UIAccessibilityPrefersCrossFadeTransitionsStatusDidChangeNotification:
1573        &'static NSNotificationName;
1574}
1575
1576#[inline]
1577pub unsafe extern "C-unwind" fn UIAccessibilityIsVideoAutoplayEnabled() -> bool {
1578    extern "C-unwind" {
1579        fn UIAccessibilityIsVideoAutoplayEnabled() -> Bool;
1580    }
1581    unsafe { UIAccessibilityIsVideoAutoplayEnabled() }.as_bool()
1582}
1583
1584extern "C" {
1585    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityvideoautoplaystatusdidchangenotification?language=objc)
1586    pub static UIAccessibilityVideoAutoplayStatusDidChangeNotification: &'static NSNotificationName;
1587}
1588
1589#[inline]
1590pub unsafe extern "C-unwind" fn UIAccessibilityDarkerSystemColorsEnabled() -> bool {
1591    extern "C-unwind" {
1592        fn UIAccessibilityDarkerSystemColorsEnabled() -> Bool;
1593    }
1594    unsafe { UIAccessibilityDarkerSystemColorsEnabled() }.as_bool()
1595}
1596
1597extern "C" {
1598    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilitydarkersystemcolorsstatusdidchangenotification?language=objc)
1599    pub static UIAccessibilityDarkerSystemColorsStatusDidChangeNotification:
1600        &'static NSNotificationName;
1601}
1602
1603#[inline]
1604pub unsafe extern "C-unwind" fn UIAccessibilityIsSwitchControlRunning() -> bool {
1605    extern "C-unwind" {
1606        fn UIAccessibilityIsSwitchControlRunning() -> Bool;
1607    }
1608    unsafe { UIAccessibilityIsSwitchControlRunning() }.as_bool()
1609}
1610
1611extern "C" {
1612    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityswitchcontrolstatusdidchangenotification?language=objc)
1613    pub static UIAccessibilitySwitchControlStatusDidChangeNotification: &'static NSNotificationName;
1614}
1615
1616#[inline]
1617pub unsafe extern "C-unwind" fn UIAccessibilityIsSpeakSelectionEnabled() -> bool {
1618    extern "C-unwind" {
1619        fn UIAccessibilityIsSpeakSelectionEnabled() -> Bool;
1620    }
1621    unsafe { UIAccessibilityIsSpeakSelectionEnabled() }.as_bool()
1622}
1623
1624extern "C" {
1625    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityspeakselectionstatusdidchangenotification?language=objc)
1626    pub static UIAccessibilitySpeakSelectionStatusDidChangeNotification:
1627        &'static NSNotificationName;
1628}
1629
1630#[inline]
1631pub unsafe extern "C-unwind" fn UIAccessibilityIsSpeakScreenEnabled() -> bool {
1632    extern "C-unwind" {
1633        fn UIAccessibilityIsSpeakScreenEnabled() -> Bool;
1634    }
1635    unsafe { UIAccessibilityIsSpeakScreenEnabled() }.as_bool()
1636}
1637
1638extern "C" {
1639    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityspeakscreenstatusdidchangenotification?language=objc)
1640    pub static UIAccessibilitySpeakScreenStatusDidChangeNotification: &'static NSNotificationName;
1641}
1642
1643#[inline]
1644pub unsafe extern "C-unwind" fn UIAccessibilityIsShakeToUndoEnabled() -> bool {
1645    extern "C-unwind" {
1646        fn UIAccessibilityIsShakeToUndoEnabled() -> Bool;
1647    }
1648    unsafe { UIAccessibilityIsShakeToUndoEnabled() }.as_bool()
1649}
1650
1651extern "C" {
1652    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityshaketoundodidchangenotification?language=objc)
1653    pub static UIAccessibilityShakeToUndoDidChangeNotification: &'static NSNotificationName;
1654}
1655
1656#[inline]
1657pub unsafe extern "C-unwind" fn UIAccessibilityIsAssistiveTouchRunning() -> bool {
1658    extern "C-unwind" {
1659        fn UIAccessibilityIsAssistiveTouchRunning() -> Bool;
1660    }
1661    unsafe { UIAccessibilityIsAssistiveTouchRunning() }.as_bool()
1662}
1663
1664extern "C" {
1665    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityassistivetouchstatusdidchangenotification?language=objc)
1666    pub static UIAccessibilityAssistiveTouchStatusDidChangeNotification:
1667        &'static NSNotificationName;
1668}
1669
1670#[inline]
1671pub unsafe extern "C-unwind" fn UIAccessibilityShouldDifferentiateWithoutColor() -> bool {
1672    extern "C-unwind" {
1673        fn UIAccessibilityShouldDifferentiateWithoutColor() -> Bool;
1674    }
1675    unsafe { UIAccessibilityShouldDifferentiateWithoutColor() }.as_bool()
1676}
1677
1678extern "C" {
1679    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityshoulddifferentiatewithoutcolordidchangenotification?language=objc)
1680    pub static UIAccessibilityShouldDifferentiateWithoutColorDidChangeNotification:
1681        &'static NSNotificationName;
1682}
1683
1684#[inline]
1685pub unsafe extern "C-unwind" fn UIAccessibilityIsOnOffSwitchLabelsEnabled() -> bool {
1686    extern "C-unwind" {
1687        fn UIAccessibilityIsOnOffSwitchLabelsEnabled() -> Bool;
1688    }
1689    unsafe { UIAccessibilityIsOnOffSwitchLabelsEnabled() }.as_bool()
1690}
1691
1692extern "C" {
1693    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityonoffswitchlabelsdidchangenotification?language=objc)
1694    pub static UIAccessibilityOnOffSwitchLabelsDidChangeNotification: &'static NSNotificationName;
1695}
1696
1697#[cfg(feature = "block2")]
1698#[inline]
1699pub unsafe extern "C-unwind" fn UIAccessibilityRequestGuidedAccessSession(
1700    enable: bool,
1701    completion_handler: &block2::Block<dyn Fn(Bool)>,
1702) {
1703    extern "C-unwind" {
1704        fn UIAccessibilityRequestGuidedAccessSession(
1705            enable: Bool,
1706            completion_handler: &block2::Block<dyn Fn(Bool)>,
1707        );
1708    }
1709    unsafe { UIAccessibilityRequestGuidedAccessSession(Bool::new(enable), completion_handler) }
1710}
1711
1712/// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityhearingdeviceear?language=objc)
1713// NS_OPTIONS
1714#[repr(transparent)]
1715#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
1716pub struct UIAccessibilityHearingDeviceEar(pub NSUInteger);
1717bitflags::bitflags! {
1718    impl UIAccessibilityHearingDeviceEar: NSUInteger {
1719        #[doc(alias = "UIAccessibilityHearingDeviceEarNone")]
1720        const None = 0;
1721        #[doc(alias = "UIAccessibilityHearingDeviceEarLeft")]
1722        const Left = 1<<1;
1723        #[doc(alias = "UIAccessibilityHearingDeviceEarRight")]
1724        const Right = 1<<2;
1725        #[doc(alias = "UIAccessibilityHearingDeviceEarBoth")]
1726        const Both = UIAccessibilityHearingDeviceEar::Left.0|UIAccessibilityHearingDeviceEar::Right.0;
1727    }
1728}
1729
1730unsafe impl Encode for UIAccessibilityHearingDeviceEar {
1731    const ENCODING: Encoding = NSUInteger::ENCODING;
1732}
1733
1734unsafe impl RefEncode for UIAccessibilityHearingDeviceEar {
1735    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1736}
1737
1738extern "C-unwind" {
1739    pub fn UIAccessibilityHearingDevicePairedEar() -> UIAccessibilityHearingDeviceEar;
1740}
1741
1742extern "C" {
1743    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityhearingdevicepairedeardidchangenotification?language=objc)
1744    pub static UIAccessibilityHearingDevicePairedEarDidChangeNotification:
1745        &'static NSNotificationName;
1746}