#[cfg(feature = "block2")]
use block2::*;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSAnimationContext;
unsafe impl ClassType for NSAnimationContext {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for NSAnimationContext {}
extern_methods!(
unsafe impl NSAnimationContext {
#[cfg(feature = "block2")]
#[method(runAnimationGroup:completionHandler:)]
pub unsafe fn runAnimationGroup_completionHandler(
changes: &Block<dyn Fn(NonNull<NSAnimationContext>) + '_>,
completion_handler: Option<&Block<dyn Fn()>>,
);
#[cfg(feature = "block2")]
#[method(runAnimationGroup:)]
pub unsafe fn runAnimationGroup(changes: &Block<dyn Fn(NonNull<NSAnimationContext>) + '_>);
#[method(beginGrouping)]
pub unsafe fn beginGrouping();
#[method(endGrouping)]
pub unsafe fn endGrouping();
#[method_id(@__retain_semantics Other currentContext)]
pub unsafe fn currentContext() -> Id<NSAnimationContext>;
#[method(duration)]
pub unsafe fn duration(&self) -> NSTimeInterval;
#[method(setDuration:)]
pub unsafe fn setDuration(&self, duration: NSTimeInterval);
#[cfg(feature = "block2")]
#[method(completionHandler)]
pub unsafe fn completionHandler(&self) -> *mut Block<dyn Fn()>;
#[cfg(feature = "block2")]
#[method(setCompletionHandler:)]
pub unsafe fn setCompletionHandler(&self, completion_handler: Option<&Block<dyn Fn()>>);
#[method(allowsImplicitAnimation)]
pub unsafe fn allowsImplicitAnimation(&self) -> bool;
#[method(setAllowsImplicitAnimation:)]
pub unsafe fn setAllowsImplicitAnimation(&self, allows_implicit_animation: bool);
}
);
extern_methods!(
unsafe impl NSAnimationContext {
#[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>;
}
);