objc2_quartz_core/generated/
CAAnimation.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::*;
8#[cfg(feature = "objc2-core-graphics")]
9use objc2_core_graphics::*;
10use objc2_foundation::*;
11
12use crate::*;
13
14/// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/caanimationcalculationmode?language=objc)
15// NS_TYPED_ENUM
16pub type CAAnimationCalculationMode = NSString;
17
18/// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/caanimationrotationmode?language=objc)
19// NS_TYPED_ENUM
20pub type CAAnimationRotationMode = NSString;
21
22/// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/catransitiontype?language=objc)
23// NS_TYPED_ENUM
24pub type CATransitionType = NSString;
25
26/// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/catransitionsubtype?language=objc)
27// NS_TYPED_ENUM
28pub type CATransitionSubtype = NSString;
29
30extern_class!(
31    /// The base animation class. *
32    ///
33    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartzcore/caanimation?language=objc)
34    #[unsafe(super(NSObject))]
35    #[derive(Debug, PartialEq, Eq, Hash)]
36    pub struct CAAnimation;
37);
38
39#[cfg(feature = "CALayer")]
40extern_conformance!(
41    unsafe impl CAAction for CAAnimation {}
42);
43
44#[cfg(feature = "CAMediaTiming")]
45extern_conformance!(
46    unsafe impl CAMediaTiming for CAAnimation {}
47);
48
49extern_conformance!(
50    unsafe impl NSCoding for CAAnimation {}
51);
52
53extern_conformance!(
54    unsafe impl NSCopying for CAAnimation {}
55);
56
57unsafe impl CopyingHelper for CAAnimation {
58    type Result = Self;
59}
60
61extern_conformance!(
62    unsafe impl NSObjectProtocol for CAAnimation {}
63);
64
65extern_conformance!(
66    unsafe impl NSSecureCoding for CAAnimation {}
67);
68
69impl CAAnimation {
70    extern_methods!(
71        #[unsafe(method(animation))]
72        #[unsafe(method_family = none)]
73        pub fn animation() -> Retained<Self>;
74
75        #[unsafe(method(defaultValueForKey:))]
76        #[unsafe(method_family = none)]
77        pub fn defaultValueForKey(key: &NSString) -> Option<Retained<AnyObject>>;
78
79        #[unsafe(method(shouldArchiveValueForKey:))]
80        #[unsafe(method_family = none)]
81        pub fn shouldArchiveValueForKey(&self, key: &NSString) -> bool;
82
83        #[cfg(feature = "CAMediaTimingFunction")]
84        #[unsafe(method(timingFunction))]
85        #[unsafe(method_family = none)]
86        pub fn timingFunction(&self) -> Option<Retained<CAMediaTimingFunction>>;
87
88        #[cfg(feature = "CAMediaTimingFunction")]
89        /// Setter for [`timingFunction`][Self::timingFunction].
90        #[unsafe(method(setTimingFunction:))]
91        #[unsafe(method_family = none)]
92        pub fn setTimingFunction(&self, timing_function: Option<&CAMediaTimingFunction>);
93
94        #[unsafe(method(delegate))]
95        #[unsafe(method_family = none)]
96        pub fn delegate(&self) -> Option<Retained<ProtocolObject<dyn CAAnimationDelegate>>>;
97
98        /// Setter for [`delegate`][Self::delegate].
99        #[unsafe(method(setDelegate:))]
100        #[unsafe(method_family = none)]
101        pub fn setDelegate(&self, delegate: Option<&ProtocolObject<dyn CAAnimationDelegate>>);
102
103        #[unsafe(method(isRemovedOnCompletion))]
104        #[unsafe(method_family = none)]
105        pub fn isRemovedOnCompletion(&self) -> bool;
106
107        /// Setter for [`isRemovedOnCompletion`][Self::isRemovedOnCompletion].
108        #[unsafe(method(setRemovedOnCompletion:))]
109        #[unsafe(method_family = none)]
110        pub fn setRemovedOnCompletion(&self, removed_on_completion: bool);
111
112        #[cfg(feature = "CAFrameRateRange")]
113        #[unsafe(method(preferredFrameRateRange))]
114        #[unsafe(method_family = none)]
115        pub fn preferredFrameRateRange(&self) -> CAFrameRateRange;
116
117        #[cfg(feature = "CAFrameRateRange")]
118        /// Setter for [`preferredFrameRateRange`][Self::preferredFrameRateRange].
119        #[unsafe(method(setPreferredFrameRateRange:))]
120        #[unsafe(method_family = none)]
121        pub fn setPreferredFrameRateRange(&self, preferred_frame_rate_range: CAFrameRateRange);
122    );
123}
124
125/// Methods declared on superclass `NSObject`.
126impl CAAnimation {
127    extern_methods!(
128        #[unsafe(method(init))]
129        #[unsafe(method_family = init)]
130        pub fn init(this: Allocated<Self>) -> Retained<Self>;
131
132        #[unsafe(method(new))]
133        #[unsafe(method_family = new)]
134        pub fn new() -> Retained<Self>;
135    );
136}
137
138impl DefaultRetained for CAAnimation {
139    #[inline]
140    fn default_retained() -> Retained<Self> {
141        Self::new()
142    }
143}
144
145extern_protocol!(
146    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/caanimationdelegate?language=objc)
147    pub unsafe trait CAAnimationDelegate: NSObjectProtocol {
148        #[optional]
149        #[unsafe(method(animationDidStart:))]
150        #[unsafe(method_family = none)]
151        fn animationDidStart(&self, anim: &CAAnimation);
152
153        #[optional]
154        #[unsafe(method(animationDidStop:finished:))]
155        #[unsafe(method_family = none)]
156        fn animationDidStop_finished(&self, anim: &CAAnimation, flag: bool);
157    }
158);
159
160extern_class!(
161    /// Subclass for property-based animations. *
162    ///
163    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartzcore/capropertyanimation?language=objc)
164    #[unsafe(super(CAAnimation, NSObject))]
165    #[derive(Debug, PartialEq, Eq, Hash)]
166    pub struct CAPropertyAnimation;
167);
168
169#[cfg(feature = "CALayer")]
170extern_conformance!(
171    unsafe impl CAAction for CAPropertyAnimation {}
172);
173
174#[cfg(feature = "CAMediaTiming")]
175extern_conformance!(
176    unsafe impl CAMediaTiming for CAPropertyAnimation {}
177);
178
179extern_conformance!(
180    unsafe impl NSCoding for CAPropertyAnimation {}
181);
182
183extern_conformance!(
184    unsafe impl NSCopying for CAPropertyAnimation {}
185);
186
187unsafe impl CopyingHelper for CAPropertyAnimation {
188    type Result = Self;
189}
190
191extern_conformance!(
192    unsafe impl NSObjectProtocol for CAPropertyAnimation {}
193);
194
195extern_conformance!(
196    unsafe impl NSSecureCoding for CAPropertyAnimation {}
197);
198
199impl CAPropertyAnimation {
200    extern_methods!(
201        #[unsafe(method(animationWithKeyPath:))]
202        #[unsafe(method_family = none)]
203        pub fn animationWithKeyPath(path: Option<&NSString>) -> Retained<Self>;
204
205        #[unsafe(method(keyPath))]
206        #[unsafe(method_family = none)]
207        pub fn keyPath(&self) -> Option<Retained<NSString>>;
208
209        /// Setter for [`keyPath`][Self::keyPath].
210        ///
211        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
212        #[unsafe(method(setKeyPath:))]
213        #[unsafe(method_family = none)]
214        pub fn setKeyPath(&self, key_path: Option<&NSString>);
215
216        #[unsafe(method(isAdditive))]
217        #[unsafe(method_family = none)]
218        pub fn isAdditive(&self) -> bool;
219
220        /// Setter for [`isAdditive`][Self::isAdditive].
221        #[unsafe(method(setAdditive:))]
222        #[unsafe(method_family = none)]
223        pub fn setAdditive(&self, additive: bool);
224
225        #[unsafe(method(isCumulative))]
226        #[unsafe(method_family = none)]
227        pub fn isCumulative(&self) -> bool;
228
229        /// Setter for [`isCumulative`][Self::isCumulative].
230        #[unsafe(method(setCumulative:))]
231        #[unsafe(method_family = none)]
232        pub fn setCumulative(&self, cumulative: bool);
233
234        #[cfg(feature = "CAValueFunction")]
235        #[unsafe(method(valueFunction))]
236        #[unsafe(method_family = none)]
237        pub fn valueFunction(&self) -> Option<Retained<CAValueFunction>>;
238
239        #[cfg(feature = "CAValueFunction")]
240        /// Setter for [`valueFunction`][Self::valueFunction].
241        #[unsafe(method(setValueFunction:))]
242        #[unsafe(method_family = none)]
243        pub fn setValueFunction(&self, value_function: Option<&CAValueFunction>);
244    );
245}
246
247/// Methods declared on superclass `CAAnimation`.
248impl CAPropertyAnimation {
249    extern_methods!(
250        #[unsafe(method(animation))]
251        #[unsafe(method_family = none)]
252        pub fn animation() -> Retained<Self>;
253    );
254}
255
256/// Methods declared on superclass `NSObject`.
257impl CAPropertyAnimation {
258    extern_methods!(
259        #[unsafe(method(init))]
260        #[unsafe(method_family = init)]
261        pub fn init(this: Allocated<Self>) -> Retained<Self>;
262
263        #[unsafe(method(new))]
264        #[unsafe(method_family = new)]
265        pub fn new() -> Retained<Self>;
266    );
267}
268
269impl DefaultRetained for CAPropertyAnimation {
270    #[inline]
271    fn default_retained() -> Retained<Self> {
272        Self::new()
273    }
274}
275
276extern_class!(
277    /// Subclass for basic (single-keyframe) animations. *
278    ///
279    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartzcore/cabasicanimation?language=objc)
280    #[unsafe(super(CAPropertyAnimation, CAAnimation, NSObject))]
281    #[derive(Debug, PartialEq, Eq, Hash)]
282    pub struct CABasicAnimation;
283);
284
285#[cfg(feature = "CALayer")]
286extern_conformance!(
287    unsafe impl CAAction for CABasicAnimation {}
288);
289
290#[cfg(feature = "CAMediaTiming")]
291extern_conformance!(
292    unsafe impl CAMediaTiming for CABasicAnimation {}
293);
294
295extern_conformance!(
296    unsafe impl NSCoding for CABasicAnimation {}
297);
298
299extern_conformance!(
300    unsafe impl NSCopying for CABasicAnimation {}
301);
302
303unsafe impl CopyingHelper for CABasicAnimation {
304    type Result = Self;
305}
306
307extern_conformance!(
308    unsafe impl NSObjectProtocol for CABasicAnimation {}
309);
310
311extern_conformance!(
312    unsafe impl NSSecureCoding for CABasicAnimation {}
313);
314
315impl CABasicAnimation {
316    extern_methods!(
317        #[unsafe(method(fromValue))]
318        #[unsafe(method_family = none)]
319        pub fn fromValue(&self) -> Option<Retained<AnyObject>>;
320
321        /// Setter for [`fromValue`][Self::fromValue].
322        ///
323        /// # Safety
324        ///
325        /// `from_value` should be of the correct type.
326        #[unsafe(method(setFromValue:))]
327        #[unsafe(method_family = none)]
328        pub unsafe fn setFromValue(&self, from_value: Option<&AnyObject>);
329
330        #[unsafe(method(toValue))]
331        #[unsafe(method_family = none)]
332        pub fn toValue(&self) -> Option<Retained<AnyObject>>;
333
334        /// Setter for [`toValue`][Self::toValue].
335        ///
336        /// # Safety
337        ///
338        /// `to_value` should be of the correct type.
339        #[unsafe(method(setToValue:))]
340        #[unsafe(method_family = none)]
341        pub unsafe fn setToValue(&self, to_value: Option<&AnyObject>);
342
343        #[unsafe(method(byValue))]
344        #[unsafe(method_family = none)]
345        pub fn byValue(&self) -> Option<Retained<AnyObject>>;
346
347        /// Setter for [`byValue`][Self::byValue].
348        ///
349        /// # Safety
350        ///
351        /// `by_value` should be of the correct type.
352        #[unsafe(method(setByValue:))]
353        #[unsafe(method_family = none)]
354        pub unsafe fn setByValue(&self, by_value: Option<&AnyObject>);
355    );
356}
357
358/// Methods declared on superclass `CAPropertyAnimation`.
359impl CABasicAnimation {
360    extern_methods!(
361        #[unsafe(method(animationWithKeyPath:))]
362        #[unsafe(method_family = none)]
363        pub fn animationWithKeyPath(path: Option<&NSString>) -> Retained<Self>;
364    );
365}
366
367/// Methods declared on superclass `CAAnimation`.
368impl CABasicAnimation {
369    extern_methods!(
370        #[unsafe(method(animation))]
371        #[unsafe(method_family = none)]
372        pub fn animation() -> Retained<Self>;
373    );
374}
375
376/// Methods declared on superclass `NSObject`.
377impl CABasicAnimation {
378    extern_methods!(
379        #[unsafe(method(init))]
380        #[unsafe(method_family = init)]
381        pub fn init(this: Allocated<Self>) -> Retained<Self>;
382
383        #[unsafe(method(new))]
384        #[unsafe(method_family = new)]
385        pub fn new() -> Retained<Self>;
386    );
387}
388
389impl DefaultRetained for CABasicAnimation {
390    #[inline]
391    fn default_retained() -> Retained<Self> {
392        Self::new()
393    }
394}
395
396extern_class!(
397    /// General keyframe animation class. *
398    ///
399    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartzcore/cakeyframeanimation?language=objc)
400    #[unsafe(super(CAPropertyAnimation, CAAnimation, NSObject))]
401    #[derive(Debug, PartialEq, Eq, Hash)]
402    pub struct CAKeyframeAnimation;
403);
404
405#[cfg(feature = "CALayer")]
406extern_conformance!(
407    unsafe impl CAAction for CAKeyframeAnimation {}
408);
409
410#[cfg(feature = "CAMediaTiming")]
411extern_conformance!(
412    unsafe impl CAMediaTiming for CAKeyframeAnimation {}
413);
414
415extern_conformance!(
416    unsafe impl NSCoding for CAKeyframeAnimation {}
417);
418
419extern_conformance!(
420    unsafe impl NSCopying for CAKeyframeAnimation {}
421);
422
423unsafe impl CopyingHelper for CAKeyframeAnimation {
424    type Result = Self;
425}
426
427extern_conformance!(
428    unsafe impl NSObjectProtocol for CAKeyframeAnimation {}
429);
430
431extern_conformance!(
432    unsafe impl NSSecureCoding for CAKeyframeAnimation {}
433);
434
435impl CAKeyframeAnimation {
436    extern_methods!(
437        #[unsafe(method(values))]
438        #[unsafe(method_family = none)]
439        pub fn values(&self) -> Option<Retained<NSArray>>;
440
441        /// Setter for [`values`][Self::values].
442        ///
443        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
444        ///
445        /// # Safety
446        ///
447        /// `values` generic should be of the correct type.
448        #[unsafe(method(setValues:))]
449        #[unsafe(method_family = none)]
450        pub unsafe fn setValues(&self, values: Option<&NSArray>);
451
452        #[cfg(feature = "objc2-core-graphics")]
453        #[unsafe(method(path))]
454        #[unsafe(method_family = none)]
455        pub fn path(&self) -> Option<Retained<CGPath>>;
456
457        #[cfg(feature = "objc2-core-graphics")]
458        /// Setter for [`path`][Self::path].
459        #[unsafe(method(setPath:))]
460        #[unsafe(method_family = none)]
461        pub fn setPath(&self, path: Option<&CGPath>);
462
463        #[unsafe(method(keyTimes))]
464        #[unsafe(method_family = none)]
465        pub fn keyTimes(&self) -> Option<Retained<NSArray<NSNumber>>>;
466
467        /// Setter for [`keyTimes`][Self::keyTimes].
468        ///
469        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
470        #[unsafe(method(setKeyTimes:))]
471        #[unsafe(method_family = none)]
472        pub fn setKeyTimes(&self, key_times: Option<&NSArray<NSNumber>>);
473
474        #[cfg(feature = "CAMediaTimingFunction")]
475        #[unsafe(method(timingFunctions))]
476        #[unsafe(method_family = none)]
477        pub fn timingFunctions(&self) -> Option<Retained<NSArray<CAMediaTimingFunction>>>;
478
479        #[cfg(feature = "CAMediaTimingFunction")]
480        /// Setter for [`timingFunctions`][Self::timingFunctions].
481        ///
482        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
483        #[unsafe(method(setTimingFunctions:))]
484        #[unsafe(method_family = none)]
485        pub fn setTimingFunctions(&self, timing_functions: Option<&NSArray<CAMediaTimingFunction>>);
486
487        #[unsafe(method(calculationMode))]
488        #[unsafe(method_family = none)]
489        pub fn calculationMode(&self) -> Retained<CAAnimationCalculationMode>;
490
491        /// Setter for [`calculationMode`][Self::calculationMode].
492        ///
493        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
494        #[unsafe(method(setCalculationMode:))]
495        #[unsafe(method_family = none)]
496        pub fn setCalculationMode(&self, calculation_mode: &CAAnimationCalculationMode);
497
498        #[unsafe(method(tensionValues))]
499        #[unsafe(method_family = none)]
500        pub fn tensionValues(&self) -> Option<Retained<NSArray<NSNumber>>>;
501
502        /// Setter for [`tensionValues`][Self::tensionValues].
503        ///
504        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
505        #[unsafe(method(setTensionValues:))]
506        #[unsafe(method_family = none)]
507        pub fn setTensionValues(&self, tension_values: Option<&NSArray<NSNumber>>);
508
509        #[unsafe(method(continuityValues))]
510        #[unsafe(method_family = none)]
511        pub fn continuityValues(&self) -> Option<Retained<NSArray<NSNumber>>>;
512
513        /// Setter for [`continuityValues`][Self::continuityValues].
514        ///
515        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
516        #[unsafe(method(setContinuityValues:))]
517        #[unsafe(method_family = none)]
518        pub fn setContinuityValues(&self, continuity_values: Option<&NSArray<NSNumber>>);
519
520        #[unsafe(method(biasValues))]
521        #[unsafe(method_family = none)]
522        pub fn biasValues(&self) -> Option<Retained<NSArray<NSNumber>>>;
523
524        /// Setter for [`biasValues`][Self::biasValues].
525        ///
526        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
527        #[unsafe(method(setBiasValues:))]
528        #[unsafe(method_family = none)]
529        pub fn setBiasValues(&self, bias_values: Option<&NSArray<NSNumber>>);
530
531        #[unsafe(method(rotationMode))]
532        #[unsafe(method_family = none)]
533        pub fn rotationMode(&self) -> Option<Retained<CAAnimationRotationMode>>;
534
535        /// Setter for [`rotationMode`][Self::rotationMode].
536        ///
537        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
538        #[unsafe(method(setRotationMode:))]
539        #[unsafe(method_family = none)]
540        pub fn setRotationMode(&self, rotation_mode: Option<&CAAnimationRotationMode>);
541    );
542}
543
544/// Methods declared on superclass `CAPropertyAnimation`.
545impl CAKeyframeAnimation {
546    extern_methods!(
547        #[unsafe(method(animationWithKeyPath:))]
548        #[unsafe(method_family = none)]
549        pub fn animationWithKeyPath(path: Option<&NSString>) -> Retained<Self>;
550    );
551}
552
553/// Methods declared on superclass `CAAnimation`.
554impl CAKeyframeAnimation {
555    extern_methods!(
556        #[unsafe(method(animation))]
557        #[unsafe(method_family = none)]
558        pub fn animation() -> Retained<Self>;
559    );
560}
561
562/// Methods declared on superclass `NSObject`.
563impl CAKeyframeAnimation {
564    extern_methods!(
565        #[unsafe(method(init))]
566        #[unsafe(method_family = init)]
567        pub fn init(this: Allocated<Self>) -> Retained<Self>;
568
569        #[unsafe(method(new))]
570        #[unsafe(method_family = new)]
571        pub fn new() -> Retained<Self>;
572    );
573}
574
575impl DefaultRetained for CAKeyframeAnimation {
576    #[inline]
577    fn default_retained() -> Retained<Self> {
578        Self::new()
579    }
580}
581
582extern "C" {
583    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcaanimationlinear?language=objc)
584    pub static kCAAnimationLinear: &'static CAAnimationCalculationMode;
585}
586
587extern "C" {
588    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcaanimationdiscrete?language=objc)
589    pub static kCAAnimationDiscrete: &'static CAAnimationCalculationMode;
590}
591
592extern "C" {
593    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcaanimationpaced?language=objc)
594    pub static kCAAnimationPaced: &'static CAAnimationCalculationMode;
595}
596
597extern "C" {
598    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcaanimationcubic?language=objc)
599    pub static kCAAnimationCubic: &'static CAAnimationCalculationMode;
600}
601
602extern "C" {
603    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcaanimationcubicpaced?language=objc)
604    pub static kCAAnimationCubicPaced: &'static CAAnimationCalculationMode;
605}
606
607extern "C" {
608    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcaanimationrotateauto?language=objc)
609    pub static kCAAnimationRotateAuto: &'static CAAnimationRotationMode;
610}
611
612extern "C" {
613    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcaanimationrotateautoreverse?language=objc)
614    pub static kCAAnimationRotateAutoReverse: &'static CAAnimationRotationMode;
615}
616
617extern_class!(
618    /// Subclass for mass-spring animations.
619    ///
620    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartzcore/caspringanimation?language=objc)
621    #[unsafe(super(CABasicAnimation, CAPropertyAnimation, CAAnimation, NSObject))]
622    #[derive(Debug, PartialEq, Eq, Hash)]
623    pub struct CASpringAnimation;
624);
625
626#[cfg(feature = "CALayer")]
627extern_conformance!(
628    unsafe impl CAAction for CASpringAnimation {}
629);
630
631#[cfg(feature = "CAMediaTiming")]
632extern_conformance!(
633    unsafe impl CAMediaTiming for CASpringAnimation {}
634);
635
636extern_conformance!(
637    unsafe impl NSCoding for CASpringAnimation {}
638);
639
640extern_conformance!(
641    unsafe impl NSCopying for CASpringAnimation {}
642);
643
644unsafe impl CopyingHelper for CASpringAnimation {
645    type Result = Self;
646}
647
648extern_conformance!(
649    unsafe impl NSObjectProtocol for CASpringAnimation {}
650);
651
652extern_conformance!(
653    unsafe impl NSSecureCoding for CASpringAnimation {}
654);
655
656impl CASpringAnimation {
657    extern_methods!(
658        #[cfg(feature = "objc2-core-foundation")]
659        #[unsafe(method(mass))]
660        #[unsafe(method_family = none)]
661        pub fn mass(&self) -> CGFloat;
662
663        #[cfg(feature = "objc2-core-foundation")]
664        /// Setter for [`mass`][Self::mass].
665        #[unsafe(method(setMass:))]
666        #[unsafe(method_family = none)]
667        pub fn setMass(&self, mass: CGFloat);
668
669        #[cfg(feature = "objc2-core-foundation")]
670        #[unsafe(method(stiffness))]
671        #[unsafe(method_family = none)]
672        pub fn stiffness(&self) -> CGFloat;
673
674        #[cfg(feature = "objc2-core-foundation")]
675        /// Setter for [`stiffness`][Self::stiffness].
676        #[unsafe(method(setStiffness:))]
677        #[unsafe(method_family = none)]
678        pub fn setStiffness(&self, stiffness: CGFloat);
679
680        #[cfg(feature = "objc2-core-foundation")]
681        #[unsafe(method(damping))]
682        #[unsafe(method_family = none)]
683        pub fn damping(&self) -> CGFloat;
684
685        #[cfg(feature = "objc2-core-foundation")]
686        /// Setter for [`damping`][Self::damping].
687        #[unsafe(method(setDamping:))]
688        #[unsafe(method_family = none)]
689        pub fn setDamping(&self, damping: CGFloat);
690
691        #[cfg(feature = "objc2-core-foundation")]
692        #[unsafe(method(initialVelocity))]
693        #[unsafe(method_family = none)]
694        pub fn initialVelocity(&self) -> CGFloat;
695
696        #[cfg(feature = "objc2-core-foundation")]
697        /// Setter for [`initialVelocity`][Self::initialVelocity].
698        #[unsafe(method(setInitialVelocity:))]
699        #[unsafe(method_family = none)]
700        pub fn setInitialVelocity(&self, initial_velocity: CGFloat);
701
702        #[unsafe(method(allowsOverdamping))]
703        #[unsafe(method_family = none)]
704        pub fn allowsOverdamping(&self) -> bool;
705
706        /// Setter for [`allowsOverdamping`][Self::allowsOverdamping].
707        #[unsafe(method(setAllowsOverdamping:))]
708        #[unsafe(method_family = none)]
709        pub fn setAllowsOverdamping(&self, allows_overdamping: bool);
710
711        #[cfg(feature = "objc2-core-foundation")]
712        #[unsafe(method(settlingDuration))]
713        #[unsafe(method_family = none)]
714        pub fn settlingDuration(&self) -> CFTimeInterval;
715
716        #[cfg(feature = "objc2-core-foundation")]
717        #[unsafe(method(initWithPerceptualDuration:bounce:))]
718        #[unsafe(method_family = init)]
719        pub fn initWithPerceptualDuration_bounce(
720            this: Allocated<Self>,
721            perceptual_duration: CFTimeInterval,
722            bounce: CGFloat,
723        ) -> Retained<Self>;
724
725        #[cfg(feature = "objc2-core-foundation")]
726        #[unsafe(method(perceptualDuration))]
727        #[unsafe(method_family = none)]
728        pub fn perceptualDuration(&self) -> CFTimeInterval;
729
730        #[cfg(feature = "objc2-core-foundation")]
731        #[unsafe(method(bounce))]
732        #[unsafe(method_family = none)]
733        pub fn bounce(&self) -> CGFloat;
734    );
735}
736
737/// Methods declared on superclass `CAPropertyAnimation`.
738impl CASpringAnimation {
739    extern_methods!(
740        #[unsafe(method(animationWithKeyPath:))]
741        #[unsafe(method_family = none)]
742        pub fn animationWithKeyPath(path: Option<&NSString>) -> Retained<Self>;
743    );
744}
745
746/// Methods declared on superclass `CAAnimation`.
747impl CASpringAnimation {
748    extern_methods!(
749        #[unsafe(method(animation))]
750        #[unsafe(method_family = none)]
751        pub fn animation() -> Retained<Self>;
752    );
753}
754
755/// Methods declared on superclass `NSObject`.
756impl CASpringAnimation {
757    extern_methods!(
758        #[unsafe(method(init))]
759        #[unsafe(method_family = init)]
760        pub fn init(this: Allocated<Self>) -> Retained<Self>;
761
762        #[unsafe(method(new))]
763        #[unsafe(method_family = new)]
764        pub fn new() -> Retained<Self>;
765    );
766}
767
768impl DefaultRetained for CASpringAnimation {
769    #[inline]
770    fn default_retained() -> Retained<Self> {
771        Self::new()
772    }
773}
774
775extern_class!(
776    /// Transition animation subclass. *
777    ///
778    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartzcore/catransition?language=objc)
779    #[unsafe(super(CAAnimation, NSObject))]
780    #[derive(Debug, PartialEq, Eq, Hash)]
781    pub struct CATransition;
782);
783
784#[cfg(feature = "CALayer")]
785extern_conformance!(
786    unsafe impl CAAction for CATransition {}
787);
788
789#[cfg(feature = "CAMediaTiming")]
790extern_conformance!(
791    unsafe impl CAMediaTiming for CATransition {}
792);
793
794extern_conformance!(
795    unsafe impl NSCoding for CATransition {}
796);
797
798extern_conformance!(
799    unsafe impl NSCopying for CATransition {}
800);
801
802unsafe impl CopyingHelper for CATransition {
803    type Result = Self;
804}
805
806extern_conformance!(
807    unsafe impl NSObjectProtocol for CATransition {}
808);
809
810extern_conformance!(
811    unsafe impl NSSecureCoding for CATransition {}
812);
813
814impl CATransition {
815    extern_methods!(
816        #[unsafe(method(type))]
817        #[unsafe(method_family = none)]
818        pub fn r#type(&self) -> Retained<CATransitionType>;
819
820        /// Setter for [`type`][Self::type].
821        ///
822        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
823        #[unsafe(method(setType:))]
824        #[unsafe(method_family = none)]
825        pub fn setType(&self, r#type: &CATransitionType);
826
827        #[unsafe(method(subtype))]
828        #[unsafe(method_family = none)]
829        pub fn subtype(&self) -> Option<Retained<CATransitionSubtype>>;
830
831        /// Setter for [`subtype`][Self::subtype].
832        ///
833        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
834        #[unsafe(method(setSubtype:))]
835        #[unsafe(method_family = none)]
836        pub fn setSubtype(&self, subtype: Option<&CATransitionSubtype>);
837
838        #[unsafe(method(startProgress))]
839        #[unsafe(method_family = none)]
840        pub fn startProgress(&self) -> c_float;
841
842        /// Setter for [`startProgress`][Self::startProgress].
843        #[unsafe(method(setStartProgress:))]
844        #[unsafe(method_family = none)]
845        pub fn setStartProgress(&self, start_progress: c_float);
846
847        #[unsafe(method(endProgress))]
848        #[unsafe(method_family = none)]
849        pub fn endProgress(&self) -> c_float;
850
851        /// Setter for [`endProgress`][Self::endProgress].
852        #[unsafe(method(setEndProgress:))]
853        #[unsafe(method_family = none)]
854        pub fn setEndProgress(&self, end_progress: c_float);
855
856        #[unsafe(method(filter))]
857        #[unsafe(method_family = none)]
858        pub fn filter(&self) -> Option<Retained<AnyObject>>;
859
860        /// Setter for [`filter`][Self::filter].
861        ///
862        /// # Safety
863        ///
864        /// `filter` should be of the correct type.
865        #[unsafe(method(setFilter:))]
866        #[unsafe(method_family = none)]
867        pub unsafe fn setFilter(&self, filter: Option<&AnyObject>);
868    );
869}
870
871/// Methods declared on superclass `CAAnimation`.
872impl CATransition {
873    extern_methods!(
874        #[unsafe(method(animation))]
875        #[unsafe(method_family = none)]
876        pub fn animation() -> Retained<Self>;
877    );
878}
879
880/// Methods declared on superclass `NSObject`.
881impl CATransition {
882    extern_methods!(
883        #[unsafe(method(init))]
884        #[unsafe(method_family = init)]
885        pub fn init(this: Allocated<Self>) -> Retained<Self>;
886
887        #[unsafe(method(new))]
888        #[unsafe(method_family = new)]
889        pub fn new() -> Retained<Self>;
890    );
891}
892
893impl DefaultRetained for CATransition {
894    #[inline]
895    fn default_retained() -> Retained<Self> {
896        Self::new()
897    }
898}
899
900extern "C" {
901    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcatransitionfade?language=objc)
902    pub static kCATransitionFade: &'static CATransitionType;
903}
904
905extern "C" {
906    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcatransitionmovein?language=objc)
907    pub static kCATransitionMoveIn: &'static CATransitionType;
908}
909
910extern "C" {
911    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcatransitionpush?language=objc)
912    pub static kCATransitionPush: &'static CATransitionType;
913}
914
915extern "C" {
916    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcatransitionreveal?language=objc)
917    pub static kCATransitionReveal: &'static CATransitionType;
918}
919
920extern "C" {
921    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcatransitionfromright?language=objc)
922    pub static kCATransitionFromRight: &'static CATransitionSubtype;
923}
924
925extern "C" {
926    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcatransitionfromleft?language=objc)
927    pub static kCATransitionFromLeft: &'static CATransitionSubtype;
928}
929
930extern "C" {
931    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcatransitionfromtop?language=objc)
932    pub static kCATransitionFromTop: &'static CATransitionSubtype;
933}
934
935extern "C" {
936    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/kcatransitionfrombottom?language=objc)
937    pub static kCATransitionFromBottom: &'static CATransitionSubtype;
938}
939
940extern_class!(
941    /// Animation subclass for grouped animations. *
942    ///
943    /// See also [Apple's documentation](https://developer.apple.com/documentation/quartzcore/caanimationgroup?language=objc)
944    #[unsafe(super(CAAnimation, NSObject))]
945    #[derive(Debug, PartialEq, Eq, Hash)]
946    pub struct CAAnimationGroup;
947);
948
949#[cfg(feature = "CALayer")]
950extern_conformance!(
951    unsafe impl CAAction for CAAnimationGroup {}
952);
953
954#[cfg(feature = "CAMediaTiming")]
955extern_conformance!(
956    unsafe impl CAMediaTiming for CAAnimationGroup {}
957);
958
959extern_conformance!(
960    unsafe impl NSCoding for CAAnimationGroup {}
961);
962
963extern_conformance!(
964    unsafe impl NSCopying for CAAnimationGroup {}
965);
966
967unsafe impl CopyingHelper for CAAnimationGroup {
968    type Result = Self;
969}
970
971extern_conformance!(
972    unsafe impl NSObjectProtocol for CAAnimationGroup {}
973);
974
975extern_conformance!(
976    unsafe impl NSSecureCoding for CAAnimationGroup {}
977);
978
979impl CAAnimationGroup {
980    extern_methods!(
981        #[unsafe(method(animations))]
982        #[unsafe(method_family = none)]
983        pub fn animations(&self) -> Option<Retained<NSArray<CAAnimation>>>;
984
985        /// Setter for [`animations`][Self::animations].
986        ///
987        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
988        #[unsafe(method(setAnimations:))]
989        #[unsafe(method_family = none)]
990        pub fn setAnimations(&self, animations: Option<&NSArray<CAAnimation>>);
991    );
992}
993
994/// Methods declared on superclass `CAAnimation`.
995impl CAAnimationGroup {
996    extern_methods!(
997        #[unsafe(method(animation))]
998        #[unsafe(method_family = none)]
999        pub fn animation() -> Retained<Self>;
1000    );
1001}
1002
1003/// Methods declared on superclass `NSObject`.
1004impl CAAnimationGroup {
1005    extern_methods!(
1006        #[unsafe(method(init))]
1007        #[unsafe(method_family = init)]
1008        pub fn init(this: Allocated<Self>) -> Retained<Self>;
1009
1010        #[unsafe(method(new))]
1011        #[unsafe(method_family = new)]
1012        pub fn new() -> Retained<Self>;
1013    );
1014}
1015
1016impl DefaultRetained for CAAnimationGroup {
1017    #[inline]
1018    fn default_retained() -> Retained<Self> {
1019        Self::new()
1020    }
1021}