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
18extern_conformance!(
19    unsafe impl NSCoding for UIBarButtonItemGroup {}
20);
21
22extern_conformance!(
23    unsafe impl NSObjectProtocol for UIBarButtonItemGroup {}
24);
25
26impl UIBarButtonItemGroup {
27    extern_methods!(
28        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
29        /// 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).
30        #[unsafe(method(initWithBarButtonItems:representativeItem:))]
31        #[unsafe(method_family = init)]
32        pub unsafe fn initWithBarButtonItems_representativeItem(
33            this: Allocated<Self>,
34            bar_button_items: &NSArray<UIBarButtonItem>,
35            representative_item: Option<&UIBarButtonItem>,
36        ) -> Retained<Self>;
37
38        #[unsafe(method(initWithCoder:))]
39        #[unsafe(method_family = init)]
40        pub unsafe fn initWithCoder(
41            this: Allocated<Self>,
42            coder: &NSCoder,
43        ) -> Option<Retained<Self>>;
44
45        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
46        /// Construct a UIBarButtonItemGroup that cannot be moved or removed under UINavigationBar customization.
47        #[unsafe(method(fixedGroupWithRepresentativeItem:items:))]
48        #[unsafe(method_family = none)]
49        pub unsafe fn fixedGroupWithRepresentativeItem_items(
50            representative_item: Option<&UIBarButtonItem>,
51            items: &NSArray<UIBarButtonItem>,
52            mtm: MainThreadMarker,
53        ) -> Retained<UIBarButtonItemGroup>;
54
55        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
56        /// Construct a UIBarButtonItemGroup that can be moved but cannot be removed under UINavigationBar customization.
57        #[unsafe(method(movableGroupWithCustomizationIdentifier:representativeItem:items:))]
58        #[unsafe(method_family = none)]
59        pub unsafe fn movableGroupWithCustomizationIdentifier_representativeItem_items(
60            customization_identifier: &NSString,
61            representative_item: Option<&UIBarButtonItem>,
62            items: &NSArray<UIBarButtonItem>,
63            mtm: MainThreadMarker,
64        ) -> Retained<UIBarButtonItemGroup>;
65
66        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
67        /// Construct a UIBarButtonItemGroup that can be moved or added/removed under UINavigationBar customization.
68        #[unsafe(method(optionalGroupWithCustomizationIdentifier:inDefaultCustomization:representativeItem:items:))]
69        #[unsafe(method_family = none)]
70        pub unsafe fn optionalGroupWithCustomizationIdentifier_inDefaultCustomization_representativeItem_items(
71            customization_identifier: &NSString,
72            in_default_customization: bool,
73            representative_item: Option<&UIBarButtonItem>,
74            items: &NSArray<UIBarButtonItem>,
75            mtm: MainThreadMarker,
76        ) -> Retained<UIBarButtonItemGroup>;
77
78        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
79        /// 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.
80        #[unsafe(method(barButtonItems))]
81        #[unsafe(method_family = none)]
82        pub unsafe fn barButtonItems(&self) -> Retained<NSArray<UIBarButtonItem>>;
83
84        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
85        /// Setter for [`barButtonItems`][Self::barButtonItems].
86        #[unsafe(method(setBarButtonItems:))]
87        #[unsafe(method_family = none)]
88        pub unsafe fn setBarButtonItems(&self, bar_button_items: &NSArray<UIBarButtonItem>);
89
90        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
91        /// 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.
92        /// A bar will only collapse groups that have a representativeItem set, but may still choose to use an alternate presentation of these items.
93        /// 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.
94        /// 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.
95        #[unsafe(method(representativeItem))]
96        #[unsafe(method_family = none)]
97        pub unsafe fn representativeItem(&self) -> Option<Retained<UIBarButtonItem>>;
98
99        #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
100        /// Setter for [`representativeItem`][Self::representativeItem].
101        #[unsafe(method(setRepresentativeItem:))]
102        #[unsafe(method_family = none)]
103        pub unsafe fn setRepresentativeItem(&self, representative_item: Option<&UIBarButtonItem>);
104
105        /// Returns YES if the representativeItem of this group is currently being displayed, rather than its barButtonItems.
106        #[unsafe(method(isDisplayingRepresentativeItem))]
107        #[unsafe(method_family = none)]
108        pub unsafe fn isDisplayingRepresentativeItem(&self) -> bool;
109
110        /// 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.
111        #[unsafe(method(alwaysAvailable))]
112        #[unsafe(method_family = none)]
113        pub unsafe fn alwaysAvailable(&self) -> bool;
114
115        /// Setter for [`alwaysAvailable`][Self::alwaysAvailable].
116        #[unsafe(method(setAlwaysAvailable:))]
117        #[unsafe(method_family = none)]
118        pub unsafe fn setAlwaysAvailable(&self, always_available: bool);
119
120        #[cfg(feature = "UIMenuElement")]
121        /// A UIMenuElement that should substitute for the UIBarButtonItemGroup when displayed in a menu.
122        #[unsafe(method(menuRepresentation))]
123        #[unsafe(method_family = none)]
124        pub unsafe fn menuRepresentation(&self) -> Option<Retained<UIMenuElement>>;
125
126        #[cfg(feature = "UIMenuElement")]
127        /// Setter for [`menuRepresentation`][Self::menuRepresentation].
128        #[unsafe(method(setMenuRepresentation:))]
129        #[unsafe(method_family = none)]
130        pub unsafe fn setMenuRepresentation(&self, menu_representation: Option<&UIMenuElement>);
131
132        /// If the group should be hidden from display.
133        #[unsafe(method(isHidden))]
134        #[unsafe(method_family = none)]
135        pub unsafe fn isHidden(&self) -> bool;
136
137        /// Setter for [`isHidden`][Self::isHidden].
138        #[unsafe(method(setHidden:))]
139        #[unsafe(method_family = none)]
140        pub unsafe fn setHidden(&self, hidden: bool);
141    );
142}
143
144/// Methods declared on superclass `NSObject`.
145impl UIBarButtonItemGroup {
146    extern_methods!(
147        #[unsafe(method(init))]
148        #[unsafe(method_family = init)]
149        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
150
151        #[unsafe(method(new))]
152        #[unsafe(method_family = new)]
153        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
154    );
155}
156
157/// UIBarButtonItemGroup.
158#[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
159impl UIBarButtonItem {
160    extern_methods!(
161        /// The group that the UIBarButtonItem is currently associated with, either as a member of the barButtonItems array or as that group's representativeItem.
162        #[unsafe(method(buttonGroup))]
163        #[unsafe(method_family = none)]
164        pub unsafe fn buttonGroup(&self) -> Option<Retained<UIBarButtonItemGroup>>;
165    );
166}