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