objc2_sprite_kit/generated/
SKNode.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-app-kit")]
7#[cfg(target_os = "macos")]
8use objc2_app_kit::*;
9#[cfg(feature = "objc2-core-foundation")]
10use objc2_core_foundation::*;
11use objc2_foundation::*;
12
13use crate::*;
14
15#[repr(transparent)]
20#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
21pub struct SKBlendMode(pub NSInteger);
22impl SKBlendMode {
23 #[doc(alias = "SKBlendModeAlpha")]
24 pub const Alpha: Self = Self(0);
25 #[doc(alias = "SKBlendModeAdd")]
26 pub const Add: Self = Self(1);
27 #[doc(alias = "SKBlendModeSubtract")]
28 pub const Subtract: Self = Self(2);
29 #[doc(alias = "SKBlendModeMultiply")]
30 pub const Multiply: Self = Self(3);
31 #[doc(alias = "SKBlendModeMultiplyX2")]
32 pub const MultiplyX2: Self = Self(4);
33 #[doc(alias = "SKBlendModeScreen")]
34 pub const Screen: Self = Self(5);
35 #[doc(alias = "SKBlendModeReplace")]
36 pub const Replace: Self = Self(6);
37 #[doc(alias = "SKBlendModeMultiplyAlpha")]
38 pub const MultiplyAlpha: Self = Self(7);
39}
40
41unsafe impl Encode for SKBlendMode {
42 const ENCODING: Encoding = NSInteger::ENCODING;
43}
44
45unsafe impl RefEncode for SKBlendMode {
46 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
47}
48
49#[repr(transparent)]
52#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
53pub struct SKNodeFocusBehavior(pub NSInteger);
54impl SKNodeFocusBehavior {
55 #[doc(alias = "SKNodeFocusBehaviorNone")]
56 pub const None: Self = Self(0);
57 #[doc(alias = "SKNodeFocusBehaviorOccluding")]
58 pub const Occluding: Self = Self(1);
59 #[doc(alias = "SKNodeFocusBehaviorFocusable")]
60 pub const Focusable: Self = Self(2);
61}
62
63unsafe impl Encode for SKNodeFocusBehavior {
64 const ENCODING: Encoding = NSInteger::ENCODING;
65}
66
67unsafe impl RefEncode for SKNodeFocusBehavior {
68 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
69}
70
71extern_class!(
72 #[unsafe(super(NSResponder, NSObject))]
74 #[derive(Debug, PartialEq, Eq, Hash)]
75 #[cfg(feature = "objc2-app-kit")]
76 #[cfg(target_os = "macos")]
77 pub struct SKNode;
78);
79
80#[cfg(feature = "objc2-app-kit")]
81#[cfg(target_os = "macos")]
82unsafe impl NSCoding for SKNode {}
83
84#[cfg(feature = "objc2-app-kit")]
85#[cfg(target_os = "macos")]
86unsafe impl NSCopying for SKNode {}
87
88#[cfg(feature = "objc2-app-kit")]
89#[cfg(target_os = "macos")]
90unsafe impl CopyingHelper for SKNode {
91 type Result = Self;
92}
93
94#[cfg(feature = "objc2-app-kit")]
95#[cfg(target_os = "macos")]
96unsafe impl NSObjectProtocol for SKNode {}
97
98#[cfg(feature = "objc2-app-kit")]
99#[cfg(target_os = "macos")]
100unsafe impl NSSecureCoding for SKNode {}
101
102#[cfg(feature = "objc2-app-kit")]
103#[cfg(target_os = "macos")]
104impl SKNode {
105 extern_methods!(
106 #[unsafe(method(init))]
107 #[unsafe(method_family = init)]
108 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
109
110 #[unsafe(method(initWithCoder:))]
112 #[unsafe(method_family = init)]
113 pub unsafe fn initWithCoder(
114 this: Allocated<Self>,
115 a_decoder: &NSCoder,
116 ) -> Option<Retained<Self>>;
117
118 #[unsafe(method(node))]
119 #[unsafe(method_family = none)]
120 pub unsafe fn node(mtm: MainThreadMarker) -> Retained<Self>;
121
122 #[unsafe(method(nodeWithFileNamed:))]
123 #[unsafe(method_family = none)]
124 pub unsafe fn nodeWithFileNamed(
125 filename: &NSString,
126 mtm: MainThreadMarker,
127 ) -> Option<Retained<Self>>;
128
129 #[unsafe(method(nodeWithFileNamed:securelyWithClasses:andError:_))]
130 #[unsafe(method_family = none)]
131 pub unsafe fn nodeWithFileNamed_securelyWithClasses_andError(
132 filename: &NSString,
133 classes: &NSSet<AnyClass>,
134 mtm: MainThreadMarker,
135 ) -> Result<Retained<Self>, Retained<NSError>>;
136
137 #[cfg(feature = "objc2-core-foundation")]
138 #[unsafe(method(frame))]
139 #[unsafe(method_family = none)]
140 pub unsafe fn frame(&self) -> CGRect;
141
142 #[cfg(feature = "objc2-core-foundation")]
143 #[unsafe(method(calculateAccumulatedFrame))]
145 #[unsafe(method_family = none)]
146 pub unsafe fn calculateAccumulatedFrame(&self) -> CGRect;
147
148 #[cfg(feature = "objc2-core-foundation")]
149 #[unsafe(method(position))]
151 #[unsafe(method_family = none)]
152 pub unsafe fn position(&self) -> CGPoint;
153
154 #[cfg(feature = "objc2-core-foundation")]
155 #[unsafe(method(setPosition:))]
157 #[unsafe(method_family = none)]
158 pub unsafe fn setPosition(&self, position: CGPoint);
159
160 #[cfg(feature = "objc2-core-foundation")]
161 #[unsafe(method(zPosition))]
163 #[unsafe(method_family = none)]
164 pub unsafe fn zPosition(&self) -> CGFloat;
165
166 #[cfg(feature = "objc2-core-foundation")]
167 #[unsafe(method(setZPosition:))]
169 #[unsafe(method_family = none)]
170 pub unsafe fn setZPosition(&self, z_position: CGFloat);
171
172 #[cfg(feature = "objc2-core-foundation")]
173 #[unsafe(method(zRotation))]
175 #[unsafe(method_family = none)]
176 pub unsafe fn zRotation(&self) -> CGFloat;
177
178 #[cfg(feature = "objc2-core-foundation")]
179 #[unsafe(method(setZRotation:))]
181 #[unsafe(method_family = none)]
182 pub unsafe fn setZRotation(&self, z_rotation: CGFloat);
183
184 #[cfg(feature = "objc2-core-foundation")]
185 #[unsafe(method(xScale))]
187 #[unsafe(method_family = none)]
188 pub unsafe fn xScale(&self) -> CGFloat;
189
190 #[cfg(feature = "objc2-core-foundation")]
191 #[unsafe(method(setXScale:))]
193 #[unsafe(method_family = none)]
194 pub unsafe fn setXScale(&self, x_scale: CGFloat);
195
196 #[cfg(feature = "objc2-core-foundation")]
197 #[unsafe(method(yScale))]
199 #[unsafe(method_family = none)]
200 pub unsafe fn yScale(&self) -> CGFloat;
201
202 #[cfg(feature = "objc2-core-foundation")]
203 #[unsafe(method(setYScale:))]
205 #[unsafe(method_family = none)]
206 pub unsafe fn setYScale(&self, y_scale: CGFloat);
207
208 #[cfg(feature = "objc2-core-foundation")]
209 #[unsafe(method(speed))]
211 #[unsafe(method_family = none)]
212 pub unsafe fn speed(&self) -> CGFloat;
213
214 #[cfg(feature = "objc2-core-foundation")]
215 #[unsafe(method(setSpeed:))]
217 #[unsafe(method_family = none)]
218 pub unsafe fn setSpeed(&self, speed: CGFloat);
219
220 #[cfg(feature = "objc2-core-foundation")]
221 #[unsafe(method(alpha))]
223 #[unsafe(method_family = none)]
224 pub unsafe fn alpha(&self) -> CGFloat;
225
226 #[cfg(feature = "objc2-core-foundation")]
227 #[unsafe(method(setAlpha:))]
229 #[unsafe(method_family = none)]
230 pub unsafe fn setAlpha(&self, alpha: CGFloat);
231
232 #[unsafe(method(isPaused))]
234 #[unsafe(method_family = none)]
235 pub unsafe fn isPaused(&self) -> bool;
236
237 #[unsafe(method(setPaused:))]
239 #[unsafe(method_family = none)]
240 pub unsafe fn setPaused(&self, paused: bool);
241
242 #[unsafe(method(isHidden))]
244 #[unsafe(method_family = none)]
245 pub unsafe fn isHidden(&self) -> bool;
246
247 #[unsafe(method(setHidden:))]
249 #[unsafe(method_family = none)]
250 pub unsafe fn setHidden(&self, hidden: bool);
251
252 #[unsafe(method(isUserInteractionEnabled))]
254 #[unsafe(method_family = none)]
255 pub unsafe fn isUserInteractionEnabled(&self) -> bool;
256
257 #[unsafe(method(setUserInteractionEnabled:))]
259 #[unsafe(method_family = none)]
260 pub unsafe fn setUserInteractionEnabled(&self, user_interaction_enabled: bool);
261
262 #[unsafe(method(focusBehavior))]
264 #[unsafe(method_family = none)]
265 pub unsafe fn focusBehavior(&self) -> SKNodeFocusBehavior;
266
267 #[unsafe(method(setFocusBehavior:))]
269 #[unsafe(method_family = none)]
270 pub unsafe fn setFocusBehavior(&self, focus_behavior: SKNodeFocusBehavior);
271
272 #[unsafe(method(parent))]
276 #[unsafe(method_family = none)]
277 pub unsafe fn parent(&self) -> Option<Retained<SKNode>>;
278
279 #[unsafe(method(children))]
281 #[unsafe(method_family = none)]
282 pub unsafe fn children(&self) -> Retained<NSArray<SKNode>>;
283
284 #[unsafe(method(name))]
288 #[unsafe(method_family = none)]
289 pub unsafe fn name(&self) -> Option<Retained<NSString>>;
290
291 #[unsafe(method(setName:))]
293 #[unsafe(method_family = none)]
294 pub unsafe fn setName(&self, name: Option<&NSString>);
295
296 #[cfg(all(feature = "SKEffectNode", feature = "SKScene"))]
297 #[unsafe(method(scene))]
299 #[unsafe(method_family = none)]
300 pub unsafe fn scene(&self) -> Option<Retained<SKScene>>;
301
302 #[cfg(feature = "SKPhysicsBody")]
303 #[unsafe(method(physicsBody))]
305 #[unsafe(method_family = none)]
306 pub unsafe fn physicsBody(&self) -> Option<Retained<SKPhysicsBody>>;
307
308 #[cfg(feature = "SKPhysicsBody")]
309 #[unsafe(method(setPhysicsBody:))]
311 #[unsafe(method_family = none)]
312 pub unsafe fn setPhysicsBody(&self, physics_body: Option<&SKPhysicsBody>);
313
314 #[unsafe(method(userData))]
316 #[unsafe(method_family = none)]
317 pub unsafe fn userData(&self) -> Option<Retained<NSMutableDictionary>>;
318
319 #[unsafe(method(setUserData:))]
321 #[unsafe(method_family = none)]
322 pub unsafe fn setUserData(&self, user_data: Option<&NSMutableDictionary>);
323
324 #[cfg(feature = "SKReachConstraints")]
325 #[unsafe(method(reachConstraints))]
327 #[unsafe(method_family = none)]
328 pub unsafe fn reachConstraints(&self) -> Option<Retained<SKReachConstraints>>;
329
330 #[cfg(feature = "SKReachConstraints")]
331 #[unsafe(method(setReachConstraints:))]
333 #[unsafe(method_family = none)]
334 pub unsafe fn setReachConstraints(&self, reach_constraints: Option<&SKReachConstraints>);
335
336 #[cfg(feature = "SKConstraint")]
337 #[unsafe(method(constraints))]
341 #[unsafe(method_family = none)]
342 pub unsafe fn constraints(&self) -> Option<Retained<NSArray<SKConstraint>>>;
343
344 #[cfg(feature = "SKConstraint")]
345 #[unsafe(method(setConstraints:))]
347 #[unsafe(method_family = none)]
348 pub unsafe fn setConstraints(&self, constraints: Option<&NSArray<SKConstraint>>);
349
350 #[cfg(feature = "SKAttribute")]
351 #[deprecated]
355 #[unsafe(method(attributeValues))]
356 #[unsafe(method_family = none)]
357 pub unsafe fn attributeValues(&self) -> Retained<NSDictionary<NSString, SKAttributeValue>>;
358
359 #[cfg(feature = "SKAttribute")]
360 #[deprecated]
362 #[unsafe(method(setAttributeValues:))]
363 #[unsafe(method_family = none)]
364 pub unsafe fn setAttributeValues(
365 &self,
366 attribute_values: &NSDictionary<NSString, SKAttributeValue>,
367 );
368
369 #[cfg(feature = "SKAttribute")]
370 #[deprecated]
371 #[unsafe(method(valueForAttributeNamed:))]
372 #[unsafe(method_family = none)]
373 pub unsafe fn valueForAttributeNamed(
374 &self,
375 key: &NSString,
376 ) -> Option<Retained<SKAttributeValue>>;
377
378 #[cfg(feature = "SKAttribute")]
379 #[deprecated]
380 #[unsafe(method(setValue:forAttributeNamed:))]
381 #[unsafe(method_family = none)]
382 pub unsafe fn setValue_forAttributeNamed(&self, value: &SKAttributeValue, key: &NSString);
383
384 #[cfg(feature = "objc2-core-foundation")]
385 #[unsafe(method(setScale:))]
392 #[unsafe(method_family = none)]
393 pub unsafe fn setScale(&self, scale: CGFloat);
394
395 #[unsafe(method(addChild:))]
402 #[unsafe(method_family = none)]
403 pub unsafe fn addChild(&self, node: &SKNode);
404
405 #[unsafe(method(insertChild:atIndex:))]
406 #[unsafe(method_family = none)]
407 pub unsafe fn insertChild_atIndex(&self, node: &SKNode, index: NSInteger);
408
409 #[unsafe(method(removeChildrenInArray:))]
410 #[unsafe(method_family = none)]
411 pub unsafe fn removeChildrenInArray(&self, nodes: &NSArray<SKNode>);
412
413 #[unsafe(method(removeAllChildren))]
414 #[unsafe(method_family = none)]
415 pub unsafe fn removeAllChildren(&self);
416
417 #[unsafe(method(removeFromParent))]
418 #[unsafe(method_family = none)]
419 pub unsafe fn removeFromParent(&self);
420
421 #[unsafe(method(moveToParent:))]
422 #[unsafe(method_family = none)]
423 pub unsafe fn moveToParent(&self, parent: &SKNode);
424
425 #[unsafe(method(childNodeWithName:))]
426 #[unsafe(method_family = none)]
427 pub unsafe fn childNodeWithName(&self, name: &NSString) -> Option<Retained<SKNode>>;
428
429 #[cfg(feature = "block2")]
430 #[unsafe(method(enumerateChildNodesWithName:usingBlock:))]
431 #[unsafe(method_family = none)]
432 pub unsafe fn enumerateChildNodesWithName_usingBlock(
433 &self,
434 name: &NSString,
435 block: &block2::Block<dyn Fn(NonNull<SKNode>, NonNull<Bool>)>,
436 );
437
438 #[unsafe(method(objectForKeyedSubscript:))]
454 #[unsafe(method_family = none)]
455 pub unsafe fn objectForKeyedSubscript(&self, name: &NSString) -> Retained<NSArray<SKNode>>;
456
457 #[unsafe(method(inParentHierarchy:))]
458 #[unsafe(method_family = none)]
459 pub unsafe fn inParentHierarchy(&self, parent: &SKNode) -> bool;
460
461 #[cfg(feature = "SKAction")]
462 #[unsafe(method(runAction:))]
463 #[unsafe(method_family = none)]
464 pub unsafe fn runAction(&self, action: &SKAction);
465
466 #[cfg(all(feature = "SKAction", feature = "block2"))]
467 #[unsafe(method(runAction:completion:))]
468 #[unsafe(method_family = none)]
469 pub unsafe fn runAction_completion(
470 &self,
471 action: &SKAction,
472 block: &block2::Block<dyn Fn()>,
473 );
474
475 #[cfg(feature = "SKAction")]
476 #[unsafe(method(runAction:withKey:))]
477 #[unsafe(method_family = none)]
478 pub unsafe fn runAction_withKey(&self, action: &SKAction, key: &NSString);
479
480 #[unsafe(method(hasActions))]
481 #[unsafe(method_family = none)]
482 pub unsafe fn hasActions(&self) -> bool;
483
484 #[cfg(feature = "SKAction")]
485 #[unsafe(method(actionForKey:))]
486 #[unsafe(method_family = none)]
487 pub unsafe fn actionForKey(&self, key: &NSString) -> Option<Retained<SKAction>>;
488
489 #[unsafe(method(removeActionForKey:))]
490 #[unsafe(method_family = none)]
491 pub unsafe fn removeActionForKey(&self, key: &NSString);
492
493 #[unsafe(method(removeAllActions))]
494 #[unsafe(method_family = none)]
495 pub unsafe fn removeAllActions(&self);
496
497 #[cfg(feature = "objc2-core-foundation")]
498 #[unsafe(method(containsPoint:))]
499 #[unsafe(method_family = none)]
500 pub unsafe fn containsPoint(&self, p: CGPoint) -> bool;
501
502 #[cfg(feature = "objc2-core-foundation")]
503 #[unsafe(method(nodeAtPoint:))]
508 #[unsafe(method_family = none)]
509 pub unsafe fn nodeAtPoint(&self, p: CGPoint) -> Retained<SKNode>;
510
511 #[cfg(feature = "objc2-core-foundation")]
512 #[unsafe(method(nodesAtPoint:))]
513 #[unsafe(method_family = none)]
514 pub unsafe fn nodesAtPoint(&self, p: CGPoint) -> Retained<NSArray<SKNode>>;
515
516 #[cfg(feature = "objc2-core-foundation")]
517 #[unsafe(method(convertPoint:fromNode:))]
518 #[unsafe(method_family = none)]
519 pub unsafe fn convertPoint_fromNode(&self, point: CGPoint, node: &SKNode) -> CGPoint;
520
521 #[cfg(feature = "objc2-core-foundation")]
522 #[unsafe(method(convertPoint:toNode:))]
523 #[unsafe(method_family = none)]
524 pub unsafe fn convertPoint_toNode(&self, point: CGPoint, node: &SKNode) -> CGPoint;
525
526 #[unsafe(method(intersectsNode:))]
527 #[unsafe(method_family = none)]
528 pub unsafe fn intersectsNode(&self, node: &SKNode) -> bool;
529
530 #[unsafe(method(isEqualToNode:))]
531 #[unsafe(method_family = none)]
532 pub unsafe fn isEqualToNode(&self, node: &SKNode) -> bool;
533 );
534}
535
536#[cfg(feature = "objc2-app-kit")]
538#[cfg(target_os = "macos")]
539impl SKNode {
540 extern_methods!(
541 #[unsafe(method(new))]
542 #[unsafe(method_family = new)]
543 pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
544 );
545}
546
547mod private_NSEventSKNodeEvent {
548 pub trait Sealed {}
549}
550
551#[doc(alias = "SKNodeEvent")]
553pub unsafe trait NSEventSKNodeEvent:
554 ClassType + Sized + private_NSEventSKNodeEvent::Sealed
555{
556 extern_methods!(
557 #[cfg(all(feature = "objc2-app-kit", feature = "objc2-core-foundation"))]
558 #[cfg(target_os = "macos")]
559 #[unsafe(method(locationInNode:))]
560 #[unsafe(method_family = none)]
561 unsafe fn locationInNode(&self, node: &SKNode) -> CGPoint;
562 );
563}
564
565#[cfg(feature = "objc2-app-kit")]
566#[cfg(target_os = "macos")]
567impl private_NSEventSKNodeEvent::Sealed for NSEvent {}
568#[cfg(feature = "objc2-app-kit")]
569#[cfg(target_os = "macos")]
570unsafe impl NSEventSKNodeEvent for NSEvent {}