objc2_app_kit/generated/
NSAccessibility.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10mod private_NSObjectNSAccessibility {
11    pub trait Sealed {}
12}
13
14/// Category "NSAccessibility" on [`NSObject`].
15///
16/// * Accessibility Informal Protocol **
17#[doc(alias = "NSAccessibility")]
18pub unsafe trait NSObjectNSAccessibility:
19    ClassType + Sized + private_NSObjectNSAccessibility::Sealed
20{
21    extern_methods!(
22        #[cfg(feature = "NSAccessibilityConstants")]
23        #[deprecated = "Use the NSAccessibility protocol methods instead (see NSAccessibilityProtocols.h)"]
24        #[unsafe(method(accessibilityAttributeNames))]
25        #[unsafe(method_family = none)]
26        fn accessibilityAttributeNames(&self) -> Retained<NSArray<NSAccessibilityAttributeName>>;
27
28        #[cfg(feature = "NSAccessibilityConstants")]
29        #[deprecated = "Use the NSAccessibility protocol methods instead (see NSAccessibilityProtocols.h)"]
30        #[unsafe(method(accessibilityAttributeValue:))]
31        #[unsafe(method_family = none)]
32        fn accessibilityAttributeValue(
33            &self,
34            attribute: &NSAccessibilityAttributeName,
35        ) -> Option<Retained<AnyObject>>;
36
37        #[cfg(feature = "NSAccessibilityConstants")]
38        #[deprecated = "Use the NSAccessibility protocol methods instead (see NSAccessibilityProtocols.h)"]
39        #[unsafe(method(accessibilityIsAttributeSettable:))]
40        #[unsafe(method_family = none)]
41        fn accessibilityIsAttributeSettable(
42            &self,
43            attribute: &NSAccessibilityAttributeName,
44        ) -> bool;
45
46        #[cfg(feature = "NSAccessibilityConstants")]
47        /// # Safety
48        ///
49        /// `value` should be of the correct type.
50        #[deprecated = "Use the NSAccessibility protocol methods instead (see NSAccessibilityProtocols.h)"]
51        #[unsafe(method(accessibilitySetValue:forAttribute:))]
52        #[unsafe(method_family = none)]
53        unsafe fn accessibilitySetValue_forAttribute(
54            &self,
55            value: Option<&AnyObject>,
56            attribute: &NSAccessibilityAttributeName,
57        );
58
59        #[cfg(feature = "NSAccessibilityConstants")]
60        #[deprecated = "Use the NSAccessibility protocol methods instead (see NSAccessibilityProtocols.h)"]
61        #[unsafe(method(accessibilityParameterizedAttributeNames))]
62        #[unsafe(method_family = none)]
63        fn accessibilityParameterizedAttributeNames(
64            &self,
65        ) -> Retained<NSArray<NSAccessibilityParameterizedAttributeName>>;
66
67        #[cfg(feature = "NSAccessibilityConstants")]
68        /// # Safety
69        ///
70        /// `parameter` should be of the correct type.
71        #[deprecated = "Use the NSAccessibility protocol methods instead (see NSAccessibilityProtocols.h)"]
72        #[unsafe(method(accessibilityAttributeValue:forParameter:))]
73        #[unsafe(method_family = none)]
74        unsafe fn accessibilityAttributeValue_forParameter(
75            &self,
76            attribute: &NSAccessibilityParameterizedAttributeName,
77            parameter: Option<&AnyObject>,
78        ) -> Option<Retained<AnyObject>>;
79
80        #[cfg(feature = "NSAccessibilityConstants")]
81        #[deprecated = "Use the NSAccessibility protocol methods instead (see NSAccessibilityProtocols.h)"]
82        #[unsafe(method(accessibilityActionNames))]
83        #[unsafe(method_family = none)]
84        fn accessibilityActionNames(&self) -> Retained<NSArray<NSAccessibilityActionName>>;
85
86        #[cfg(feature = "NSAccessibilityConstants")]
87        #[deprecated = "Use the NSAccessibility protocol methods instead (see NSAccessibilityProtocols.h)"]
88        #[unsafe(method(accessibilityActionDescription:))]
89        #[unsafe(method_family = none)]
90        fn accessibilityActionDescription(
91            &self,
92            action: &NSAccessibilityActionName,
93        ) -> Option<Retained<NSString>>;
94
95        #[cfg(feature = "NSAccessibilityConstants")]
96        #[deprecated = "Use the NSAccessibility protocol methods instead (see NSAccessibilityProtocols.h)"]
97        #[unsafe(method(accessibilityPerformAction:))]
98        #[unsafe(method_family = none)]
99        fn accessibilityPerformAction(&self, action: &NSAccessibilityActionName);
100
101        #[deprecated = "Use isAccessibilityElement instead"]
102        #[unsafe(method(accessibilityIsIgnored))]
103        #[unsafe(method_family = none)]
104        fn accessibilityIsIgnored(&self) -> bool;
105
106        #[unsafe(method(accessibilityHitTest:))]
107        #[unsafe(method_family = none)]
108        fn accessibilityHitTest(&self, point: NSPoint) -> Option<Retained<AnyObject>>;
109
110        #[unsafe(method(accessibilityFocusedUIElement))]
111        #[unsafe(method_family = none)]
112        fn accessibilityFocusedUIElement(&self) -> Option<Retained<AnyObject>>;
113
114        /// # Safety
115        ///
116        /// `child` should be of the correct type.
117        #[unsafe(method(accessibilityIndexOfChild:))]
118        #[unsafe(method_family = none)]
119        unsafe fn accessibilityIndexOfChild(&self, child: &AnyObject) -> NSUInteger;
120
121        #[cfg(feature = "NSAccessibilityConstants")]
122        #[unsafe(method(accessibilityArrayAttributeCount:))]
123        #[unsafe(method_family = none)]
124        fn accessibilityArrayAttributeCount(
125            &self,
126            attribute: &NSAccessibilityAttributeName,
127        ) -> NSUInteger;
128
129        #[cfg(feature = "NSAccessibilityConstants")]
130        #[unsafe(method(accessibilityArrayAttributeValues:index:maxCount:))]
131        #[unsafe(method_family = none)]
132        fn accessibilityArrayAttributeValues_index_maxCount(
133            &self,
134            attribute: &NSAccessibilityAttributeName,
135            index: NSUInteger,
136            max_count: NSUInteger,
137        ) -> Retained<NSArray>;
138
139        #[unsafe(method(accessibilityNotifiesWhenDestroyed))]
140        #[unsafe(method_family = none)]
141        fn accessibilityNotifiesWhenDestroyed(&self) -> bool;
142    );
143}
144
145impl private_NSObjectNSAccessibility::Sealed for NSObject {}
146unsafe impl NSObjectNSAccessibility for NSObject {}
147
148/// NSWorkspaceAccessibilityDisplay.
149#[cfg(feature = "NSWorkspace")]
150impl NSWorkspace {
151    extern_methods!(
152        #[unsafe(method(accessibilityDisplayShouldIncreaseContrast))]
153        #[unsafe(method_family = none)]
154        pub fn accessibilityDisplayShouldIncreaseContrast(&self) -> bool;
155
156        #[unsafe(method(accessibilityDisplayShouldDifferentiateWithoutColor))]
157        #[unsafe(method_family = none)]
158        pub fn accessibilityDisplayShouldDifferentiateWithoutColor(&self) -> bool;
159
160        #[unsafe(method(accessibilityDisplayShouldReduceTransparency))]
161        #[unsafe(method_family = none)]
162        pub fn accessibilityDisplayShouldReduceTransparency(&self) -> bool;
163
164        #[unsafe(method(accessibilityDisplayShouldReduceMotion))]
165        #[unsafe(method_family = none)]
166        pub fn accessibilityDisplayShouldReduceMotion(&self) -> bool;
167
168        #[unsafe(method(accessibilityDisplayShouldInvertColors))]
169        #[unsafe(method_family = none)]
170        pub fn accessibilityDisplayShouldInvertColors(&self) -> bool;
171    );
172}
173
174/// NSWorkspaceAccessibility.
175#[cfg(feature = "NSWorkspace")]
176impl NSWorkspace {
177    extern_methods!(
178        #[unsafe(method(isVoiceOverEnabled))]
179        #[unsafe(method_family = none)]
180        pub fn isVoiceOverEnabled(&self) -> bool;
181
182        #[unsafe(method(isSwitchControlEnabled))]
183        #[unsafe(method_family = none)]
184        pub fn isSwitchControlEnabled(&self) -> bool;
185    );
186}
187
188extern "C" {
189    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsworkspaceaccessibilitydisplayoptionsdidchangenotification?language=objc)
190    pub static NSWorkspaceAccessibilityDisplayOptionsDidChangeNotification:
191        &'static NSNotificationName;
192}
193
194#[cfg(all(feature = "NSResponder", feature = "NSView"))]
195#[inline]
196pub extern "C-unwind" fn NSAccessibilityFrameInView(parent_view: &NSView, frame: NSRect) -> NSRect {
197    extern "C-unwind" {
198        fn NSAccessibilityFrameInView(parent_view: &NSView, frame: NSRect) -> NSRect;
199    }
200    unsafe { NSAccessibilityFrameInView(parent_view, frame) }
201}
202
203#[cfg(all(feature = "NSResponder", feature = "NSView"))]
204#[inline]
205pub extern "C-unwind" fn NSAccessibilityPointInView(
206    parent_view: &NSView,
207    point: NSPoint,
208) -> NSPoint {
209    extern "C-unwind" {
210        fn NSAccessibilityPointInView(parent_view: &NSView, point: NSPoint) -> NSPoint;
211    }
212    unsafe { NSAccessibilityPointInView(parent_view, point) }
213}
214
215#[inline]
216pub extern "C-unwind" fn NSAccessibilitySetMayContainProtectedContent(flag: bool) -> bool {
217    extern "C-unwind" {
218        fn NSAccessibilitySetMayContainProtectedContent(flag: Bool) -> Bool;
219    }
220    unsafe { NSAccessibilitySetMayContainProtectedContent(Bool::new(flag)) }.as_bool()
221}
222
223#[cfg(feature = "NSAccessibilityConstants")]
224#[inline]
225pub extern "C-unwind" fn NSAccessibilityRoleDescription(
226    role: &NSAccessibilityRole,
227    subrole: Option<&NSAccessibilitySubrole>,
228) -> Option<Retained<NSString>> {
229    extern "C-unwind" {
230        fn NSAccessibilityRoleDescription(
231            role: &NSAccessibilityRole,
232            subrole: Option<&NSAccessibilitySubrole>,
233        ) -> *mut NSString;
234    }
235    let ret = unsafe { NSAccessibilityRoleDescription(role, subrole) };
236    unsafe { Retained::retain_autoreleased(ret) }
237}
238
239/// # Safety
240///
241/// `element` should be of the correct type.
242#[inline]
243pub unsafe extern "C-unwind" fn NSAccessibilityRoleDescriptionForUIElement(
244    element: &AnyObject,
245) -> Option<Retained<NSString>> {
246    extern "C-unwind" {
247        fn NSAccessibilityRoleDescriptionForUIElement(element: &AnyObject) -> *mut NSString;
248    }
249    let ret = unsafe { NSAccessibilityRoleDescriptionForUIElement(element) };
250    unsafe { Retained::retain_autoreleased(ret) }
251}
252
253#[cfg(feature = "NSAccessibilityConstants")]
254#[inline]
255pub extern "C-unwind" fn NSAccessibilityActionDescription(
256    action: &NSAccessibilityActionName,
257) -> Option<Retained<NSString>> {
258    extern "C-unwind" {
259        fn NSAccessibilityActionDescription(action: &NSAccessibilityActionName) -> *mut NSString;
260    }
261    let ret = unsafe { NSAccessibilityActionDescription(action) };
262    unsafe { Retained::retain_autoreleased(ret) }
263}
264
265extern "C-unwind" {
266    /// # Safety
267    ///
268    /// - `element` should be of the correct type.
269    /// - `element` might not allow `None`.
270    /// - `attribute` might not allow `None`.
271    /// - `value` should be of the correct type.
272    /// - `value` might not allow `None`.
273    #[cfg(feature = "NSAccessibilityConstants")]
274    #[deprecated = "Exceptions are no longer appropriate for indicating errors in accessibility API. Unexpected values should be handled through appropriate type checking."]
275    pub fn NSAccessibilityRaiseBadArgumentException(
276        element: Option<&AnyObject>,
277        attribute: Option<&NSAccessibilityAttributeName>,
278        value: Option<&AnyObject>,
279    );
280}
281
282/// * Ignored UIElements Utilities **
283///
284/// # Safety
285///
286/// `element` should be of the correct type.
287#[inline]
288pub unsafe extern "C-unwind" fn NSAccessibilityUnignoredAncestor(
289    element: &AnyObject,
290) -> Option<Retained<AnyObject>> {
291    extern "C-unwind" {
292        fn NSAccessibilityUnignoredAncestor(element: &AnyObject) -> *mut AnyObject;
293    }
294    let ret = unsafe { NSAccessibilityUnignoredAncestor(element) };
295    unsafe { Retained::retain_autoreleased(ret) }
296}
297
298/// # Safety
299///
300/// `element` should be of the correct type.
301#[inline]
302pub unsafe extern "C-unwind" fn NSAccessibilityUnignoredDescendant(
303    element: &AnyObject,
304) -> Option<Retained<AnyObject>> {
305    extern "C-unwind" {
306        fn NSAccessibilityUnignoredDescendant(element: &AnyObject) -> *mut AnyObject;
307    }
308    let ret = unsafe { NSAccessibilityUnignoredDescendant(element) };
309    unsafe { Retained::retain_autoreleased(ret) }
310}
311
312/// # Safety
313///
314/// `original_children` generic should be of the correct type.
315#[inline]
316pub unsafe extern "C-unwind" fn NSAccessibilityUnignoredChildren(
317    original_children: &NSArray,
318) -> Retained<NSArray> {
319    extern "C-unwind" {
320        fn NSAccessibilityUnignoredChildren(original_children: &NSArray) -> *mut NSArray;
321    }
322    let ret = unsafe { NSAccessibilityUnignoredChildren(original_children) };
323    unsafe { Retained::retain_autoreleased(ret) }
324        .expect("function was marked as returning non-null, but actually returned NULL")
325}
326
327/// # Safety
328///
329/// `original_child` should be of the correct type.
330#[inline]
331pub unsafe extern "C-unwind" fn NSAccessibilityUnignoredChildrenForOnlyChild(
332    original_child: &AnyObject,
333) -> Retained<NSArray> {
334    extern "C-unwind" {
335        fn NSAccessibilityUnignoredChildrenForOnlyChild(original_child: &AnyObject)
336            -> *mut NSArray;
337    }
338    let ret = unsafe { NSAccessibilityUnignoredChildrenForOnlyChild(original_child) };
339    unsafe { Retained::retain_autoreleased(ret) }
340        .expect("function was marked as returning non-null, but actually returned NULL")
341}
342
343extern "C-unwind" {
344    /// * Posting Notifications **
345    ///
346    /// # Safety
347    ///
348    /// `element` should be of the correct type.
349    #[cfg(feature = "NSAccessibilityConstants")]
350    pub fn NSAccessibilityPostNotification(
351        element: &AnyObject,
352        notification: &NSAccessibilityNotificationName,
353    );
354}