Add API for monitors
This commit is contained in:
parent
8911e162ce
commit
db8955a9d8
4 changed files with 95 additions and 0 deletions
31
src/lib.rs
31
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<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())
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>)>>)
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue