objc2_ui_kit/generated/
UIDeferredMenuElement.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
10extern_class!(
11    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uideferredmenuelement?language=objc)
12    #[unsafe(super(UIMenuElement, NSObject))]
13    #[thread_kind = MainThreadOnly]
14    #[derive(Debug, PartialEq, Eq, Hash)]
15    #[cfg(feature = "UIMenuElement")]
16    pub struct UIDeferredMenuElement;
17);
18
19#[cfg(feature = "UIMenuElement")]
20unsafe impl NSCoding for UIDeferredMenuElement {}
21
22#[cfg(feature = "UIMenuElement")]
23unsafe impl NSCopying for UIDeferredMenuElement {}
24
25#[cfg(feature = "UIMenuElement")]
26unsafe impl CopyingHelper for UIDeferredMenuElement {
27    type Result = Self;
28}
29
30#[cfg(feature = "UIMenuElement")]
31unsafe impl NSObjectProtocol for UIDeferredMenuElement {}
32
33#[cfg(feature = "UIMenuElement")]
34unsafe impl NSSecureCoding for UIDeferredMenuElement {}
35
36#[cfg(feature = "UIMenuElement")]
37impl UIDeferredMenuElement {
38    extern_methods!(
39        #[cfg(feature = "block2")]
40        /// Returns a placeholder menu element that is replaced with the result of the block's
41        /// completion handler. A loading UI takes the place of the element in the menu
42        /// until it is fulfilled. While the element may be stored and re-used across menus, its block is
43        /// called only once, when the element is first encountered in a menu.
44        ///
45        ///
46        /// Parameter `elementProvider`: Called by the system to request the deferred menu items when the containing menu is presented.
47        /// Call this block's completion handler when the menu items are available.
48        #[unsafe(method(elementWithProvider:))]
49        #[unsafe(method_family = none)]
50        pub unsafe fn elementWithProvider(
51            element_provider: &block2::Block<
52                dyn Fn(NonNull<block2::Block<dyn Fn(NonNull<NSArray<UIMenuElement>>)>>),
53            >,
54            mtm: MainThreadMarker,
55        ) -> Retained<Self>;
56
57        #[cfg(feature = "block2")]
58        /// Returns a placeholder menu element that is replaced with the result of the block's
59        /// completion handler. A loading UI takes the place of the element in the menu
60        /// until it is fulfilled. Elements created using this initializer are "uncached",
61        /// so their
62        /// `elementProvider`block is called every time the element is displayed.
63        ///
64        ///
65        /// Parameter `elementProvider`: Called by the system to request the deferred menu items when the containing menu is presented.
66        /// Call this block's completion handler when the menu items are available.
67        #[unsafe(method(elementWithUncachedProvider:))]
68        #[unsafe(method_family = none)]
69        pub unsafe fn elementWithUncachedProvider(
70            element_provider: &block2::Block<
71                dyn Fn(NonNull<block2::Block<dyn Fn(NonNull<NSArray<UIMenuElement>>)>>),
72            >,
73            mtm: MainThreadMarker,
74        ) -> Retained<Self>;
75    );
76}
77
78/// Methods declared on superclass `UIMenuElement`.
79#[cfg(feature = "UIMenuElement")]
80impl UIDeferredMenuElement {
81    extern_methods!(
82        #[unsafe(method(initWithCoder:))]
83        #[unsafe(method_family = init)]
84        pub unsafe fn initWithCoder(
85            this: Allocated<Self>,
86            coder: &NSCoder,
87        ) -> Option<Retained<Self>>;
88
89        #[unsafe(method(init))]
90        #[unsafe(method_family = init)]
91        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
92
93        #[unsafe(method(new))]
94        #[unsafe(method_family = new)]
95        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
96    );
97}