diff options
author | tomaka <pierre.krieger1708@gmail.com> | 2015-03-11 09:01:20 +0100 |
---|---|---|
committer | tomaka <pierre.krieger1708@gmail.com> | 2015-03-11 09:01:20 +0100 |
commit | 4dc14280a8f192961a46e70267cf7eae78416582 (patch) | |
tree | 841976b471235813010fb65a4e540e607e04bb77 /src | |
parent | 277b66a70852661f7eb645e3e216c927eb94dffb (diff) | |
parent | c61c33a833ebbf874885d3c48491f8307bffe68e (diff) | |
download | glutin-4dc14280a8f192961a46e70267cf7eae78416582.tar.gz glutin-4dc14280a8f192961a46e70267cf7eae78416582.zip |
Merge pull request #308 from tomaka/cursor-pos
Add set_cursor_position function
Diffstat (limited to 'src')
-rw-r--r-- | src/android/mod.rs | 4 | ||||
-rw-r--r-- | src/cocoa/mod.rs | 4 | ||||
-rw-r--r-- | src/win32/mod.rs | 19 | ||||
-rw-r--r-- | src/window.rs | 5 | ||||
-rw-r--r-- | src/x11/window/mod.rs | 4 |
5 files changed, 36 insertions, 0 deletions
diff --git a/src/android/mod.rs b/src/android/mod.rs index 3c01b4c..7979f09 100644 --- a/src/android/mod.rs +++ b/src/android/mod.rs @@ -356,6 +356,10 @@ impl Window { pub fn hidpi_factor(&self) -> f32 { 1.0 } + + pub fn set_cursor_position(&self, x: i32, y: i32) -> Result<(), ()> { + unimplemented!(); + } } unsafe impl Send for Window {} diff --git a/src/cocoa/mod.rs b/src/cocoa/mod.rs index 334ec42..ee3b03f 100644 --- a/src/cocoa/mod.rs +++ b/src/cocoa/mod.rs @@ -664,4 +664,8 @@ impl Window { NSWindow::backingScaleFactor(self.window) as f32 } } + + pub fn set_cursor_position(&self, x: i32, y: i32) -> Result<(), ()> { + unimplemented!(); + } } diff --git a/src/win32/mod.rs b/src/win32/mod.rs index 8cb6d39..8ba5ed5 100644 --- a/src/win32/mod.rs +++ b/src/win32/mod.rs @@ -255,6 +255,25 @@ impl Window { pub fn hidpi_factor(&self) -> f32 { 1.0 } + + pub fn set_cursor_position(&self, x: i32, y: i32) -> Result<(), ()> { + let mut point = winapi::POINT { + x: x, + y: y, + }; + + unsafe { + if user32::ClientToScreen(self.window.0, &mut point) == 0 { + return Err(()); + } + + if user32::SetCursorPos(point.x, point.y) == 0 { + return Err(()); + } + } + + Ok(()) + } } pub struct PollEventsIterator<'a> { diff --git a/src/window.rs b/src/window.rs index 1bab245..bd5fc14 100644 --- a/src/window.rs +++ b/src/window.rs @@ -409,6 +409,11 @@ impl Window { pub fn hidpi_factor(&self) -> f32 { self.window.hidpi_factor() } + + /// Changes the position of the cursor in window coordinates. + pub fn set_cursor_position(&self, x: i32, y: i32) -> Result<(), ()> { + self.window.set_cursor_position(x, y) + } } impl gl_common::GlFunctionsSource for Window { diff --git a/src/x11/window/mod.rs b/src/x11/window/mod.rs index 404324a..7845d07 100644 --- a/src/x11/window/mod.rs +++ b/src/x11/window/mod.rs @@ -785,4 +785,8 @@ impl Window { pub fn hidpi_factor(&self) -> f32 { 1.0 } + + pub fn set_cursor_position(&self, x: i32, y: i32) -> Result<(), ()> { + unimplemented!(); + } } |