aboutsummaryrefslogtreecommitdiffstats
path: root/src/android/mod.rs
diff options
context:
space:
mode:
authortomaka <pierre.krieger1708@gmail.com>2015-01-02 09:22:27 +0100
committertomaka <pierre.krieger1708@gmail.com>2015-01-02 09:22:27 +0100
commitebe32bb2d803bc22c4b309acbbd48f3dc2a12127 (patch)
treeb2cc041b67dd54f64c6123981bffbd0201f9620a /src/android/mod.rs
parentf68bf85a85ceb416f714bc36ff5aa5c6ae65c008 (diff)
parenta698146943bcd6df2a61bbfd56badf3018662709 (diff)
downloadglutin-ebe32bb2d803bc22c4b309acbbd48f3dc2a12127.tar.gz
glutin-ebe32bb2d803bc22c4b309acbbd48f3dc2a12127.zip
Merge pull request #180 from TyOverby/event-change
Change the way that event iterators are represented.
Diffstat (limited to 'src/android/mod.rs')
-rw-r--r--src/android/mod.rs20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/android/mod.rs b/src/android/mod.rs
index b8514f1..c548f2f 100644
--- a/src/android/mod.rs
+++ b/src/android/mod.rs
@@ -7,6 +7,8 @@ use events::ElementState::{Pressed, Released};
use events::Event::{MouseInput, MouseMoved};
use events::MouseButton::LeftMouseButton;
+use std::collections::RingBuf;
+
use BuilderAttribs;
pub struct Window {
@@ -20,8 +22,10 @@ pub struct MonitorID;
mod ffi;
-pub fn get_available_monitors() -> Vec<MonitorID> {
- vec![ MonitorID ]
+pub fn get_available_monitors() -> RingBuf <MonitorID> {
+ let rb = RingBuf::new();
+ rb.push_back(MonitorId);
+ rb
}
pub fn get_primary_monitor() -> MonitorID {
@@ -215,19 +219,19 @@ impl Window {
WindowProxy
}
- pub fn poll_events(&self) -> Vec<Event> {
- let mut events = Vec::new();
+ pub fn poll_events(&self) -> RingBuf<Event> {
+ let mut events = RingBuf::new();
loop {
match self.event_rx.try_recv() {
Ok(event) => match event {
android_glue::Event::EventDown => {
- events.push(MouseInput(Pressed, LeftMouseButton));
+ events.push_back(MouseInput(Pressed, LeftMouseButton));
},
android_glue::Event::EventUp => {
- events.push(MouseInput(Released, LeftMouseButton));
+ events.push_back(MouseInput(Released, LeftMouseButton));
},
android_glue::Event::EventMove(x, y) => {
- events.push(MouseMoved((x as int, y as int)));
+ events.push_back(MouseMoved((x as int, y as int)));
},
},
Err(_) => {
@@ -238,7 +242,7 @@ impl Window {
events
}
- pub fn wait_events(&self) -> Vec<Event> {
+ pub fn wait_events(&self) -> RingBuf<Event> {
use std::time::Duration;
use std::io::timer;
timer::sleep(Duration::milliseconds(16));