aboutsummaryrefslogtreecommitdiffstats
path: root/src/android/mod.rs
diff options
context:
space:
mode:
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));