aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/clientrectlist.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/dom/clientrectlist.rs')
-rw-r--r--src/components/script/dom/clientrectlist.rs39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/components/script/dom/clientrectlist.rs b/src/components/script/dom/clientrectlist.rs
new file mode 100644
index 00000000000..ff48e6623be
--- /dev/null
+++ b/src/components/script/dom/clientrectlist.rs
@@ -0,0 +1,39 @@
+/* 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::clientrect::ClientRect;
+use dom::bindings::utils::WrapperCache;
+
+pub struct ClientRectList {
+ wrapper: WrapperCache,
+ rects: ~[@mut ClientRect]
+}
+
+pub impl ClientRectList {
+ fn new(rects: ~[@mut ClientRect]) -> @mut ClientRectList {
+ let list = @mut ClientRectList {
+ wrapper: WrapperCache::new(),
+ rects: rects
+ };
+ list.init_wrapper();
+ list
+ }
+
+ fn Length(&self) -> u32 {
+ self.rects.len() as u32
+ }
+
+ fn Item(&self, index: u32) -> Option<@mut ClientRect> {
+ if index < self.rects.len() as u32 {
+ Some(self.rects[index])
+ } else {
+ None
+ }
+ }
+
+ fn IndexedGetter(&self, index: u32, found: &mut bool) -> Option<@mut ClientRect> {
+ *found = index < self.rects.len() as u32;
+ self.Item(index)
+ }
+}