aboutsummaryrefslogtreecommitdiffstats
path: root/src/win32
diff options
context:
space:
mode:
authorTomaka17 <pierre.krieger1708@gmail.com>2014-07-30 13:10:17 +0200
committerTomaka17 <pierre.krieger1708@gmail.com>2014-07-30 13:10:17 +0200
commit838cc2b325d85735c7db40fba389bf120b282814 (patch)
treea2e2629ce451e8b705819256e57a5973eee73686 /src/win32
parent66f6b003d02dc83824725d4aaec0e4a1b4f0968b (diff)
downloadglutin-838cc2b325d85735c7db40fba389bf120b282814.tar.gz
glutin-838cc2b325d85735c7db40fba389bf120b282814.zip
Window getters now return an Option in case where the Window has been closed
Diffstat (limited to 'src/win32')
-rw-r--r--src/win32/mod.rs30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/win32/mod.rs b/src/win32/mod.rs
index 74b046b..9d44e02 100644
--- a/src/win32/mod.rs
+++ b/src/win32/mod.rs
@@ -94,8 +94,6 @@ impl Window {
// creating the window
let handle = unsafe {
- use libc;
-
let handle = ffi::CreateWindowExW(ex_style, class_name.as_ptr(),
title.utf16_units().collect::<Vec<u16>>().append_one(0).as_ptr() as ffi::LPCWSTR,
style | ffi::WS_VISIBLE | ffi::WS_CLIPSIBLINGS | ffi::WS_CLIPCHILDREN,
@@ -207,18 +205,18 @@ impl Window {
}
}
- pub fn get_position(&self) -> (int, int) {
- use std::{mem, os};
+ pub fn get_position(&self) -> Option<(int, int)> {
+ use std::mem;
let mut placement: ffi::WINDOWPLACEMENT = unsafe { mem::zeroed() };
placement.length = mem::size_of::<ffi::WINDOWPLACEMENT>() as ffi::UINT;
if unsafe { ffi::GetWindowPlacement(self.window, &mut placement) } == 0 {
- fail!("GetWindowPlacement failed: {}", os::error_string(os::errno() as uint));
+ return None
}
let ref rect = placement.rcNormalPosition;
- (rect.left as int, rect.top as int)
+ Some((rect.left as int, rect.top as int))
}
pub fn set_position(&self, x: uint, y: uint) {
@@ -231,32 +229,32 @@ impl Window {
}
}
- pub fn get_inner_size(&self) -> (uint, uint) {
- use std::{mem, os};
+ pub fn get_inner_size(&self) -> Option<(uint, uint)> {
+ use std::mem;
let mut rect: ffi::RECT = unsafe { mem::uninitialized() };
if unsafe { ffi::GetClientRect(self.window, &mut rect) } == 0 {
- fail!("GetClientRect failed: {}", os::error_string(os::errno() as uint));
+ return None
}
- (
+ Some((
(rect.right - rect.left) as uint,
(rect.bottom - rect.top) as uint
- )
+ ))
}
- pub fn get_outer_size(&self) -> (uint, uint) {
- use std::{mem, os};
+ pub fn get_outer_size(&self) -> Option<(uint, uint)> {
+ use std::mem;
let mut rect: ffi::RECT = unsafe { mem::uninitialized() };
if unsafe { ffi::GetWindowRect(self.window, &mut rect) } == 0 {
- fail!("GetWindowRect failed: {}", os::error_string(os::errno() as uint));
+ return None
}
- (
+ Some((
(rect.right - rect.left) as uint,
(rect.bottom - rect.top) as uint
- )
+ ))
}
pub fn set_inner_size(&self, x: uint, y: uint) {