@@ -630,30 +630,29 @@ impl Window {
630
630
631
631
pub fn set_cursor ( & self , cursor : MouseCursor ) {
632
632
let cursor_name = match cursor {
633
- MouseCursor :: Arrow => "arrowCursor" ,
633
+ MouseCursor :: Arrow | MouseCursor :: Default => "arrowCursor" ,
634
+ MouseCursor :: Hand => "pointingHandCursor" ,
635
+ MouseCursor :: Grabbing | MouseCursor :: Grab => "closedHandCursor" ,
634
636
MouseCursor :: Text => "IBeamCursor" ,
635
- MouseCursor :: ContextMenu => "contextualMenuCursor " ,
637
+ MouseCursor :: VerticalText => "IBeamCursorForVerticalLayout " ,
636
638
MouseCursor :: Copy => "dragCopyCursor" ,
637
- MouseCursor :: Crosshair => "crosshairCursor" ,
638
- MouseCursor :: Default => "arrowCursor" ,
639
- MouseCursor :: Grabbing => "openHandCursor" ,
640
- MouseCursor :: Hand | MouseCursor :: Grab => "pointingHandCursor" ,
641
- MouseCursor :: NoDrop => "operationNotAllowedCursor" ,
642
- MouseCursor :: NotAllowed => "operationNotAllowedCursor" ,
643
639
MouseCursor :: Alias => "dragLinkCursor" ,
644
-
645
-
646
- /// Resize cursors
647
- MouseCursor :: EResize | MouseCursor :: NResize |
648
- MouseCursor :: NeResize | MouseCursor :: NwResize |
649
- MouseCursor :: SResize | MouseCursor :: SeResize |
650
- MouseCursor :: SwResize | MouseCursor :: WResize |
651
- MouseCursor :: EwResize | MouseCursor :: ColResize |
652
- MouseCursor :: NsResize | MouseCursor :: RowResize |
653
- MouseCursor :: NwseResize | MouseCursor :: NeswResize => "arrowCursor" ,
640
+ MouseCursor :: NotAllowed | MouseCursor :: NoDrop => "operationNotAllowedCursor" ,
641
+ MouseCursor :: ContextMenu => "contextualMenuCursor" ,
642
+ MouseCursor :: Crosshair => "crosshairCursor" ,
643
+ MouseCursor :: EResize => "resizeRightCursor" ,
644
+ MouseCursor :: NResize => "resizeUpCursor" ,
645
+ MouseCursor :: WResize => "resizeLeftCursor" ,
646
+ MouseCursor :: SResize => "resizeDownCursor" ,
647
+ MouseCursor :: EwResize | MouseCursor :: ColResize => "resizeLeftRightCursor" ,
648
+ MouseCursor :: NsResize | MouseCursor :: RowResize => "resizeUpDownCursor" ,
654
649
655
650
/// TODO: Find appropriate OSX cursors
656
- MouseCursor :: Cell | MouseCursor :: VerticalText | MouseCursor :: NoneCursor |
651
+ MouseCursor :: NeResize | MouseCursor :: NwResize |
652
+ MouseCursor :: SeResize | MouseCursor :: SwResize |
653
+ MouseCursor :: NwseResize | MouseCursor :: NeswResize |
654
+
655
+ MouseCursor :: Cell | MouseCursor :: NoneCursor |
657
656
MouseCursor :: Wait | MouseCursor :: Progress | MouseCursor :: Help |
658
657
MouseCursor :: Move | MouseCursor :: AllScroll | MouseCursor :: ZoomIn |
659
658
MouseCursor :: ZoomOut => "arrowCursor" ,
@@ -668,7 +667,20 @@ impl Window {
668
667
}
669
668
670
669
pub fn set_cursor_state ( & self , state : CursorState ) -> Result < ( ) , String > {
671
- unimplemented ! ( ) ;
670
+ let cls = Class :: get ( "NSCursor" ) . unwrap ( ) ;
671
+ match state {
672
+ CursorState :: Normal => {
673
+ let _: ( ) = unsafe { msg_send ! [ cls, unhide] } ;
674
+ Ok ( ( ) )
675
+ } ,
676
+ CursorState :: Hide => {
677
+ let _: ( ) = unsafe { msg_send ! [ cls, hide] } ;
678
+ Ok ( ( ) )
679
+ } ,
680
+ CursorState :: Grab => {
681
+ Err ( "Mouse grabbing is unimplemented" . to_string ( ) )
682
+ }
683
+ }
672
684
}
673
685
674
686
pub fn hidpi_factor ( & self ) -> f32 {
0 commit comments