objc2_ui_kit/generated/
UICollectionLayoutList.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8use objc2_foundation::*;
9
10use crate::*;
11
12#[repr(transparent)]
15#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
16pub struct UICollectionLayoutListAppearance(pub NSInteger);
17impl UICollectionLayoutListAppearance {
18 #[doc(alias = "UICollectionLayoutListAppearancePlain")]
19 pub const Plain: Self = Self(0);
20 #[doc(alias = "UICollectionLayoutListAppearanceGrouped")]
21 pub const Grouped: Self = Self(1);
22 #[doc(alias = "UICollectionLayoutListAppearanceInsetGrouped")]
23 pub const InsetGrouped: Self = Self(2);
24 #[doc(alias = "UICollectionLayoutListAppearanceSidebar")]
25 pub const Sidebar: Self = Self(3);
26 #[doc(alias = "UICollectionLayoutListAppearanceSidebarPlain")]
27 pub const SidebarPlain: Self = Self(4);
28}
29
30unsafe impl Encode for UICollectionLayoutListAppearance {
31 const ENCODING: Encoding = NSInteger::ENCODING;
32}
33
34unsafe impl RefEncode for UICollectionLayoutListAppearance {
35 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
36}
37
38#[repr(transparent)]
41#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
42pub struct UICollectionLayoutListHeaderMode(pub NSInteger);
43impl UICollectionLayoutListHeaderMode {
44 #[doc(alias = "UICollectionLayoutListHeaderModeNone")]
46 pub const None: Self = Self(0);
47 #[doc(alias = "UICollectionLayoutListHeaderModeSupplementary")]
49 pub const Supplementary: Self = Self(1);
50 #[doc(alias = "UICollectionLayoutListHeaderModeFirstItemInSection")]
52 pub const FirstItemInSection: Self = Self(2);
53}
54
55unsafe impl Encode for UICollectionLayoutListHeaderMode {
56 const ENCODING: Encoding = NSInteger::ENCODING;
57}
58
59unsafe impl RefEncode for UICollectionLayoutListHeaderMode {
60 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
61}
62
63#[repr(transparent)]
66#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
67pub struct UICollectionLayoutListFooterMode(pub NSInteger);
68impl UICollectionLayoutListFooterMode {
69 #[doc(alias = "UICollectionLayoutListFooterModeNone")]
71 pub const None: Self = Self(0);
72 #[doc(alias = "UICollectionLayoutListFooterModeSupplementary")]
74 pub const Supplementary: Self = Self(1);
75}
76
77unsafe impl Encode for UICollectionLayoutListFooterMode {
78 const ENCODING: Encoding = NSInteger::ENCODING;
79}
80
81unsafe impl RefEncode for UICollectionLayoutListFooterMode {
82 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
83}
84
85#[cfg(all(feature = "UISwipeActionsConfiguration", feature = "block2"))]
87pub type UICollectionLayoutListSwipeActionsConfigurationProvider =
88 *mut block2::DynBlock<dyn Fn(NonNull<NSIndexPath>) -> *mut UISwipeActionsConfiguration>;
89
90#[cfg(all(feature = "UIListSeparatorConfiguration", feature = "block2"))]
104pub type UICollectionLayoutListItemSeparatorHandler = *mut block2::DynBlock<
105 dyn Fn(
106 NonNull<NSIndexPath>,
107 NonNull<UIListSeparatorConfiguration>,
108 ) -> NonNull<UIListSeparatorConfiguration>,
109>;
110
111#[repr(transparent)]
116#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
117pub struct UICollectionLayoutListContentHuggingElements(pub NSUInteger);
118bitflags::bitflags! {
119 impl UICollectionLayoutListContentHuggingElements: NSUInteger {
120 #[doc(alias = "UICollectionLayoutListContentHuggingElementsNone")]
121 const None = 0;
122 #[doc(alias = "UICollectionLayoutListContentHuggingElementsSupplementaryHeader")]
123 const SupplementaryHeader = 1<<0;
124 }
125}
126
127unsafe impl Encode for UICollectionLayoutListContentHuggingElements {
128 const ENCODING: Encoding = NSUInteger::ENCODING;
129}
130
131unsafe impl RefEncode for UICollectionLayoutListContentHuggingElements {
132 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
133}
134
135extern_class!(
136 #[unsafe(super(NSObject))]
140 #[thread_kind = MainThreadOnly]
141 #[derive(Debug, PartialEq, Eq, Hash)]
142 pub struct UICollectionLayoutListConfiguration;
143);
144
145extern_conformance!(
146 unsafe impl NSCopying for UICollectionLayoutListConfiguration {}
147);
148
149unsafe impl CopyingHelper for UICollectionLayoutListConfiguration {
150 type Result = Self;
151}
152
153extern_conformance!(
154 unsafe impl NSObjectProtocol for UICollectionLayoutListConfiguration {}
155);
156
157impl UICollectionLayoutListConfiguration {
158 extern_methods!(
159 #[unsafe(method(new))]
160 #[unsafe(method_family = new)]
161 pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
162
163 #[unsafe(method(init))]
164 #[unsafe(method_family = init)]
165 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
166
167 #[unsafe(method(initWithAppearance:))]
168 #[unsafe(method_family = init)]
169 pub unsafe fn initWithAppearance(
170 this: Allocated<Self>,
171 appearance: UICollectionLayoutListAppearance,
172 ) -> Retained<Self>;
173
174 #[unsafe(method(appearance))]
176 #[unsafe(method_family = none)]
177 pub unsafe fn appearance(&self) -> UICollectionLayoutListAppearance;
178
179 #[unsafe(method(showsSeparators))]
182 #[unsafe(method_family = none)]
183 pub unsafe fn showsSeparators(&self) -> bool;
184
185 #[unsafe(method(setShowsSeparators:))]
187 #[unsafe(method_family = none)]
188 pub unsafe fn setShowsSeparators(&self, shows_separators: bool);
189
190 #[cfg(feature = "UIListSeparatorConfiguration")]
191 #[unsafe(method(separatorConfiguration))]
194 #[unsafe(method_family = none)]
195 pub unsafe fn separatorConfiguration(&self) -> Retained<UIListSeparatorConfiguration>;
196
197 #[cfg(feature = "UIListSeparatorConfiguration")]
198 #[unsafe(method(setSeparatorConfiguration:))]
200 #[unsafe(method_family = none)]
201 pub unsafe fn setSeparatorConfiguration(
202 &self,
203 separator_configuration: &UIListSeparatorConfiguration,
204 );
205
206 #[cfg(all(feature = "UIListSeparatorConfiguration", feature = "block2"))]
207 #[unsafe(method(itemSeparatorHandler))]
211 #[unsafe(method_family = none)]
212 pub unsafe fn itemSeparatorHandler(&self) -> UICollectionLayoutListItemSeparatorHandler;
213
214 #[cfg(all(feature = "UIListSeparatorConfiguration", feature = "block2"))]
215 #[unsafe(method(setItemSeparatorHandler:))]
217 #[unsafe(method_family = none)]
218 pub unsafe fn setItemSeparatorHandler(
219 &self,
220 item_separator_handler: UICollectionLayoutListItemSeparatorHandler,
221 );
222
223 #[cfg(feature = "UIColor")]
224 #[unsafe(method(backgroundColor))]
227 #[unsafe(method_family = none)]
228 pub unsafe fn backgroundColor(&self) -> Option<Retained<UIColor>>;
229
230 #[cfg(feature = "UIColor")]
231 #[unsafe(method(setBackgroundColor:))]
233 #[unsafe(method_family = none)]
234 pub unsafe fn setBackgroundColor(&self, background_color: Option<&UIColor>);
235
236 #[cfg(all(feature = "UISwipeActionsConfiguration", feature = "block2"))]
237 #[unsafe(method(leadingSwipeActionsConfigurationProvider))]
240 #[unsafe(method_family = none)]
241 pub unsafe fn leadingSwipeActionsConfigurationProvider(
242 &self,
243 ) -> UICollectionLayoutListSwipeActionsConfigurationProvider;
244
245 #[cfg(all(feature = "UISwipeActionsConfiguration", feature = "block2"))]
246 #[unsafe(method(setLeadingSwipeActionsConfigurationProvider:))]
248 #[unsafe(method_family = none)]
249 pub unsafe fn setLeadingSwipeActionsConfigurationProvider(
250 &self,
251 leading_swipe_actions_configuration_provider: UICollectionLayoutListSwipeActionsConfigurationProvider,
252 );
253
254 #[cfg(all(feature = "UISwipeActionsConfiguration", feature = "block2"))]
255 #[unsafe(method(trailingSwipeActionsConfigurationProvider))]
258 #[unsafe(method_family = none)]
259 pub unsafe fn trailingSwipeActionsConfigurationProvider(
260 &self,
261 ) -> UICollectionLayoutListSwipeActionsConfigurationProvider;
262
263 #[cfg(all(feature = "UISwipeActionsConfiguration", feature = "block2"))]
264 #[unsafe(method(setTrailingSwipeActionsConfigurationProvider:))]
266 #[unsafe(method_family = none)]
267 pub unsafe fn setTrailingSwipeActionsConfigurationProvider(
268 &self,
269 trailing_swipe_actions_configuration_provider: UICollectionLayoutListSwipeActionsConfigurationProvider,
270 );
271
272 #[unsafe(method(headerMode))]
274 #[unsafe(method_family = none)]
275 pub unsafe fn headerMode(&self) -> UICollectionLayoutListHeaderMode;
276
277 #[unsafe(method(setHeaderMode:))]
279 #[unsafe(method_family = none)]
280 pub unsafe fn setHeaderMode(&self, header_mode: UICollectionLayoutListHeaderMode);
281
282 #[unsafe(method(footerMode))]
284 #[unsafe(method_family = none)]
285 pub unsafe fn footerMode(&self) -> UICollectionLayoutListFooterMode;
286
287 #[unsafe(method(setFooterMode:))]
289 #[unsafe(method_family = none)]
290 pub unsafe fn setFooterMode(&self, footer_mode: UICollectionLayoutListFooterMode);
291
292 #[cfg(feature = "objc2-core-foundation")]
293 #[unsafe(method(headerTopPadding))]
295 #[unsafe(method_family = none)]
296 pub unsafe fn headerTopPadding(&self) -> CGFloat;
297
298 #[cfg(feature = "objc2-core-foundation")]
299 #[unsafe(method(setHeaderTopPadding:))]
301 #[unsafe(method_family = none)]
302 pub unsafe fn setHeaderTopPadding(&self, header_top_padding: CGFloat);
303
304 #[unsafe(method(contentHuggingElements))]
309 #[unsafe(method_family = none)]
310 pub unsafe fn contentHuggingElements(&self)
311 -> UICollectionLayoutListContentHuggingElements;
312
313 #[unsafe(method(setContentHuggingElements:))]
315 #[unsafe(method_family = none)]
316 pub unsafe fn setContentHuggingElements(
317 &self,
318 content_hugging_elements: UICollectionLayoutListContentHuggingElements,
319 );
320 );
321}
322
323#[cfg(feature = "UICollectionViewCompositionalLayout")]
325impl NSCollectionLayoutSection {
326 extern_methods!(
327 #[unsafe(method(sectionWithListConfiguration:layoutEnvironment:))]
329 #[unsafe(method_family = none)]
330 pub unsafe fn sectionWithListConfiguration_layoutEnvironment(
331 configuration: &UICollectionLayoutListConfiguration,
332 layout_environment: &ProtocolObject<dyn NSCollectionLayoutEnvironment>,
333 ) -> Retained<Self>;
334 );
335}
336
337#[cfg(all(
339 feature = "UICollectionViewCompositionalLayout",
340 feature = "UICollectionViewLayout"
341))]
342impl UICollectionViewCompositionalLayout {
343 extern_methods!(
344 #[unsafe(method(layoutWithListConfiguration:))]
346 #[unsafe(method_family = none)]
347 pub unsafe fn layoutWithListConfiguration(
348 configuration: &UICollectionLayoutListConfiguration,
349 ) -> Retained<Self>;
350 );
351}