32
32
33
33
using namespace facebook ::react;
34
34
35
- #if TARGET_OS_OSX // [macOS
36
- inline NSCursor * RCTNSCursorFromCursor (facebook::react::Cursor cursorValue) {
37
- NSCursor *cursor = nil ;
38
-
39
- switch (cursorValue) {
40
- case Cursor::Arrow:
41
- cursor = [NSCursor arrowCursor ];
42
- break ;
43
- case Cursor::ClosedHand:
44
- cursor = [NSCursor closedHandCursor ];
45
- break ;
46
- case Cursor::ContextualMenu:
47
- cursor = [NSCursor contextualMenuCursor ];
48
- break ;
49
- case Cursor::Crosshair:
50
- cursor = [NSCursor crosshairCursor ];
51
- break ;
52
- case Cursor::DisappearingItem:
53
- cursor = [NSCursor disappearingItemCursor ];
54
- break ;
55
- case Cursor::DragCopy:
56
- cursor = [NSCursor dragCopyCursor ];
57
- break ;
58
- case Cursor::DragLink:
59
- cursor = [NSCursor dragLinkCursor ];
60
- break ;
61
- case Cursor::IBeam:
62
- cursor = [NSCursor IBeamCursor ];
63
- break ;
64
- case Cursor::IBeamCursorForVerticalLayout:
65
- cursor = [NSCursor IBeamCursorForVerticalLayout ];
66
- break ;
67
- case Cursor::OpenHand:
68
- cursor = [NSCursor openHandCursor ];
69
- break ;
70
- case Cursor::OperationNotAllowed:
71
- cursor = [NSCursor operationNotAllowedCursor ];
72
- break ;
73
- case Cursor::PointingHand:
74
- cursor = [NSCursor pointingHandCursor ];
75
- break ;
76
- case Cursor::ResizeDown:
77
- cursor = [NSCursor resizeDownCursor ];
78
- break ;
79
- case Cursor::ResizeLeft:
80
- cursor = [NSCursor resizeLeftCursor ];
81
- break ;
82
- case Cursor::ResizeLeftRight:
83
- cursor = [NSCursor resizeLeftRightCursor ];
84
- break ;
85
- case Cursor::ResizeRight:
86
- cursor = [NSCursor resizeRightCursor ];
87
- break ;
88
- case Cursor::ResizeUp:
89
- cursor = [NSCursor resizeUpCursor ];
90
- break ;
91
- case Cursor::ResizeUpDown:
92
- cursor = [NSCursor resizeUpDownCursor ];
93
- break ;
94
- }
95
-
96
- return cursor;
97
- }
98
- #endif // macOS]
99
-
100
35
@implementation RCTViewComponentView {
101
36
RCTUIColor *_backgroundColor; // [macOS]
102
37
CALayer *_borderLayer;
@@ -176,18 +111,6 @@ - (void)setBackgroundColor:(RCTUIColor *)backgroundColor // [macOS]
176
111
_backgroundColor = backgroundColor;
177
112
}
178
113
179
- #if TARGET_OS_OSX // [macOS
180
- - (void )resetCursorRects
181
- {
182
- [self discardCursorRects ];
183
- if (_props->cursor != Cursor::Auto)
184
- {
185
- NSCursor *cursor = NSCursorFromCursor(_props->cursor );
186
- [self addCursorRect: self .bounds cursor: cursor];
187
- }
188
- }
189
- #endif // macOS]
190
-
191
114
#pragma mark - RCTComponentViewProtocol
192
115
193
116
+ (ComponentDescriptorProvider)componentDescriptorProvider
@@ -347,7 +270,11 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &
347
270
348
271
// `cursor`
349
272
if (oldViewProps.cursor != newViewProps.cursor ) {
350
- needsInvalidateLayer = YES ;
273
+ #if !TARGET_OS_OSX // [macOS]
274
+ needsInvalidateLayer = YES ; // `cursor`
275
+ #else // [macOS
276
+ _cursor = NSCursorFromCursor(newViewProps.cursor );
277
+ #endif // macOS]
351
278
}
352
279
353
280
// `shouldRasterize`
@@ -544,13 +471,6 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &
544
471
}
545
472
}
546
473
547
- // `cursor`
548
- if (oldViewProps.cursor != newViewProps.cursor ) {
549
- _cursor = nil ;
550
- if (newViewProps.cursor .has_value ()) {
551
- _cursor = RCTNSCursorFromCursor (newViewProps.cursor .value ());
552
- }
553
- }
554
474
#endif // macOS]
555
475
556
476
_needsInvalidateLayer = _needsInvalidateLayer || needsInvalidateLayer;
@@ -753,13 +673,17 @@ static RCTBorderStyle RCTBorderStyleFromBorderStyle(BorderStyle borderStyle)
753
673
}
754
674
755
675
#if TARGET_OS_OSX // [macOS
756
- static NSCursor *NSCursorFromCursor (Cursor cursor)
676
+ static NSCursor *NSCursorFromCursor (Cursor cursor)
757
677
{
758
678
switch (cursor) {
759
- case Cursor::Auto:
760
- return [NSCursor arrowCursor ];
761
679
case Cursor::Alias:
762
680
return [NSCursor dragLinkCursor ];
681
+ case Cursor::Arrow:
682
+ return [NSCursor arrowCursor ];
683
+ case Cursor::Auto:
684
+ return [NSCursor arrowCursor ];
685
+ case Cursor::ClosedHand:
686
+ return [NSCursor closedHandCursor ];
763
687
case Cursor::ColumnResize:
764
688
return [NSCursor resizeLeftRightCursor ];
765
689
case Cursor::ContextualMenu:
@@ -772,20 +696,34 @@ static RCTBorderStyle RCTBorderStyleFromBorderStyle(BorderStyle borderStyle)
772
696
return [NSCursor arrowCursor ];
773
697
case Cursor::DisappearingItem:
774
698
return [NSCursor disappearingItemCursor ];
699
+ case Cursor::DragCopy:
700
+ return [NSCursor dragCopyCursor ];
701
+ case Cursor::DragLink:
702
+ return [NSCursor dragLinkCursor ];
775
703
case Cursor::EastResize:
776
704
return [NSCursor resizeRightCursor ];
777
705
case Cursor::Grab:
778
706
return [NSCursor openHandCursor ];
779
707
case Cursor::Grabbing:
780
708
return [NSCursor closedHandCursor ];
709
+ case Cursor::IBeam:
710
+ return [NSCursor IBeamCursor ];
711
+ case Cursor::IBeamCursorForVerticalLayout:
712
+ return [NSCursor IBeamCursorForVerticalLayout ];
781
713
case Cursor::NorthResize:
782
714
return [NSCursor resizeUpCursor ];
783
715
case Cursor::NoDrop:
784
716
return [NSCursor operationNotAllowedCursor ];
785
717
case Cursor::NotAllowed:
786
718
return [NSCursor operationNotAllowedCursor ];
719
+ case Cursor::OpenHand:
720
+ return [NSCursor openHandCursor ];
721
+ case Cursor::OperationNotAllowed:
722
+ return [NSCursor operationNotAllowedCursor ];
787
723
case Cursor::Pointer:
788
724
return [NSCursor pointingHandCursor ];
725
+ case Cursor::PointingHand:
726
+ return [NSCursor pointingHandCursor ];
789
727
case Cursor::RowResize:
790
728
return [NSCursor resizeUpDownCursor ];
791
729
case Cursor::SouthResize:
@@ -796,11 +734,22 @@ static RCTBorderStyle RCTBorderStyleFromBorderStyle(BorderStyle borderStyle)
796
734
return [NSCursor IBeamCursorForVerticalLayout ];
797
735
case Cursor::WestResize:
798
736
return [NSCursor resizeLeftCursor ];
737
+ case Cursor::ResizeDown:
738
+ return [NSCursor resizeDownCursor ];
739
+ case Cursor::ResizeLeft:
740
+ return [NSCursor resizeLeftCursor ];
741
+ case Cursor::ResizeLeftRight:
742
+ return [NSCursor resizeLeftRightCursor ];
743
+ case Cursor::ResizeRight:
744
+ return [NSCursor resizeRightCursor ];
745
+ case Cursor::ResizeUp:
746
+ return [NSCursor resizeUpCursor ];
747
+ case Cursor::ResizeUpDown:
748
+ return [NSCursor resizeDownCursor ];
799
749
}
800
750
}
801
751
#endif // macOS]
802
752
803
-
804
753
- (void )invalidateLayer
805
754
{
806
755
CALayer *layer = self.layer ;
0 commit comments