use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
pub type NSCollectionViewTransitionLayoutAnimatedKey = NSString;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "NSCollectionViewLayout")]
pub struct NSCollectionViewTransitionLayout;
#[cfg(feature = "NSCollectionViewLayout")]
unsafe impl ClassType for NSCollectionViewTransitionLayout {
#[inherits(NSObject)]
type Super = NSCollectionViewLayout;
type Mutability = InteriorMutable;
}
);
#[cfg(feature = "NSCollectionViewLayout")]
unsafe impl NSCoding for NSCollectionViewTransitionLayout {}
#[cfg(feature = "NSCollectionViewLayout")]
unsafe impl NSObjectProtocol for NSCollectionViewTransitionLayout {}
extern_methods!(
#[cfg(feature = "NSCollectionViewLayout")]
unsafe impl NSCollectionViewTransitionLayout {
#[method(transitionProgress)]
pub unsafe fn transitionProgress(&self) -> CGFloat;
#[method(setTransitionProgress:)]
pub unsafe fn setTransitionProgress(&self, transition_progress: CGFloat);
#[method_id(@__retain_semantics Other currentLayout)]
pub unsafe fn currentLayout(&self) -> Id<NSCollectionViewLayout>;
#[method_id(@__retain_semantics Other nextLayout)]
pub unsafe fn nextLayout(&self) -> Id<NSCollectionViewLayout>;
#[method_id(@__retain_semantics Init initWithCurrentLayout:nextLayout:)]
pub unsafe fn initWithCurrentLayout_nextLayout(
this: Allocated<Self>,
current_layout: &NSCollectionViewLayout,
new_layout: &NSCollectionViewLayout,
) -> Id<Self>;
#[method(updateValue:forAnimatedKey:)]
pub unsafe fn updateValue_forAnimatedKey(
&self,
value: CGFloat,
key: &NSCollectionViewTransitionLayoutAnimatedKey,
);
#[method(valueForAnimatedKey:)]
pub unsafe fn valueForAnimatedKey(
&self,
key: &NSCollectionViewTransitionLayoutAnimatedKey,
) -> CGFloat;
}
);
extern_methods!(
#[cfg(feature = "NSCollectionViewLayout")]
unsafe impl NSCollectionViewTransitionLayout {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Id<Self>;
}
);