diff options
author | Bryan Bell <bryan.w.bell@gmail.com> | 2015-02-27 01:27:54 -0800 |
---|---|---|
committer | Bryan Bell <bryan.w.bell@gmail.com> | 2015-02-27 01:56:33 -0800 |
commit | 903c9b1aad951e683de08c1d902a12c95bcd84c2 (patch) | |
tree | 52a5fc63c252801c5a68e2109322b188ea3d31c3 /src | |
parent | 76a69e2e7bf5461aa1831a875a60d1815c52fb40 (diff) | |
download | glutin-903c9b1aad951e683de08c1d902a12c95bcd84c2.tar.gz glutin-903c9b1aad951e683de08c1d902a12c95bcd84c2.zip |
Implement set_cursor for osx
Diffstat (limited to 'src')
-rw-r--r-- | src/cocoa/mod.rs | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/cocoa/mod.rs b/src/cocoa/mod.rs index 877c9b7..e39df9f 100644 --- a/src/cocoa/mod.rs +++ b/src/cocoa/mod.rs @@ -620,7 +620,39 @@ impl Window { } pub fn set_cursor(&self, cursor: MouseCursor) { - unimplemented!() + let cursor_name = match cursor { + MouseCursor::Arrow => "arrowCursor", + MouseCursor::Text => "IBeamCursor", + MouseCursor::ContextMenu => "contextualMenuCursor", + MouseCursor::Copy => "dragCopyCursor", + MouseCursor::Crosshair => "crosshairCursor", + MouseCursor::Default => "arrowCursor", + MouseCursor::Grabbing => "openHandCursor", + MouseCursor::Hand | MouseCursor::Grab => "pointingHandCursor", + MouseCursor::NoDrop => "operationNotAllowedCursor", + MouseCursor::NotAllowed => "operationNotAllowedCursor", + MouseCursor::Alias => "dragLinkCursor", + + + /// Resize cursors + MouseCursor::EResize | MouseCursor::NResize | + MouseCursor::NeResize | MouseCursor::NwResize | + MouseCursor::SResize | MouseCursor::SeResize | + MouseCursor::SwResize | MouseCursor::WResize | + MouseCursor::EwResize | MouseCursor::ColResize | + MouseCursor::NsResize | MouseCursor::RowResize | + MouseCursor::NwseResize | MouseCursor::NeswResize => "arrowCursor", + + /// TODO: Find appropriate OSX cursors + MouseCursor::Cell | MouseCursor::VerticalText | MouseCursor::NoneCursor | + MouseCursor::Wait | MouseCursor::Progress | MouseCursor::Help | + MouseCursor::Move | MouseCursor::AllScroll | MouseCursor::ZoomIn | + MouseCursor::ZoomOut => "arrowCursor", + }; + unsafe { + let cursor : id = msg_send()(class("NSCursor"), selector(cursor_name)); + let _ : id = msg_send()(cursor, selector("set")); + } } pub fn hidpi_factor(&self) -> f32 { |