objc2_ui_kit/generated/
UIDocumentBrowserAction.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
10/// [Apple's documentation](https://developer.apple.com/documentation/uikit/uidocumentbrowseractionavailability?language=objc)
11// NS_OPTIONS
12#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct UIDocumentBrowserActionAvailability(pub NSInteger);
15bitflags::bitflags! {
16    impl UIDocumentBrowserActionAvailability: NSInteger {
17        #[doc(alias = "UIDocumentBrowserActionAvailabilityMenu")]
18        const Menu = 1;
19        #[doc(alias = "UIDocumentBrowserActionAvailabilityNavigationBar")]
20        const NavigationBar = 1<<1;
21    }
22}
23
24unsafe impl Encode for UIDocumentBrowserActionAvailability {
25    const ENCODING: Encoding = NSInteger::ENCODING;
26}
27
28unsafe impl RefEncode for UIDocumentBrowserActionAvailability {
29    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
30}
31
32extern_class!(
33    /// UIDocumentBrowserAction instances are custom, contextual actions that are presented to the user by a UIDocumentBrowserViewController.
34    ///
35    /// See also [Apple's documentation](https://developer.apple.com/documentation/uikit/uidocumentbrowseraction?language=objc)
36    #[unsafe(super(NSObject))]
37    #[derive(Debug, PartialEq, Eq, Hash)]
38    pub struct UIDocumentBrowserAction;
39);
40
41extern_conformance!(
42    unsafe impl NSObjectProtocol for UIDocumentBrowserAction {}
43);
44
45impl UIDocumentBrowserAction {
46    extern_methods!(
47        #[unsafe(method(init))]
48        #[unsafe(method_family = init)]
49        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
50
51        #[cfg(feature = "block2")]
52        #[unsafe(method(initWithIdentifier:localizedTitle:availability:handler:))]
53        #[unsafe(method_family = init)]
54        pub fn initWithIdentifier_localizedTitle_availability_handler(
55            this: Allocated<Self>,
56            identifier: &NSString,
57            localized_title: &NSString,
58            availability: UIDocumentBrowserActionAvailability,
59            handler: &block2::DynBlock<dyn Fn(NonNull<NSArray<NSURL>>)>,
60        ) -> Retained<Self>;
61
62        #[unsafe(method(identifier))]
63        #[unsafe(method_family = none)]
64        pub fn identifier(&self) -> Retained<NSString>;
65
66        #[unsafe(method(localizedTitle))]
67        #[unsafe(method_family = none)]
68        pub fn localizedTitle(&self) -> Retained<NSString>;
69
70        #[unsafe(method(availability))]
71        #[unsafe(method_family = none)]
72        pub fn availability(&self) -> UIDocumentBrowserActionAvailability;
73
74        #[cfg(feature = "UIImage")]
75        #[unsafe(method(image))]
76        #[unsafe(method_family = none)]
77        pub fn image(&self) -> Option<Retained<UIImage>>;
78
79        #[cfg(feature = "UIImage")]
80        /// Setter for [`image`][Self::image].
81        #[unsafe(method(setImage:))]
82        #[unsafe(method_family = none)]
83        pub fn setImage(&self, image: Option<&UIImage>);
84
85        #[cfg(feature = "UIImage")]
86        #[unsafe(method(imageOnlyForContextMenu))]
87        #[unsafe(method_family = none)]
88        pub fn imageOnlyForContextMenu(&self) -> Option<Retained<UIImage>>;
89
90        #[cfg(feature = "UIImage")]
91        /// Setter for [`imageOnlyForContextMenu`][Self::imageOnlyForContextMenu].
92        #[unsafe(method(setImageOnlyForContextMenu:))]
93        #[unsafe(method_family = none)]
94        pub fn setImageOnlyForContextMenu(&self, image_only_for_context_menu: Option<&UIImage>);
95
96        /// Allows clients to restrict the action to only a specific set of content types. Default: [UTTypeItem.identifier]
97        #[unsafe(method(supportedContentTypes))]
98        #[unsafe(method_family = none)]
99        pub fn supportedContentTypes(&self) -> Retained<NSArray<NSString>>;
100
101        /// Setter for [`supportedContentTypes`][Self::supportedContentTypes].
102        ///
103        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
104        #[unsafe(method(setSupportedContentTypes:))]
105        #[unsafe(method_family = none)]
106        pub fn setSupportedContentTypes(&self, supported_content_types: &NSArray<NSString>);
107
108        /// If NO, the action is only available, if there is only one item selected. Default: YES.
109        #[unsafe(method(supportsMultipleItems))]
110        #[unsafe(method_family = none)]
111        pub fn supportsMultipleItems(&self) -> bool;
112
113        /// Setter for [`supportsMultipleItems`][Self::supportsMultipleItems].
114        #[unsafe(method(setSupportsMultipleItems:))]
115        #[unsafe(method_family = none)]
116        pub fn setSupportsMultipleItems(&self, supports_multiple_items: bool);
117    );
118}
119
120/// Methods declared on superclass `NSObject`.
121impl UIDocumentBrowserAction {
122    extern_methods!(
123        #[unsafe(method(new))]
124        #[unsafe(method_family = new)]
125        pub unsafe fn new() -> Retained<Self>;
126    );
127}