Rework MonitorId::get_native_identifier (#267)

* Rework MonitorId::get_native_identifier

* Try fix compilation

* Returns the monitor ID on wayland as well

* Try fix compilation

* Fix iOS compilation
This commit is contained in:
tomaka 2017-08-30 08:49:18 +02:00 committed by GitHub
parent f7a8bcddb8
commit 7dc6fcdedc
16 changed files with 67 additions and 69 deletions

View file

@ -3,7 +3,7 @@
use std::convert::From;
use std::os::raw::c_void;
use cocoa::appkit::NSApplicationActivationPolicy;
use {Window, WindowBuilder};
use {MonitorId, Window, WindowBuilder};
/// Additional methods on `Window` that are specific to MacOS.
pub trait WindowExt {
@ -73,3 +73,16 @@ impl WindowBuilderExt for WindowBuilder {
self
}
}
/// Additional methods on `MonitorId` that are specific to MacOS.
pub trait MonitorIdExt {
/// Returns the identifier of the monitor for Cocoa.
fn native_id(&self) -> u32;
}
impl MonitorIdExt for MonitorId {
#[inline]
fn native_id(&self) -> u32 {
self.inner.get_native_identifier()
}
}

View file

@ -3,6 +3,7 @@
use std::sync::Arc;
use std::ptr;
use libc;
use MonitorId;
use Window;
use platform::Window2 as LinuxWindow;
use platform::{UnixBackend, UNIX_BACKEND};
@ -148,3 +149,16 @@ impl WindowBuilderExt for WindowBuilder {
self
}
}
/// Additional methods on `MonitorId` that are specific to Linux.
pub trait MonitorIdExt {
/// Returns the inner identifier of the monitor.
fn native_id(&self) -> u32;
}
impl MonitorIdExt for MonitorId {
#[inline]
fn native_id(&self) -> u32 {
self.inner.get_native_identifier()
}
}

View file

@ -1,6 +1,7 @@
#![cfg(target_os = "windows")]
use libc;
use MonitorId;
use Window;
use WindowBuilder;
use winapi;
@ -35,3 +36,16 @@ impl WindowBuilderExt for WindowBuilder {
self
}
}
/// Additional methods on `MonitorId` that are specific to Windows.
pub trait MonitorIdExt {
/// Returns the name of the monitor specific to the Win32 API.
fn native_id(&self) -> String;
}
impl MonitorIdExt for MonitorId {
#[inline]
fn native_id(&self) -> String {
self.inner.get_native_identifier()
}
}