objc2_ui_kit/generated/
UIBarButtonItemGroup.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/uibarbuttonitemgroup?language=objc)
12    #[unsafe(super(NSObject))]
13    #[thread_kind = MainThreadOnly]
14    #[derive(Debug, PartialEq, Eq, Hash)]
15    pub struct UIBarButtonItemGroup;
16);
17
18unsafe impl NSCoding for UIBarButtonItemGroup {}
19
20unsafe impl NSObjectProtocol for UIBarButtonItemGroup {}
21
22impl UIBarButtonItemGroup {
23    extern_methods!(
24        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
25        /// Create a new bar button item group with the given items. When bar button item layout is done, either the group's barButtonItems or its representativeItem is displayed (if it exists).
26        #[unsafe(method(initWithBarButtonItems:representativeItem:))]
27        #[unsafe(method_family = init)]
28        pub unsafe fn initWithBarButtonItems_representativeItem(
29            this: Allocated<Self>,
30            bar_button_items: &NSArray<UIBarButtonItem>,
31            representative_item: Option<&UIBarButtonItem>,
32        ) -> Retained<Self>;
33
34        #[unsafe(method(initWithCoder:))]
35        #[unsafe(method_family = init)]
36        pub unsafe fn initWithCoder(
37            this: Allocated<Self>,
38            coder: &NSCoder,
39        ) -> Option<Retained<Self>>;
40
41        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
42        /// Construct a UIBarButtonItemGroup that cannot be moved or removed under UINavigationBar customization.
43        #[unsafe(method(fixedGroupWithRepresentativeItem:items:))]
44        #[unsafe(method_family = none)]
45        pub unsafe fn fixedGroupWithRepresentativeItem_items(
46            representative_item: Option<&UIBarButtonItem>,
47            items: &NSArray<UIBarButtonItem>,
48            mtm: MainThreadMarker,
49        ) -> Retained<UIBarButtonItemGroup>;
50
51        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
52        /// Construct a UIBarButtonItemGroup that can be moved but cannot be removed under UINavigationBar customization.
53        #[unsafe(method(movableGroupWithCustomizationIdentifier:representativeItem:items:))]
54        #[unsafe(method_family = none)]
55        pub unsafe fn movableGroupWithCustomizationIdentifier_representativeItem_items(
56            customization_identifier: &NSString,
57            representative_item: Option<&UIBarButtonItem>,
58            items: &NSArray<UIBarButtonItem>,
59            mtm: MainThreadMarker,
60        ) -> Retained<UIBarButtonItemGroup>;
61
62        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
63        /// Construct a UIBarButtonItemGroup that can be moved or added/removed under UINavigationBar customization.
64        #[unsafe(method(optionalGroupWithCustomizationIdentifier:inDefaultCustomization:representativeItem:items:))]
65        #[unsafe(method_family = none)]
66        pub unsafe fn optionalGroupWithCustomizationIdentifier_inDefaultCustomization_representativeItem_items(
67            customization_identifier: &NSString,
68            in_default_customization: bool,
69            representative_item: Option<&UIBarButtonItem>,
70            items: &NSArray<UIBarButtonItem>,
71            mtm: MainThreadMarker,
72        ) -> Retained<UIBarButtonItemGroup>;
73
74        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
75        /// The bar button items associated with this group. Changing these items will affect the bar displaying these items without needing to re-set the groups that are in that bar. Any UIBarButtonItems that are already in group will be removed from that group.
76        #[unsafe(method(barButtonItems))]
77        #[unsafe(method_family = none)]
78        pub unsafe fn barButtonItems(&self) -> Retained<NSArray<UIBarButtonItem>>;
79
80        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
81        /// Setter for [`barButtonItems`][Self::barButtonItems].
82        #[unsafe(method(setBarButtonItems:))]
83        #[unsafe(method_family = none)]
84        pub unsafe fn setBarButtonItems(&self, bar_button_items: &NSArray<UIBarButtonItem>);
85
86        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
87        /// In order to display as many items as possible, bars that support UIBarButtonItemGroup may choose to collapse items associated with groups to the representativeItem specified by the group.
88        /// A bar will only collapse groups that have a representativeItem set, but may still choose to use an alternate presentation of these items.
89        /// A UIBarButtonItem may only be either the representativeItem or a member of the barButtonItems of a single UIBarButtonItemGroup and may only represent a single group.
90        /// If the representativeItem has an action, then that action will be invoked, otherwise the bar will present a standard UI to allow selection of the barButtonItems in the representedItem's group.
91        #[unsafe(method(representativeItem))]
92        #[unsafe(method_family = none)]
93        pub unsafe fn representativeItem(&self) -> Option<Retained<UIBarButtonItem>>;
94
95        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
96        /// Setter for [`representativeItem`][Self::representativeItem].
97        #[unsafe(method(setRepresentativeItem:))]
98        #[unsafe(method_family = none)]
99        pub unsafe fn setRepresentativeItem(&self, representative_item: Option<&UIBarButtonItem>);
100
101        /// Returns YES if the representativeItem of this group is currently being displayed, rather than its barButtonItems.
102        #[unsafe(method(isDisplayingRepresentativeItem))]
103        #[unsafe(method_family = none)]
104        pub unsafe fn isDisplayingRepresentativeItem(&self) -> bool;
105
106        /// Instructs UIKit to ensure that the functionality in this group is made available to the user regardless of customization status. On iPhone and iPad idioms, UIKit currently places these items in the overflow menu; this property has no effect on macOS idiom.
107        #[unsafe(method(alwaysAvailable))]
108        #[unsafe(method_family = none)]
109        pub unsafe fn alwaysAvailable(&self) -> bool;
110
111        /// Setter for [`alwaysAvailable`][Self::alwaysAvailable].
112        #[unsafe(method(setAlwaysAvailable:))]
113        #[unsafe(method_family = none)]
114        pub unsafe fn setAlwaysAvailable(&self, always_available: bool);
115
116        #[cfg(feature = "UIMenuElement")]
117        /// A UIMenuElement that should substitute for the UIBarButtonItemGroup when displayed in a menu.
118        #[unsafe(method(menuRepresentation))]
119        #[unsafe(method_family = none)]
120        pub unsafe fn menuRepresentation(&self) -> Option<Retained<UIMenuElement>>;
121
122        #[cfg(feature = "UIMenuElement")]
123        /// Setter for [`menuRepresentation`][Self::menuRepresentation].
124        #[unsafe(method(setMenuRepresentation:))]
125        #[unsafe(method_family = none)]
126        pub unsafe fn setMenuRepresentation(&self, menu_representation: Option<&UIMenuElement>);
127
128        /// If the group should be hidden from display.
129        #[unsafe(method(isHidden))]
130        #[unsafe(method_family = none)]
131        pub unsafe fn isHidden(&self) -> bool;
132
133        /// Setter for [`isHidden`][Self::isHidden].
134        #[unsafe(method(setHidden:))]
135        #[unsafe(method_family = none)]
136        pub unsafe fn setHidden(&self, hidden: bool);
137    );
138}
139
140/// Methods declared on superclass `NSObject`.
141impl UIBarButtonItemGroup {
142    extern_methods!(
143        #[unsafe(method(init))]
144        #[unsafe(method_family = init)]
145        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
146
147        #[unsafe(method(new))]
148        #[unsafe(method_family = new)]
149        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
150    );
151}
152
153/// UIBarButtonItemGroup.
154#[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
155impl UIBarButtonItem {
156    extern_methods!(
157        /// The group that the UIBarButtonItem is currently associated with, either as a member of the barButtonItems array or as that group's representativeItem.
158        #[unsafe(method(buttonGroup))]
159        #[unsafe(method_family = none)]
160        pub unsafe fn buttonGroup(&self) -> Option<Retained<UIBarButtonItemGroup>>;
161    );
162}