aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/gamepadlist.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/gamepadlist.rs')
-rw-r--r--components/script/dom/gamepadlist.rs49
1 files changed, 28 insertions, 21 deletions
diff --git a/components/script/dom/gamepadlist.rs b/components/script/dom/gamepadlist.rs
index dd5bdd757d9..ed551df4c35 100644
--- a/components/script/dom/gamepadlist.rs
+++ b/components/script/dom/gamepadlist.rs
@@ -1,41 +1,45 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-use dom::bindings::cell::DOMRefCell;
-use dom::bindings::codegen::Bindings::GamepadListBinding;
-use dom::bindings::codegen::Bindings::GamepadListBinding::GamepadListMethods;
-use dom::bindings::js::{JS, Root};
-use dom::bindings::reflector::{Reflector, reflect_dom_object};
-use dom::gamepad::Gamepad;
-use dom::globalscope::GlobalScope;
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+use crate::dom::bindings::cell::DomRefCell;
+use crate::dom::bindings::codegen::Bindings::GamepadListBinding::GamepadListMethods;
+use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
+use crate::dom::bindings::root::{Dom, DomRoot};
+use crate::dom::gamepad::Gamepad;
+use crate::dom::globalscope::GlobalScope;
use dom_struct::dom_struct;
// https://www.w3.org/TR/gamepad/
#[dom_struct]
pub struct GamepadList {
reflector_: Reflector,
- list: DOMRefCell<Vec<JS<Gamepad>>>
+ list: DomRefCell<Vec<Dom<Gamepad>>>,
}
+// TODO: support gamepad discovery
+#[allow(dead_code)]
impl GamepadList {
fn new_inherited(list: &[&Gamepad]) -> GamepadList {
GamepadList {
reflector_: Reflector::new(),
- list: DOMRefCell::new(list.iter().map(|g| JS::from_ref(&**g)).collect())
+ list: DomRefCell::new(list.iter().map(|g| Dom::from_ref(&**g)).collect()),
}
}
- pub fn new(global: &GlobalScope, list: &[&Gamepad]) -> Root<GamepadList> {
- reflect_dom_object(box GamepadList::new_inherited(list),
- global,
- GamepadListBinding::Wrap)
+ pub fn new(global: &GlobalScope, list: &[&Gamepad]) -> DomRoot<GamepadList> {
+ reflect_dom_object(Box::new(GamepadList::new_inherited(list)), global)
}
- pub fn add_if_not_exists(&self, gamepads: &[Root<Gamepad>]) {
+ pub fn add_if_not_exists(&self, gamepads: &[DomRoot<Gamepad>]) {
for gamepad in gamepads {
- if !self.list.borrow().iter().any(|g| g.gamepad_id() == gamepad.gamepad_id()) {
- self.list.borrow_mut().push(JS::from_ref(&*gamepad));
+ if !self
+ .list
+ .borrow()
+ .iter()
+ .any(|g| g.gamepad_id() == gamepad.gamepad_id())
+ {
+ self.list.borrow_mut().push(Dom::from_ref(&*gamepad));
// Ensure that the gamepad has the correct index
gamepad.update_index(self.list.borrow().len() as i32 - 1);
}
@@ -50,12 +54,15 @@ impl GamepadListMethods for GamepadList {
}
// https://w3c.github.io/gamepad/#dom-navigator-getgamepads
- fn Item(&self, index: u32) -> Option<Root<Gamepad>> {
- self.list.borrow().get(index as usize).map(|gamepad| Root::from_ref(&**gamepad))
+ fn Item(&self, index: u32) -> Option<DomRoot<Gamepad>> {
+ self.list
+ .borrow()
+ .get(index as usize)
+ .map(|gamepad| DomRoot::from_ref(&**gamepad))
}
// https://w3c.github.io/gamepad/#dom-navigator-getgamepads
- fn IndexedGetter(&self, index: u32) -> Option<Root<Gamepad>> {
+ fn IndexedGetter(&self, index: u32) -> Option<DomRoot<Gamepad>> {
self.Item(index)
}
}