use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-core-foundation")]
use objc2_core_foundation::*;
use objc2_foundation::*;
#[cfg(feature = "objc2-quartz-core")]
#[cfg(not(target_os = "watchos"))]
use objc2_quartz_core::*;
use crate::*;
extern "C" {
#[cfg(feature = "objc2-core-foundation")]
pub static UICollectionViewLayoutAutomaticDimension: CGFloat;
}
extern "C" {
pub static UICollectionElementKindSectionHeader: &'static NSString;
}
extern "C" {
pub static UICollectionElementKindSectionFooter: &'static NSString;
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UICollectionViewScrollDirection(pub NSInteger);
impl UICollectionViewScrollDirection {
#[doc(alias = "UICollectionViewScrollDirectionVertical")]
pub const Vertical: Self = Self(0);
#[doc(alias = "UICollectionViewScrollDirectionHorizontal")]
pub const Horizontal: Self = Self(1);
}
unsafe impl Encode for UICollectionViewScrollDirection {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UICollectionViewScrollDirection {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UICollectionElementCategory(pub NSUInteger);
impl UICollectionElementCategory {
#[doc(alias = "UICollectionElementCategoryCell")]
pub const Cell: Self = Self(0);
#[doc(alias = "UICollectionElementCategorySupplementaryView")]
pub const SupplementaryView: Self = Self(1);
#[doc(alias = "UICollectionElementCategoryDecorationView")]
pub const DecorationView: Self = Self(2);
}
unsafe impl Encode for UICollectionElementCategory {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for UICollectionElementCategory {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[unsafe(super(NSObject))]
#[thread_kind = MainThreadOnly]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UICollectionViewLayoutAttributes;
);
extern_conformance!(
unsafe impl NSCopying for UICollectionViewLayoutAttributes {}
);
unsafe impl CopyingHelper for UICollectionViewLayoutAttributes {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for UICollectionViewLayoutAttributes {}
);
#[cfg(feature = "UIDynamicBehavior")]
extern_conformance!(
unsafe impl UIDynamicItem for UICollectionViewLayoutAttributes {}
);
impl UICollectionViewLayoutAttributes {
extern_methods!(
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(frame))]
#[unsafe(method_family = none)]
pub fn frame(&self) -> CGRect;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setFrame:))]
#[unsafe(method_family = none)]
pub fn setFrame(&self, frame: CGRect);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(center))]
#[unsafe(method_family = none)]
pub fn center(&self) -> CGPoint;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setCenter:))]
#[unsafe(method_family = none)]
pub fn setCenter(&self, center: CGPoint);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(size))]
#[unsafe(method_family = none)]
pub fn size(&self) -> CGSize;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setSize:))]
#[unsafe(method_family = none)]
pub fn setSize(&self, size: CGSize);
#[cfg(feature = "objc2-quartz-core")]
#[cfg(not(target_os = "watchos"))]
#[unsafe(method(transform3D))]
#[unsafe(method_family = none)]
pub fn transform3D(&self) -> CATransform3D;
#[cfg(feature = "objc2-quartz-core")]
#[cfg(not(target_os = "watchos"))]
#[unsafe(method(setTransform3D:))]
#[unsafe(method_family = none)]
pub fn setTransform3D(&self, transform3_d: CATransform3D);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(bounds))]
#[unsafe(method_family = none)]
pub fn bounds(&self) -> CGRect;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setBounds:))]
#[unsafe(method_family = none)]
pub fn setBounds(&self, bounds: CGRect);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(transform))]
#[unsafe(method_family = none)]
pub fn transform(&self) -> CGAffineTransform;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setTransform:))]
#[unsafe(method_family = none)]
pub fn setTransform(&self, transform: CGAffineTransform);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(alpha))]
#[unsafe(method_family = none)]
pub fn alpha(&self) -> CGFloat;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setAlpha:))]
#[unsafe(method_family = none)]
pub fn setAlpha(&self, alpha: CGFloat);
#[unsafe(method(zIndex))]
#[unsafe(method_family = none)]
pub fn zIndex(&self) -> NSInteger;
#[unsafe(method(setZIndex:))]
#[unsafe(method_family = none)]
pub fn setZIndex(&self, z_index: NSInteger);
#[unsafe(method(isHidden))]
#[unsafe(method_family = none)]
pub fn isHidden(&self) -> bool;
#[unsafe(method(setHidden:))]
#[unsafe(method_family = none)]
pub fn setHidden(&self, hidden: bool);
#[unsafe(method(indexPath))]
#[unsafe(method_family = none)]
pub fn indexPath(&self) -> Retained<NSIndexPath>;
#[unsafe(method(setIndexPath:))]
#[unsafe(method_family = none)]
pub fn setIndexPath(&self, index_path: &NSIndexPath);
#[unsafe(method(representedElementCategory))]
#[unsafe(method_family = none)]
pub fn representedElementCategory(&self) -> UICollectionElementCategory;
#[unsafe(method(representedElementKind))]
#[unsafe(method_family = none)]
pub fn representedElementKind(&self) -> Option<Retained<NSString>>;
#[unsafe(method(layoutAttributesForCellWithIndexPath:))]
#[unsafe(method_family = none)]
pub fn layoutAttributesForCellWithIndexPath(
index_path: &NSIndexPath,
mtm: MainThreadMarker,
) -> Retained<Self>;
#[unsafe(method(layoutAttributesForSupplementaryViewOfKind:withIndexPath:))]
#[unsafe(method_family = none)]
pub fn layoutAttributesForSupplementaryViewOfKind_withIndexPath(
element_kind: &NSString,
index_path: &NSIndexPath,
mtm: MainThreadMarker,
) -> Retained<Self>;
#[unsafe(method(layoutAttributesForDecorationViewOfKind:withIndexPath:))]
#[unsafe(method_family = none)]
pub fn layoutAttributesForDecorationViewOfKind_withIndexPath(
decoration_view_kind: &NSString,
index_path: &NSIndexPath,
mtm: MainThreadMarker,
) -> Retained<Self>;
);
}
impl UICollectionViewLayoutAttributes {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}
extern_class!(
#[unsafe(super(NSObject))]
#[thread_kind = MainThreadOnly]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UICollectionViewLayoutInvalidationContext;
);
extern_conformance!(
unsafe impl NSObjectProtocol for UICollectionViewLayoutInvalidationContext {}
);
impl UICollectionViewLayoutInvalidationContext {
extern_methods!(
#[unsafe(method(invalidateEverything))]
#[unsafe(method_family = none)]
pub fn invalidateEverything(&self) -> bool;
#[unsafe(method(invalidateDataSourceCounts))]
#[unsafe(method_family = none)]
pub fn invalidateDataSourceCounts(&self) -> bool;
#[unsafe(method(invalidateItemsAtIndexPaths:))]
#[unsafe(method_family = none)]
pub fn invalidateItemsAtIndexPaths(&self, index_paths: &NSArray<NSIndexPath>);
#[unsafe(method(invalidateSupplementaryElementsOfKind:atIndexPaths:))]
#[unsafe(method_family = none)]
pub fn invalidateSupplementaryElementsOfKind_atIndexPaths(
&self,
element_kind: &NSString,
index_paths: &NSArray<NSIndexPath>,
);
#[unsafe(method(invalidateDecorationElementsOfKind:atIndexPaths:))]
#[unsafe(method_family = none)]
pub fn invalidateDecorationElementsOfKind_atIndexPaths(
&self,
element_kind: &NSString,
index_paths: &NSArray<NSIndexPath>,
);
#[unsafe(method(invalidatedItemIndexPaths))]
#[unsafe(method_family = none)]
pub fn invalidatedItemIndexPaths(&self) -> Option<Retained<NSArray<NSIndexPath>>>;
#[unsafe(method(invalidatedSupplementaryIndexPaths))]
#[unsafe(method_family = none)]
pub fn invalidatedSupplementaryIndexPaths(
&self,
) -> Option<Retained<NSDictionary<NSString, NSArray<NSIndexPath>>>>;
#[unsafe(method(invalidatedDecorationIndexPaths))]
#[unsafe(method_family = none)]
pub fn invalidatedDecorationIndexPaths(
&self,
) -> Option<Retained<NSDictionary<NSString, NSArray<NSIndexPath>>>>;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(contentOffsetAdjustment))]
#[unsafe(method_family = none)]
pub fn contentOffsetAdjustment(&self) -> CGPoint;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setContentOffsetAdjustment:))]
#[unsafe(method_family = none)]
pub fn setContentOffsetAdjustment(&self, content_offset_adjustment: CGPoint);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(contentSizeAdjustment))]
#[unsafe(method_family = none)]
pub fn contentSizeAdjustment(&self) -> CGSize;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setContentSizeAdjustment:))]
#[unsafe(method_family = none)]
pub fn setContentSizeAdjustment(&self, content_size_adjustment: CGSize);
#[unsafe(method(previousIndexPathsForInteractivelyMovingItems))]
#[unsafe(method_family = none)]
pub fn previousIndexPathsForInteractivelyMovingItems(
&self,
) -> Option<Retained<NSArray<NSIndexPath>>>;
#[unsafe(method(targetIndexPathsForInteractivelyMovingItems))]
#[unsafe(method_family = none)]
pub fn targetIndexPathsForInteractivelyMovingItems(
&self,
) -> Option<Retained<NSArray<NSIndexPath>>>;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(interactiveMovementTarget))]
#[unsafe(method_family = none)]
pub fn interactiveMovementTarget(&self) -> CGPoint;
);
}
impl UICollectionViewLayoutInvalidationContext {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}
extern_class!(
#[unsafe(super(NSObject))]
#[thread_kind = MainThreadOnly]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UICollectionViewLayout;
);
extern_conformance!(
unsafe impl NSCoding for UICollectionViewLayout {}
);
extern_conformance!(
unsafe impl NSObjectProtocol for UICollectionViewLayout {}
);
impl UICollectionViewLayout {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(initWithCoder:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
#[cfg(all(
feature = "UICollectionView",
feature = "UIResponder",
feature = "UIScrollView",
feature = "UIView"
))]
#[unsafe(method(collectionView))]
#[unsafe(method_family = none)]
pub fn collectionView(&self) -> Option<Retained<UICollectionView>>;
#[unsafe(method(invalidateLayout))]
#[unsafe(method_family = none)]
pub fn invalidateLayout(&self);
#[unsafe(method(invalidateLayoutWithContext:))]
#[unsafe(method_family = none)]
pub fn invalidateLayoutWithContext(
&self,
context: &UICollectionViewLayoutInvalidationContext,
);
#[unsafe(method(registerClass:forDecorationViewOfKind:))]
#[unsafe(method_family = none)]
pub unsafe fn registerClass_forDecorationViewOfKind(
&self,
view_class: Option<&AnyClass>,
element_kind: &NSString,
);
#[cfg(feature = "UINib")]
#[deprecated = "Loading Interface Builder products will not be supported in a future version of visionOS."]
#[unsafe(method(registerNib:forDecorationViewOfKind:))]
#[unsafe(method_family = none)]
pub fn registerNib_forDecorationViewOfKind(
&self,
nib: Option<&UINib>,
element_kind: &NSString,
);
);
}
impl UICollectionViewLayout {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}
impl UICollectionViewLayout {
extern_methods!(
#[unsafe(method(layoutAttributesClass))]
#[unsafe(method_family = none)]
pub fn layoutAttributesClass(mtm: MainThreadMarker) -> &'static AnyClass;
#[unsafe(method(invalidationContextClass))]
#[unsafe(method_family = none)]
pub fn invalidationContextClass(mtm: MainThreadMarker) -> &'static AnyClass;
#[unsafe(method(prepareLayout))]
#[unsafe(method_family = none)]
pub fn prepareLayout(&self);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(layoutAttributesForElementsInRect:))]
#[unsafe(method_family = none)]
pub fn layoutAttributesForElementsInRect(
&self,
rect: CGRect,
) -> Option<Retained<NSArray<UICollectionViewLayoutAttributes>>>;
#[unsafe(method(layoutAttributesForItemAtIndexPath:))]
#[unsafe(method_family = none)]
pub fn layoutAttributesForItemAtIndexPath(
&self,
index_path: &NSIndexPath,
) -> Option<Retained<UICollectionViewLayoutAttributes>>;
#[unsafe(method(layoutAttributesForSupplementaryViewOfKind:atIndexPath:))]
#[unsafe(method_family = none)]
pub fn layoutAttributesForSupplementaryViewOfKind_atIndexPath(
&self,
element_kind: &NSString,
index_path: &NSIndexPath,
) -> Option<Retained<UICollectionViewLayoutAttributes>>;
#[unsafe(method(layoutAttributesForDecorationViewOfKind:atIndexPath:))]
#[unsafe(method_family = none)]
pub fn layoutAttributesForDecorationViewOfKind_atIndexPath(
&self,
element_kind: &NSString,
index_path: &NSIndexPath,
) -> Option<Retained<UICollectionViewLayoutAttributes>>;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(shouldInvalidateLayoutForBoundsChange:))]
#[unsafe(method_family = none)]
pub fn shouldInvalidateLayoutForBoundsChange(&self, new_bounds: CGRect) -> bool;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(invalidationContextForBoundsChange:))]
#[unsafe(method_family = none)]
pub fn invalidationContextForBoundsChange(
&self,
new_bounds: CGRect,
) -> Retained<UICollectionViewLayoutInvalidationContext>;
#[unsafe(method(shouldInvalidateLayoutForPreferredLayoutAttributes:withOriginalAttributes:))]
#[unsafe(method_family = none)]
pub fn shouldInvalidateLayoutForPreferredLayoutAttributes_withOriginalAttributes(
&self,
preferred_attributes: &UICollectionViewLayoutAttributes,
original_attributes: &UICollectionViewLayoutAttributes,
) -> bool;
#[unsafe(method(invalidationContextForPreferredLayoutAttributes:withOriginalAttributes:))]
#[unsafe(method_family = none)]
pub fn invalidationContextForPreferredLayoutAttributes_withOriginalAttributes(
&self,
preferred_attributes: &UICollectionViewLayoutAttributes,
original_attributes: &UICollectionViewLayoutAttributes,
) -> Retained<UICollectionViewLayoutInvalidationContext>;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(targetContentOffsetForProposedContentOffset:withScrollingVelocity:))]
#[unsafe(method_family = none)]
pub fn targetContentOffsetForProposedContentOffset_withScrollingVelocity(
&self,
proposed_content_offset: CGPoint,
velocity: CGPoint,
) -> CGPoint;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(targetContentOffsetForProposedContentOffset:))]
#[unsafe(method_family = none)]
pub fn targetContentOffsetForProposedContentOffset(
&self,
proposed_content_offset: CGPoint,
) -> CGPoint;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(collectionViewContentSize))]
#[unsafe(method_family = none)]
pub fn collectionViewContentSize(&self) -> CGSize;
#[cfg(feature = "UIInterface")]
#[unsafe(method(developmentLayoutDirection))]
#[unsafe(method_family = none)]
pub fn developmentLayoutDirection(&self) -> UIUserInterfaceLayoutDirection;
#[unsafe(method(flipsHorizontallyInOppositeLayoutDirection))]
#[unsafe(method_family = none)]
pub fn flipsHorizontallyInOppositeLayoutDirection(&self) -> bool;
);
}
impl UICollectionViewLayout {
extern_methods!(
#[cfg(feature = "UICollectionViewUpdateItem")]
#[unsafe(method(prepareForCollectionViewUpdates:))]
#[unsafe(method_family = none)]
pub fn prepareForCollectionViewUpdates(
&self,
update_items: &NSArray<UICollectionViewUpdateItem>,
);
#[unsafe(method(finalizeCollectionViewUpdates))]
#[unsafe(method_family = none)]
pub fn finalizeCollectionViewUpdates(&self);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(prepareForAnimatedBoundsChange:))]
#[unsafe(method_family = none)]
pub fn prepareForAnimatedBoundsChange(&self, old_bounds: CGRect);
#[unsafe(method(finalizeAnimatedBoundsChange))]
#[unsafe(method_family = none)]
pub fn finalizeAnimatedBoundsChange(&self);
#[unsafe(method(prepareForTransitionToLayout:))]
#[unsafe(method_family = none)]
pub fn prepareForTransitionToLayout(&self, new_layout: &UICollectionViewLayout);
#[unsafe(method(prepareForTransitionFromLayout:))]
#[unsafe(method_family = none)]
pub fn prepareForTransitionFromLayout(&self, old_layout: &UICollectionViewLayout);
#[unsafe(method(finalizeLayoutTransition))]
#[unsafe(method_family = none)]
pub fn finalizeLayoutTransition(&self);
#[unsafe(method(initialLayoutAttributesForAppearingItemAtIndexPath:))]
#[unsafe(method_family = none)]
pub fn initialLayoutAttributesForAppearingItemAtIndexPath(
&self,
item_index_path: &NSIndexPath,
) -> Option<Retained<UICollectionViewLayoutAttributes>>;
#[unsafe(method(finalLayoutAttributesForDisappearingItemAtIndexPath:))]
#[unsafe(method_family = none)]
pub fn finalLayoutAttributesForDisappearingItemAtIndexPath(
&self,
item_index_path: &NSIndexPath,
) -> Option<Retained<UICollectionViewLayoutAttributes>>;
#[unsafe(method(initialLayoutAttributesForAppearingSupplementaryElementOfKind:atIndexPath:))]
#[unsafe(method_family = none)]
pub fn initialLayoutAttributesForAppearingSupplementaryElementOfKind_atIndexPath(
&self,
element_kind: &NSString,
element_index_path: &NSIndexPath,
) -> Option<Retained<UICollectionViewLayoutAttributes>>;
#[unsafe(method(finalLayoutAttributesForDisappearingSupplementaryElementOfKind:atIndexPath:))]
#[unsafe(method_family = none)]
pub fn finalLayoutAttributesForDisappearingSupplementaryElementOfKind_atIndexPath(
&self,
element_kind: &NSString,
element_index_path: &NSIndexPath,
) -> Option<Retained<UICollectionViewLayoutAttributes>>;
#[unsafe(method(initialLayoutAttributesForAppearingDecorationElementOfKind:atIndexPath:))]
#[unsafe(method_family = none)]
pub fn initialLayoutAttributesForAppearingDecorationElementOfKind_atIndexPath(
&self,
element_kind: &NSString,
decoration_index_path: &NSIndexPath,
) -> Option<Retained<UICollectionViewLayoutAttributes>>;
#[unsafe(method(finalLayoutAttributesForDisappearingDecorationElementOfKind:atIndexPath:))]
#[unsafe(method_family = none)]
pub fn finalLayoutAttributesForDisappearingDecorationElementOfKind_atIndexPath(
&self,
element_kind: &NSString,
decoration_index_path: &NSIndexPath,
) -> Option<Retained<UICollectionViewLayoutAttributes>>;
#[unsafe(method(indexPathsToDeleteForSupplementaryViewOfKind:))]
#[unsafe(method_family = none)]
pub fn indexPathsToDeleteForSupplementaryViewOfKind(
&self,
element_kind: &NSString,
) -> Retained<NSArray<NSIndexPath>>;
#[unsafe(method(indexPathsToDeleteForDecorationViewOfKind:))]
#[unsafe(method_family = none)]
pub fn indexPathsToDeleteForDecorationViewOfKind(
&self,
element_kind: &NSString,
) -> Retained<NSArray<NSIndexPath>>;
#[unsafe(method(indexPathsToInsertForSupplementaryViewOfKind:))]
#[unsafe(method_family = none)]
pub fn indexPathsToInsertForSupplementaryViewOfKind(
&self,
element_kind: &NSString,
) -> Retained<NSArray<NSIndexPath>>;
#[unsafe(method(indexPathsToInsertForDecorationViewOfKind:))]
#[unsafe(method_family = none)]
pub fn indexPathsToInsertForDecorationViewOfKind(
&self,
element_kind: &NSString,
) -> Retained<NSArray<NSIndexPath>>;
);
}
impl UICollectionViewLayout {
extern_methods!(
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(targetIndexPathForInteractivelyMovingItem:withPosition:))]
#[unsafe(method_family = none)]
pub fn targetIndexPathForInteractivelyMovingItem_withPosition(
&self,
previous_index_path: &NSIndexPath,
position: CGPoint,
) -> Retained<NSIndexPath>;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(layoutAttributesForInteractivelyMovingItemAtIndexPath:withTargetPosition:))]
#[unsafe(method_family = none)]
pub fn layoutAttributesForInteractivelyMovingItemAtIndexPath_withTargetPosition(
&self,
index_path: &NSIndexPath,
position: CGPoint,
) -> Retained<UICollectionViewLayoutAttributes>;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(invalidationContextForInteractivelyMovingItems:withTargetPosition:previousIndexPaths:previousPosition:))]
#[unsafe(method_family = none)]
pub fn invalidationContextForInteractivelyMovingItems_withTargetPosition_previousIndexPaths_previousPosition(
&self,
target_index_paths: &NSArray<NSIndexPath>,
target_position: CGPoint,
previous_index_paths: &NSArray<NSIndexPath>,
previous_position: CGPoint,
) -> Retained<UICollectionViewLayoutInvalidationContext>;
#[unsafe(method(invalidationContextForEndingInteractiveMovementOfItemsToFinalIndexPaths:previousIndexPaths:movementCancelled:))]
#[unsafe(method_family = none)]
pub fn invalidationContextForEndingInteractiveMovementOfItemsToFinalIndexPaths_previousIndexPaths_movementCancelled(
&self,
index_paths: &NSArray<NSIndexPath>,
previous_index_paths: &NSArray<NSIndexPath>,
movement_cancelled: bool,
) -> Retained<UICollectionViewLayoutInvalidationContext>;
);
}