@@ -402,72 +402,78 @@ pub unsafe fn create_input_context(view: id) -> IdRef {
402
402
IdRef :: new ( input_context)
403
403
}
404
404
405
- pub enum CursorType {
405
+ pub enum Cursor {
406
406
Native ( & ' static str ) ,
407
407
Undocumented ( & ' static str ) ,
408
408
WebKit ( & ' static str ) ,
409
409
}
410
410
411
- impl From < MouseCursor > for CursorType {
411
+ impl From < MouseCursor > for Cursor {
412
412
fn from ( cursor : MouseCursor ) -> Self {
413
413
match cursor {
414
- MouseCursor :: Arrow | MouseCursor :: Default => CursorType :: Native ( "arrowCursor" ) ,
415
- MouseCursor :: Hand => CursorType :: Native ( "pointingHandCursor" ) ,
416
- MouseCursor :: Grabbing | MouseCursor :: Grab => CursorType :: Native ( "closedHandCursor" ) ,
417
- MouseCursor :: Text => CursorType :: Native ( "IBeamCursor" ) ,
418
- MouseCursor :: VerticalText => CursorType :: Native ( "IBeamCursorForVerticalLayout" ) ,
419
- MouseCursor :: Copy => CursorType :: Native ( "dragCopyCursor" ) ,
420
- MouseCursor :: Alias => CursorType :: Native ( "dragLinkCursor" ) ,
421
- MouseCursor :: NotAllowed | MouseCursor :: NoDrop => CursorType :: Native ( "operationNotAllowedCursor" ) ,
422
- MouseCursor :: ContextMenu => CursorType :: Native ( "contextualMenuCursor" ) ,
423
- MouseCursor :: Crosshair => CursorType :: Native ( "crosshairCursor" ) ,
424
- MouseCursor :: EResize => CursorType :: Native ( "resizeRightCursor" ) ,
425
- MouseCursor :: NResize => CursorType :: Native ( "resizeUpCursor" ) ,
426
- MouseCursor :: WResize => CursorType :: Native ( "resizeLeftCursor" ) ,
427
- MouseCursor :: SResize => CursorType :: Native ( "resizeDownCursor" ) ,
428
- MouseCursor :: EwResize | MouseCursor :: ColResize => CursorType :: Native ( "resizeLeftRightCursor" ) ,
429
- MouseCursor :: NsResize | MouseCursor :: RowResize => CursorType :: Native ( "resizeUpDownCursor" ) ,
414
+ MouseCursor :: Arrow | MouseCursor :: Default => Cursor :: Native ( "arrowCursor" ) ,
415
+ MouseCursor :: Hand => Cursor :: Native ( "pointingHandCursor" ) ,
416
+ MouseCursor :: Grabbing | MouseCursor :: Grab => Cursor :: Native ( "closedHandCursor" ) ,
417
+ MouseCursor :: Text => Cursor :: Native ( "IBeamCursor" ) ,
418
+ MouseCursor :: VerticalText => Cursor :: Native ( "IBeamCursorForVerticalLayout" ) ,
419
+ MouseCursor :: Copy => Cursor :: Native ( "dragCopyCursor" ) ,
420
+ MouseCursor :: Alias => Cursor :: Native ( "dragLinkCursor" ) ,
421
+ MouseCursor :: NotAllowed | MouseCursor :: NoDrop => Cursor :: Native ( "operationNotAllowedCursor" ) ,
422
+ MouseCursor :: ContextMenu => Cursor :: Native ( "contextualMenuCursor" ) ,
423
+ MouseCursor :: Crosshair => Cursor :: Native ( "crosshairCursor" ) ,
424
+ MouseCursor :: EResize => Cursor :: Native ( "resizeRightCursor" ) ,
425
+ MouseCursor :: NResize => Cursor :: Native ( "resizeUpCursor" ) ,
426
+ MouseCursor :: WResize => Cursor :: Native ( "resizeLeftCursor" ) ,
427
+ MouseCursor :: SResize => Cursor :: Native ( "resizeDownCursor" ) ,
428
+ MouseCursor :: EwResize | MouseCursor :: ColResize => Cursor :: Native ( "resizeLeftRightCursor" ) ,
429
+ MouseCursor :: NsResize | MouseCursor :: RowResize => Cursor :: Native ( "resizeUpDownCursor" ) ,
430
430
431
431
// Undocumented cursors: https://stackoverflow.com/a/46635398/5435443
432
- MouseCursor :: Help => CursorType :: Undocumented ( "_helpCursor" ) ,
433
- MouseCursor :: ZoomIn => CursorType :: Undocumented ( "_zoomInCursor" ) ,
434
- MouseCursor :: ZoomOut => CursorType :: Undocumented ( "_zoomOutCursor" ) ,
435
- MouseCursor :: NeResize => CursorType :: Undocumented ( "_windowResizeNorthEastCursor" ) ,
436
- MouseCursor :: NwResize => CursorType :: Undocumented ( "_windowResizeNorthWestCursor" ) ,
437
- MouseCursor :: SeResize => CursorType :: Undocumented ( "_windowResizeSouthEastCursor" ) ,
438
- MouseCursor :: SwResize => CursorType :: Undocumented ( "_windowResizeSouthWestCursor" ) ,
439
- MouseCursor :: NeswResize => CursorType :: Undocumented ( "_windowResizeNorthEastSouthWestCursor" ) ,
440
- MouseCursor :: NwseResize => CursorType :: Undocumented ( "_windowResizeNorthWestSouthEastCursor" ) ,
432
+ MouseCursor :: Help => Cursor :: Undocumented ( "_helpCursor" ) ,
433
+ MouseCursor :: ZoomIn => Cursor :: Undocumented ( "_zoomInCursor" ) ,
434
+ MouseCursor :: ZoomOut => Cursor :: Undocumented ( "_zoomOutCursor" ) ,
435
+ MouseCursor :: NeResize => Cursor :: Undocumented ( "_windowResizeNorthEastCursor" ) ,
436
+ MouseCursor :: NwResize => Cursor :: Undocumented ( "_windowResizeNorthWestCursor" ) ,
437
+ MouseCursor :: SeResize => Cursor :: Undocumented ( "_windowResizeSouthEastCursor" ) ,
438
+ MouseCursor :: SwResize => Cursor :: Undocumented ( "_windowResizeSouthWestCursor" ) ,
439
+ MouseCursor :: NeswResize => Cursor :: Undocumented ( "_windowResizeNorthEastSouthWestCursor" ) ,
440
+ MouseCursor :: NwseResize => Cursor :: Undocumented ( "_windowResizeNorthWestSouthEastCursor" ) ,
441
441
442
442
// While these are available, the former just loads a white arrow,
443
443
// and the latter loads an ugly deflated beachball!
444
- // MouseCursor::Move => CursorType ::Undocumented("_moveCursor"),
445
- // MouseCursor::Wait => CursorType ::Undocumented("_waitCursor"),
444
+ // MouseCursor::Move => Cursor ::Undocumented("_moveCursor"),
445
+ // MouseCursor::Wait => Cursor ::Undocumented("_waitCursor"),
446
446
447
447
// An even more undocumented cursor...
448
448
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=522349
449
449
// This is the wrong semantics for `Wait`, but it's the same as
450
450
// what's used in Safari and Chrome.
451
- MouseCursor :: Wait | MouseCursor :: Progress => CursorType :: Undocumented ( "busyButClickableCursor" ) ,
451
+ MouseCursor :: Wait | MouseCursor :: Progress => Cursor :: Undocumented ( "busyButClickableCursor" ) ,
452
452
453
453
// For the rest, we can just snatch the cursors from WebKit...
454
454
// They fit the style of the native cursors, and will seem
455
455
// completely standard to macOS users.
456
456
// https://stackoverflow.com/a/21786835/5435443
457
- MouseCursor :: Move | MouseCursor :: AllScroll => CursorType :: WebKit ( "move" ) ,
458
- MouseCursor :: Cell => CursorType :: WebKit ( "cell" ) ,
457
+ MouseCursor :: Move | MouseCursor :: AllScroll => Cursor :: WebKit ( "move" ) ,
458
+ MouseCursor :: Cell => Cursor :: WebKit ( "cell" ) ,
459
459
}
460
460
}
461
461
}
462
462
463
- impl CursorType {
464
- pub unsafe fn load ( self ) -> id {
463
+ impl Default for Cursor {
464
+ fn default ( ) -> Self {
465
+ Cursor :: Native ( "arrowCursor" )
466
+ }
467
+ }
468
+
469
+ impl Cursor {
470
+ pub unsafe fn load ( & self ) -> id {
465
471
match self {
466
- CursorType :: Native ( cursor_name) => {
472
+ Cursor :: Native ( cursor_name) => {
467
473
let sel = Sel :: register ( cursor_name) ;
468
474
msg_send ! [ class!( NSCursor ) , performSelector: sel]
469
475
} ,
470
- CursorType :: Undocumented ( cursor_name) => {
476
+ Cursor :: Undocumented ( cursor_name) => {
471
477
let class = class ! ( NSCursor ) ;
472
478
let sel = Sel :: register ( cursor_name) ;
473
479
let sel = if msg_send ! [ class, respondsToSelector: sel] {
@@ -478,7 +484,7 @@ impl CursorType {
478
484
} ;
479
485
msg_send ! [ class, performSelector: sel]
480
486
} ,
481
- CursorType :: WebKit ( cursor_name) => load_webkit_cursor ( cursor_name) ,
487
+ Cursor :: WebKit ( cursor_name) => load_webkit_cursor ( cursor_name) ,
482
488
}
483
489
}
484
490
}
0 commit comments