From db8955a9d85d7e44e63dd3fd7634230bc1aed635 Mon Sep 17 00:00:00 2001 From: Tomaka17 Date: Thu, 31 Jul 2014 09:56:53 +0200 Subject: Add API for monitors --- src/lib.rs | 31 +++++++++++++++++++++++++++++++ src/win32/mod.rs | 8 ++++++++ src/x11/mod.rs | 8 ++++++++ 3 files changed, 47 insertions(+) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 061f85a..ab35774 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -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, +} + +impl Iterator for AvailableMonitorsIter { + fn next(&mut self) -> Option { + 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 { + Some("".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 { + 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)>>) 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 { + unimplemented!() +} + +pub fn get_primary_monitor() -> MonitorID { + unimplemented!() +} + impl Window { pub fn new(dimensions: Option<(uint, uint)>, title: &str, hints: &Hints, _: Option) -> Result -- cgit v1.2.3