diff options
| author | Tomaka17 <pierre.krieger1708@gmail.com> | 2014-07-31 09:56:53 +0200 | 
|---|---|---|
| committer | Tomaka17 <pierre.krieger1708@gmail.com> | 2014-07-31 10:02:01 +0200 | 
| commit | db8955a9d85d7e44e63dd3fd7634230bc1aed635 (patch) | |
| tree | 43c376d6b61fc824a2b8f678e7137f245bda16e3 /src | |
| parent | 8911e162ce526dd8025b7740fd643041d5624a54 (diff) | |
| download | glutin-db8955a9d85d7e44e63dd3fd7634230bc1aed635.tar.gz glutin-db8955a9d85d7e44e63dd3fd7634230bc1aed635.zip  | |
Add API for monitors
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 31 | ||||
| -rw-r--r-- | src/win32/mod.rs | 8 | ||||
| -rw-r--r-- | src/x11/mod.rs | 8 | 
3 files changed, 47 insertions, 0 deletions
@@ -230,3 +230,34 @@ impl Window {          self.window.swap_buffers()      }  } + +/// An iterator for the list of available monitors. +// Implementation note: we retreive the list once, then serve each element by one by one. +// This may change in the future. +pub struct AvailableMonitorsIter { +    data: Vec<winimpl::MonitorID>, +} + +impl Iterator<MonitorID> for AvailableMonitorsIter { +    fn next(&mut self) -> Option<MonitorID> { +        self.data.remove(0).map(|id| MonitorID(id)) +    } +} + +/// Returns the list of all available monitors. +pub fn get_available_monitors() -> AvailableMonitorsIter { +    let data = winimpl::get_available_monitors(); +    AvailableMonitorsIter{ data: data } +} + +/// Returns the primary monitor of the system. +pub fn get_primary_monitor() -> MonitorID { +    MonitorID(winimpl::get_primary_monitor()) +} + +impl MonitorID { +    /// Returns a human-readable name of the monitor. +    pub fn get_name(&self) -> Option<String> { +        Some("<Unknown>".to_string()) +    } +} diff --git a/src/win32/mod.rs b/src/win32/mod.rs index a5df94c..232f0e5 100644 --- a/src/win32/mod.rs +++ b/src/win32/mod.rs @@ -19,6 +19,14 @@ pub struct Window {  pub struct MonitorID(uint); +pub fn get_available_monitors() -> Vec<MonitorID> { +    unimplemented!() +} + +pub fn get_primary_monitor() -> MonitorID { +    unimplemented!() +} +  /// Stores the list of all the windows.  /// Only available on callback thread.  local_data_key!(pub WINDOWS_LIST: Mutex<Vec<(ffi::HWND, Sender<Event>)>>) diff --git a/src/x11/mod.rs b/src/x11/mod.rs index e00dc50..9d08d4a 100644 --- a/src/x11/mod.rs +++ b/src/x11/mod.rs @@ -16,6 +16,14 @@ pub struct Window {  pub struct MonitorID(uint); +pub fn get_available_monitors() -> Vec<MonitorID> { +    unimplemented!() +} + +pub fn get_primary_monitor() -> MonitorID { +    unimplemented!() +} +  impl Window {      pub fn new(dimensions: Option<(uint, uint)>, title: &str, hints: &Hints, _: Option<MonitorID>)          -> Result<Window, String>  | 
