objc2_app_kit/generated/
NSCollectionViewLayout.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::*;
6#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8use objc2_foundation::*;
9
10use crate::*;
11
12/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nscollectionelementcategory?language=objc)
13// NS_ENUM
14#[repr(transparent)]
15#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
16pub struct NSCollectionElementCategory(pub NSInteger);
17impl NSCollectionElementCategory {
18    #[doc(alias = "NSCollectionElementCategoryItem")]
19    pub const Item: Self = Self(0);
20    #[doc(alias = "NSCollectionElementCategorySupplementaryView")]
21    pub const SupplementaryView: Self = Self(1);
22    #[doc(alias = "NSCollectionElementCategoryDecorationView")]
23    pub const DecorationView: Self = Self(2);
24    #[doc(alias = "NSCollectionElementCategoryInterItemGap")]
25    pub const InterItemGap: Self = Self(3);
26}
27
28unsafe impl Encode for NSCollectionElementCategory {
29    const ENCODING: Encoding = NSInteger::ENCODING;
30}
31
32unsafe impl RefEncode for NSCollectionElementCategory {
33    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
34}
35
36/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nscollectionviewdecorationelementkind?language=objc)
37pub type NSCollectionViewDecorationElementKind = NSString;
38
39extern "C" {
40    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nscollectionelementkindinteritemgapindicator?language=objc)
41    #[cfg(feature = "NSCollectionView")]
42    pub static NSCollectionElementKindInterItemGapIndicator:
43        &'static NSCollectionViewSupplementaryElementKind;
44}
45
46extern_class!(
47    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nscollectionviewlayoutattributes?language=objc)
48    #[unsafe(super(NSObject))]
49    #[thread_kind = MainThreadOnly]
50    #[derive(Debug, PartialEq, Eq, Hash)]
51    pub struct NSCollectionViewLayoutAttributes;
52);
53
54extern_conformance!(
55    unsafe impl NSCopying for NSCollectionViewLayoutAttributes {}
56);
57
58unsafe impl CopyingHelper for NSCollectionViewLayoutAttributes {
59    type Result = Self;
60}
61
62extern_conformance!(
63    unsafe impl NSObjectProtocol for NSCollectionViewLayoutAttributes {}
64);
65
66impl NSCollectionViewLayoutAttributes {
67    extern_methods!(
68        #[unsafe(method(frame))]
69        #[unsafe(method_family = none)]
70        pub fn frame(&self) -> NSRect;
71
72        /// Setter for [`frame`][Self::frame].
73        #[unsafe(method(setFrame:))]
74        #[unsafe(method_family = none)]
75        pub fn setFrame(&self, frame: NSRect);
76
77        #[unsafe(method(size))]
78        #[unsafe(method_family = none)]
79        pub fn size(&self) -> NSSize;
80
81        /// Setter for [`size`][Self::size].
82        #[unsafe(method(setSize:))]
83        #[unsafe(method_family = none)]
84        pub fn setSize(&self, size: NSSize);
85
86        #[cfg(feature = "objc2-core-foundation")]
87        #[unsafe(method(alpha))]
88        #[unsafe(method_family = none)]
89        pub fn alpha(&self) -> CGFloat;
90
91        #[cfg(feature = "objc2-core-foundation")]
92        /// Setter for [`alpha`][Self::alpha].
93        #[unsafe(method(setAlpha:))]
94        #[unsafe(method_family = none)]
95        pub fn setAlpha(&self, alpha: CGFloat);
96
97        #[unsafe(method(zIndex))]
98        #[unsafe(method_family = none)]
99        pub fn zIndex(&self) -> NSInteger;
100
101        /// Setter for [`zIndex`][Self::zIndex].
102        #[unsafe(method(setZIndex:))]
103        #[unsafe(method_family = none)]
104        pub fn setZIndex(&self, z_index: NSInteger);
105
106        #[unsafe(method(isHidden))]
107        #[unsafe(method_family = none)]
108        pub fn isHidden(&self) -> bool;
109
110        /// Setter for [`isHidden`][Self::isHidden].
111        #[unsafe(method(setHidden:))]
112        #[unsafe(method_family = none)]
113        pub fn setHidden(&self, hidden: bool);
114
115        #[unsafe(method(indexPath))]
116        #[unsafe(method_family = none)]
117        pub fn indexPath(&self) -> Option<Retained<NSIndexPath>>;
118
119        /// Setter for [`indexPath`][Self::indexPath].
120        #[unsafe(method(setIndexPath:))]
121        #[unsafe(method_family = none)]
122        pub fn setIndexPath(&self, index_path: Option<&NSIndexPath>);
123
124        #[unsafe(method(representedElementCategory))]
125        #[unsafe(method_family = none)]
126        pub fn representedElementCategory(&self) -> NSCollectionElementCategory;
127
128        #[unsafe(method(representedElementKind))]
129        #[unsafe(method_family = none)]
130        pub fn representedElementKind(&self) -> Option<Retained<NSString>>;
131
132        #[unsafe(method(layoutAttributesForItemWithIndexPath:))]
133        #[unsafe(method_family = none)]
134        pub fn layoutAttributesForItemWithIndexPath(
135            index_path: &NSIndexPath,
136            mtm: MainThreadMarker,
137        ) -> Retained<Self>;
138
139        #[unsafe(method(layoutAttributesForInterItemGapBeforeIndexPath:))]
140        #[unsafe(method_family = none)]
141        pub fn layoutAttributesForInterItemGapBeforeIndexPath(
142            index_path: &NSIndexPath,
143            mtm: MainThreadMarker,
144        ) -> Retained<Self>;
145
146        #[cfg(feature = "NSCollectionView")]
147        #[unsafe(method(layoutAttributesForSupplementaryViewOfKind:withIndexPath:))]
148        #[unsafe(method_family = none)]
149        pub fn layoutAttributesForSupplementaryViewOfKind_withIndexPath(
150            element_kind: &NSCollectionViewSupplementaryElementKind,
151            index_path: &NSIndexPath,
152            mtm: MainThreadMarker,
153        ) -> Retained<Self>;
154
155        #[unsafe(method(layoutAttributesForDecorationViewOfKind:withIndexPath:))]
156        #[unsafe(method_family = none)]
157        pub fn layoutAttributesForDecorationViewOfKind_withIndexPath(
158            decoration_view_kind: &NSCollectionViewDecorationElementKind,
159            index_path: &NSIndexPath,
160            mtm: MainThreadMarker,
161        ) -> Retained<Self>;
162    );
163}
164
165/// Methods declared on superclass `NSObject`.
166impl NSCollectionViewLayoutAttributes {
167    extern_methods!(
168        #[unsafe(method(init))]
169        #[unsafe(method_family = init)]
170        pub fn init(this: Allocated<Self>) -> Retained<Self>;
171
172        #[unsafe(method(new))]
173        #[unsafe(method_family = new)]
174        pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
175    );
176}
177
178/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nscollectionupdateaction?language=objc)
179// NS_ENUM
180#[repr(transparent)]
181#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
182pub struct NSCollectionUpdateAction(pub NSInteger);
183impl NSCollectionUpdateAction {
184    #[doc(alias = "NSCollectionUpdateActionInsert")]
185    pub const Insert: Self = Self(0);
186    #[doc(alias = "NSCollectionUpdateActionDelete")]
187    pub const Delete: Self = Self(1);
188    #[doc(alias = "NSCollectionUpdateActionReload")]
189    pub const Reload: Self = Self(2);
190    #[doc(alias = "NSCollectionUpdateActionMove")]
191    pub const Move: Self = Self(3);
192    #[doc(alias = "NSCollectionUpdateActionNone")]
193    pub const None: Self = Self(4);
194}
195
196unsafe impl Encode for NSCollectionUpdateAction {
197    const ENCODING: Encoding = NSInteger::ENCODING;
198}
199
200unsafe impl RefEncode for NSCollectionUpdateAction {
201    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
202}
203
204extern_class!(
205    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nscollectionviewupdateitem?language=objc)
206    #[unsafe(super(NSObject))]
207    #[thread_kind = MainThreadOnly]
208    #[derive(Debug, PartialEq, Eq, Hash)]
209    pub struct NSCollectionViewUpdateItem;
210);
211
212extern_conformance!(
213    unsafe impl NSObjectProtocol for NSCollectionViewUpdateItem {}
214);
215
216impl NSCollectionViewUpdateItem {
217    extern_methods!(
218        #[unsafe(method(indexPathBeforeUpdate))]
219        #[unsafe(method_family = none)]
220        pub fn indexPathBeforeUpdate(&self) -> Option<Retained<NSIndexPath>>;
221
222        #[unsafe(method(indexPathAfterUpdate))]
223        #[unsafe(method_family = none)]
224        pub fn indexPathAfterUpdate(&self) -> Option<Retained<NSIndexPath>>;
225
226        #[unsafe(method(updateAction))]
227        #[unsafe(method_family = none)]
228        pub fn updateAction(&self) -> NSCollectionUpdateAction;
229    );
230}
231
232/// Methods declared on superclass `NSObject`.
233impl NSCollectionViewUpdateItem {
234    extern_methods!(
235        #[unsafe(method(init))]
236        #[unsafe(method_family = init)]
237        pub fn init(this: Allocated<Self>) -> Retained<Self>;
238
239        #[unsafe(method(new))]
240        #[unsafe(method_family = new)]
241        pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
242    );
243}
244
245extern_class!(
246    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nscollectionviewlayoutinvalidationcontext?language=objc)
247    #[unsafe(super(NSObject))]
248    #[thread_kind = MainThreadOnly]
249    #[derive(Debug, PartialEq, Eq, Hash)]
250    pub struct NSCollectionViewLayoutInvalidationContext;
251);
252
253extern_conformance!(
254    unsafe impl NSObjectProtocol for NSCollectionViewLayoutInvalidationContext {}
255);
256
257impl NSCollectionViewLayoutInvalidationContext {
258    extern_methods!(
259        #[unsafe(method(invalidateEverything))]
260        #[unsafe(method_family = none)]
261        pub fn invalidateEverything(&self) -> bool;
262
263        #[unsafe(method(invalidateDataSourceCounts))]
264        #[unsafe(method_family = none)]
265        pub fn invalidateDataSourceCounts(&self) -> bool;
266
267        #[unsafe(method(invalidateItemsAtIndexPaths:))]
268        #[unsafe(method_family = none)]
269        pub fn invalidateItemsAtIndexPaths(&self, index_paths: &NSSet<NSIndexPath>);
270
271        #[cfg(feature = "NSCollectionView")]
272        #[unsafe(method(invalidateSupplementaryElementsOfKind:atIndexPaths:))]
273        #[unsafe(method_family = none)]
274        pub fn invalidateSupplementaryElementsOfKind_atIndexPaths(
275            &self,
276            element_kind: &NSCollectionViewSupplementaryElementKind,
277            index_paths: &NSSet<NSIndexPath>,
278        );
279
280        #[unsafe(method(invalidateDecorationElementsOfKind:atIndexPaths:))]
281        #[unsafe(method_family = none)]
282        pub fn invalidateDecorationElementsOfKind_atIndexPaths(
283            &self,
284            element_kind: &NSCollectionViewDecorationElementKind,
285            index_paths: &NSSet<NSIndexPath>,
286        );
287
288        #[unsafe(method(invalidatedItemIndexPaths))]
289        #[unsafe(method_family = none)]
290        pub fn invalidatedItemIndexPaths(&self) -> Option<Retained<NSSet<NSIndexPath>>>;
291
292        #[cfg(feature = "NSCollectionView")]
293        #[unsafe(method(invalidatedSupplementaryIndexPaths))]
294        #[unsafe(method_family = none)]
295        pub fn invalidatedSupplementaryIndexPaths(
296            &self,
297        ) -> Option<
298            Retained<NSDictionary<NSCollectionViewSupplementaryElementKind, NSSet<NSIndexPath>>>,
299        >;
300
301        #[unsafe(method(invalidatedDecorationIndexPaths))]
302        #[unsafe(method_family = none)]
303        pub fn invalidatedDecorationIndexPaths(
304            &self,
305        ) -> Option<Retained<NSDictionary<NSCollectionViewDecorationElementKind, NSSet<NSIndexPath>>>>;
306
307        #[unsafe(method(contentOffsetAdjustment))]
308        #[unsafe(method_family = none)]
309        pub fn contentOffsetAdjustment(&self) -> NSPoint;
310
311        /// Setter for [`contentOffsetAdjustment`][Self::contentOffsetAdjustment].
312        #[unsafe(method(setContentOffsetAdjustment:))]
313        #[unsafe(method_family = none)]
314        pub fn setContentOffsetAdjustment(&self, content_offset_adjustment: NSPoint);
315
316        #[unsafe(method(contentSizeAdjustment))]
317        #[unsafe(method_family = none)]
318        pub fn contentSizeAdjustment(&self) -> NSSize;
319
320        /// Setter for [`contentSizeAdjustment`][Self::contentSizeAdjustment].
321        #[unsafe(method(setContentSizeAdjustment:))]
322        #[unsafe(method_family = none)]
323        pub fn setContentSizeAdjustment(&self, content_size_adjustment: NSSize);
324    );
325}
326
327/// Methods declared on superclass `NSObject`.
328impl NSCollectionViewLayoutInvalidationContext {
329    extern_methods!(
330        #[unsafe(method(init))]
331        #[unsafe(method_family = init)]
332        pub fn init(this: Allocated<Self>) -> Retained<Self>;
333
334        #[unsafe(method(new))]
335        #[unsafe(method_family = new)]
336        pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
337    );
338}
339
340extern_class!(
341    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nscollectionviewlayout?language=objc)
342    #[unsafe(super(NSObject))]
343    #[thread_kind = MainThreadOnly]
344    #[derive(Debug, PartialEq, Eq, Hash)]
345    pub struct NSCollectionViewLayout;
346);
347
348extern_conformance!(
349    unsafe impl NSCoding for NSCollectionViewLayout {}
350);
351
352extern_conformance!(
353    unsafe impl NSObjectProtocol for NSCollectionViewLayout {}
354);
355
356impl NSCollectionViewLayout {
357    extern_methods!(
358        #[cfg(all(
359            feature = "NSCollectionView",
360            feature = "NSResponder",
361            feature = "NSView"
362        ))]
363        #[unsafe(method(collectionView))]
364        #[unsafe(method_family = none)]
365        pub fn collectionView(&self) -> Option<Retained<NSCollectionView>>;
366
367        #[unsafe(method(invalidateLayout))]
368        #[unsafe(method_family = none)]
369        pub fn invalidateLayout(&self);
370
371        #[unsafe(method(invalidateLayoutWithContext:))]
372        #[unsafe(method_family = none)]
373        pub fn invalidateLayoutWithContext(
374            &self,
375            context: &NSCollectionViewLayoutInvalidationContext,
376        );
377
378        /// # Safety
379        ///
380        /// `view_class` probably has further requirements.
381        #[unsafe(method(registerClass:forDecorationViewOfKind:))]
382        #[unsafe(method_family = none)]
383        pub unsafe fn registerClass_forDecorationViewOfKind(
384            &self,
385            view_class: Option<&AnyClass>,
386            element_kind: &NSCollectionViewDecorationElementKind,
387        );
388
389        #[cfg(feature = "NSNib")]
390        #[unsafe(method(registerNib:forDecorationViewOfKind:))]
391        #[unsafe(method_family = none)]
392        pub fn registerNib_forDecorationViewOfKind(
393            &self,
394            nib: Option<&NSNib>,
395            element_kind: &NSCollectionViewDecorationElementKind,
396        );
397    );
398}
399
400/// Methods declared on superclass `NSObject`.
401impl NSCollectionViewLayout {
402    extern_methods!(
403        #[unsafe(method(init))]
404        #[unsafe(method_family = init)]
405        pub fn init(this: Allocated<Self>) -> Retained<Self>;
406
407        #[unsafe(method(new))]
408        #[unsafe(method_family = new)]
409        pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
410    );
411}
412
413/// NSSubclassingHooks.
414impl NSCollectionViewLayout {
415    extern_methods!(
416        #[unsafe(method(layoutAttributesClass))]
417        #[unsafe(method_family = none)]
418        pub fn layoutAttributesClass(mtm: MainThreadMarker) -> &'static AnyClass;
419
420        #[unsafe(method(invalidationContextClass))]
421        #[unsafe(method_family = none)]
422        pub fn invalidationContextClass(mtm: MainThreadMarker) -> &'static AnyClass;
423
424        #[unsafe(method(prepareLayout))]
425        #[unsafe(method_family = none)]
426        pub fn prepareLayout(&self);
427
428        #[unsafe(method(layoutAttributesForElementsInRect:))]
429        #[unsafe(method_family = none)]
430        pub fn layoutAttributesForElementsInRect(
431            &self,
432            rect: NSRect,
433        ) -> Retained<NSArray<NSCollectionViewLayoutAttributes>>;
434
435        #[unsafe(method(layoutAttributesForItemAtIndexPath:))]
436        #[unsafe(method_family = none)]
437        pub fn layoutAttributesForItemAtIndexPath(
438            &self,
439            index_path: &NSIndexPath,
440        ) -> Option<Retained<NSCollectionViewLayoutAttributes>>;
441
442        #[cfg(feature = "NSCollectionView")]
443        #[unsafe(method(layoutAttributesForSupplementaryViewOfKind:atIndexPath:))]
444        #[unsafe(method_family = none)]
445        pub fn layoutAttributesForSupplementaryViewOfKind_atIndexPath(
446            &self,
447            element_kind: &NSCollectionViewSupplementaryElementKind,
448            index_path: &NSIndexPath,
449        ) -> Option<Retained<NSCollectionViewLayoutAttributes>>;
450
451        #[unsafe(method(layoutAttributesForDecorationViewOfKind:atIndexPath:))]
452        #[unsafe(method_family = none)]
453        pub fn layoutAttributesForDecorationViewOfKind_atIndexPath(
454            &self,
455            element_kind: &NSCollectionViewDecorationElementKind,
456            index_path: &NSIndexPath,
457        ) -> Option<Retained<NSCollectionViewLayoutAttributes>>;
458
459        #[unsafe(method(layoutAttributesForDropTargetAtPoint:))]
460        #[unsafe(method_family = none)]
461        pub fn layoutAttributesForDropTargetAtPoint(
462            &self,
463            point_in_collection_view: NSPoint,
464        ) -> Option<Retained<NSCollectionViewLayoutAttributes>>;
465
466        #[unsafe(method(layoutAttributesForInterItemGapBeforeIndexPath:))]
467        #[unsafe(method_family = none)]
468        pub fn layoutAttributesForInterItemGapBeforeIndexPath(
469            &self,
470            index_path: &NSIndexPath,
471        ) -> Option<Retained<NSCollectionViewLayoutAttributes>>;
472
473        #[unsafe(method(shouldInvalidateLayoutForBoundsChange:))]
474        #[unsafe(method_family = none)]
475        pub fn shouldInvalidateLayoutForBoundsChange(&self, new_bounds: NSRect) -> bool;
476
477        #[unsafe(method(invalidationContextForBoundsChange:))]
478        #[unsafe(method_family = none)]
479        pub fn invalidationContextForBoundsChange(
480            &self,
481            new_bounds: NSRect,
482        ) -> Retained<NSCollectionViewLayoutInvalidationContext>;
483
484        #[unsafe(method(shouldInvalidateLayoutForPreferredLayoutAttributes:withOriginalAttributes:))]
485        #[unsafe(method_family = none)]
486        pub fn shouldInvalidateLayoutForPreferredLayoutAttributes_withOriginalAttributes(
487            &self,
488            preferred_attributes: &NSCollectionViewLayoutAttributes,
489            original_attributes: &NSCollectionViewLayoutAttributes,
490        ) -> bool;
491
492        #[unsafe(method(invalidationContextForPreferredLayoutAttributes:withOriginalAttributes:))]
493        #[unsafe(method_family = none)]
494        pub fn invalidationContextForPreferredLayoutAttributes_withOriginalAttributes(
495            &self,
496            preferred_attributes: &NSCollectionViewLayoutAttributes,
497            original_attributes: &NSCollectionViewLayoutAttributes,
498        ) -> Retained<NSCollectionViewLayoutInvalidationContext>;
499
500        #[unsafe(method(targetContentOffsetForProposedContentOffset:withScrollingVelocity:))]
501        #[unsafe(method_family = none)]
502        pub fn targetContentOffsetForProposedContentOffset_withScrollingVelocity(
503            &self,
504            proposed_content_offset: NSPoint,
505            velocity: NSPoint,
506        ) -> NSPoint;
507
508        #[unsafe(method(targetContentOffsetForProposedContentOffset:))]
509        #[unsafe(method_family = none)]
510        pub fn targetContentOffsetForProposedContentOffset(
511            &self,
512            proposed_content_offset: NSPoint,
513        ) -> NSPoint;
514
515        #[unsafe(method(collectionViewContentSize))]
516        #[unsafe(method_family = none)]
517        pub fn collectionViewContentSize(&self) -> NSSize;
518    );
519}
520
521/// NSUpdateSupportHooks.
522impl NSCollectionViewLayout {
523    extern_methods!(
524        #[unsafe(method(prepareForCollectionViewUpdates:))]
525        #[unsafe(method_family = none)]
526        pub fn prepareForCollectionViewUpdates(
527            &self,
528            update_items: &NSArray<NSCollectionViewUpdateItem>,
529        );
530
531        #[unsafe(method(finalizeCollectionViewUpdates))]
532        #[unsafe(method_family = none)]
533        pub fn finalizeCollectionViewUpdates(&self);
534
535        #[unsafe(method(prepareForAnimatedBoundsChange:))]
536        #[unsafe(method_family = none)]
537        pub fn prepareForAnimatedBoundsChange(&self, old_bounds: NSRect);
538
539        #[unsafe(method(finalizeAnimatedBoundsChange))]
540        #[unsafe(method_family = none)]
541        pub fn finalizeAnimatedBoundsChange(&self);
542
543        #[unsafe(method(prepareForTransitionToLayout:))]
544        #[unsafe(method_family = none)]
545        pub fn prepareForTransitionToLayout(&self, new_layout: &NSCollectionViewLayout);
546
547        #[unsafe(method(prepareForTransitionFromLayout:))]
548        #[unsafe(method_family = none)]
549        pub fn prepareForTransitionFromLayout(&self, old_layout: &NSCollectionViewLayout);
550
551        #[unsafe(method(finalizeLayoutTransition))]
552        #[unsafe(method_family = none)]
553        pub fn finalizeLayoutTransition(&self);
554
555        #[unsafe(method(initialLayoutAttributesForAppearingItemAtIndexPath:))]
556        #[unsafe(method_family = none)]
557        pub fn initialLayoutAttributesForAppearingItemAtIndexPath(
558            &self,
559            item_index_path: &NSIndexPath,
560        ) -> Option<Retained<NSCollectionViewLayoutAttributes>>;
561
562        #[unsafe(method(finalLayoutAttributesForDisappearingItemAtIndexPath:))]
563        #[unsafe(method_family = none)]
564        pub fn finalLayoutAttributesForDisappearingItemAtIndexPath(
565            &self,
566            item_index_path: &NSIndexPath,
567        ) -> Option<Retained<NSCollectionViewLayoutAttributes>>;
568
569        #[cfg(feature = "NSCollectionView")]
570        #[unsafe(method(initialLayoutAttributesForAppearingSupplementaryElementOfKind:atIndexPath:))]
571        #[unsafe(method_family = none)]
572        pub fn initialLayoutAttributesForAppearingSupplementaryElementOfKind_atIndexPath(
573            &self,
574            element_kind: &NSCollectionViewSupplementaryElementKind,
575            element_index_path: &NSIndexPath,
576        ) -> Option<Retained<NSCollectionViewLayoutAttributes>>;
577
578        #[cfg(feature = "NSCollectionView")]
579        #[unsafe(method(finalLayoutAttributesForDisappearingSupplementaryElementOfKind:atIndexPath:))]
580        #[unsafe(method_family = none)]
581        pub fn finalLayoutAttributesForDisappearingSupplementaryElementOfKind_atIndexPath(
582            &self,
583            element_kind: &NSCollectionViewSupplementaryElementKind,
584            element_index_path: &NSIndexPath,
585        ) -> Option<Retained<NSCollectionViewLayoutAttributes>>;
586
587        #[unsafe(method(initialLayoutAttributesForAppearingDecorationElementOfKind:atIndexPath:))]
588        #[unsafe(method_family = none)]
589        pub fn initialLayoutAttributesForAppearingDecorationElementOfKind_atIndexPath(
590            &self,
591            element_kind: &NSCollectionViewDecorationElementKind,
592            decoration_index_path: &NSIndexPath,
593        ) -> Option<Retained<NSCollectionViewLayoutAttributes>>;
594
595        #[unsafe(method(finalLayoutAttributesForDisappearingDecorationElementOfKind:atIndexPath:))]
596        #[unsafe(method_family = none)]
597        pub fn finalLayoutAttributesForDisappearingDecorationElementOfKind_atIndexPath(
598            &self,
599            element_kind: &NSCollectionViewDecorationElementKind,
600            decoration_index_path: &NSIndexPath,
601        ) -> Option<Retained<NSCollectionViewLayoutAttributes>>;
602
603        #[cfg(feature = "NSCollectionView")]
604        #[unsafe(method(indexPathsToDeleteForSupplementaryViewOfKind:))]
605        #[unsafe(method_family = none)]
606        pub fn indexPathsToDeleteForSupplementaryViewOfKind(
607            &self,
608            element_kind: &NSCollectionViewSupplementaryElementKind,
609        ) -> Retained<NSSet<NSIndexPath>>;
610
611        #[unsafe(method(indexPathsToDeleteForDecorationViewOfKind:))]
612        #[unsafe(method_family = none)]
613        pub fn indexPathsToDeleteForDecorationViewOfKind(
614            &self,
615            element_kind: &NSCollectionViewDecorationElementKind,
616        ) -> Retained<NSSet<NSIndexPath>>;
617
618        #[cfg(feature = "NSCollectionView")]
619        #[unsafe(method(indexPathsToInsertForSupplementaryViewOfKind:))]
620        #[unsafe(method_family = none)]
621        pub fn indexPathsToInsertForSupplementaryViewOfKind(
622            &self,
623            element_kind: &NSCollectionViewSupplementaryElementKind,
624        ) -> Retained<NSSet<NSIndexPath>>;
625
626        #[unsafe(method(indexPathsToInsertForDecorationViewOfKind:))]
627        #[unsafe(method_family = none)]
628        pub fn indexPathsToInsertForDecorationViewOfKind(
629            &self,
630            element_kind: &NSCollectionViewDecorationElementKind,
631        ) -> Retained<NSSet<NSIndexPath>>;
632    );
633}