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