aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/htmlcanvaselement.rs
diff options
context:
space:
mode:
authorJack Moffitt <jack@metajack.im>2014-08-28 09:34:23 -0600
committerJack Moffitt <jack@metajack.im>2014-09-08 20:21:42 -0600
commitc6ab60dbfc6da7b4f800c9e40893c8b58413960c (patch)
treed1d74076cf7fa20e4f77ec7cb82cae98b67362cb /src/components/script/dom/htmlcanvaselement.rs
parentdb2f642c32fc5bed445bb6f2e45b0f6f0b4342cf (diff)
downloadservo-c6ab60dbfc6da7b4f800c9e40893c8b58413960c.tar.gz
servo-c6ab60dbfc6da7b4f800c9e40893c8b58413960c.zip
Cargoify servo
Diffstat (limited to 'src/components/script/dom/htmlcanvaselement.rs')
-rw-r--r--src/components/script/dom/htmlcanvaselement.rs160
1 files changed, 0 insertions, 160 deletions
diff --git a/src/components/script/dom/htmlcanvaselement.rs b/src/components/script/dom/htmlcanvaselement.rs
deleted file mode 100644
index 28902265610..00000000000
--- a/src/components/script/dom/htmlcanvaselement.rs
+++ /dev/null
@@ -1,160 +0,0 @@
-/* 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::codegen::Bindings::HTMLCanvasElementBinding;
-use dom::bindings::codegen::Bindings::HTMLCanvasElementBinding::HTMLCanvasElementMethods;
-use dom::bindings::codegen::InheritTypes::HTMLCanvasElementDerived;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast};
-use dom::bindings::global::Window;
-use dom::bindings::js::{JS, JSRef, Temporary, OptionalSettable};
-use dom::bindings::trace::Traceable;
-use dom::bindings::utils::{Reflectable, Reflector};
-use dom::canvasrenderingcontext2d::CanvasRenderingContext2D;
-use dom::document::Document;
-use dom::element::{Element, HTMLCanvasElementTypeId, AttributeHandlers};
-use dom::eventtarget::{EventTarget, NodeTargetTypeId};
-use dom::htmlelement::HTMLElement;
-use dom::node::{Node, ElementNodeTypeId, window_from_node};
-use dom::virtualmethods::VirtualMethods;
-
-use servo_util::atom::Atom;
-use servo_util::str::{DOMString, parse_unsigned_integer};
-
-use geom::size::Size2D;
-
-use std::cell::Cell;
-
-static DefaultWidth: u32 = 300;
-static DefaultHeight: u32 = 150;
-
-#[deriving(Encodable)]
-pub struct HTMLCanvasElement {
- pub htmlelement: HTMLElement,
- context: Traceable<Cell<Option<JS<CanvasRenderingContext2D>>>>,
- width: Traceable<Cell<u32>>,
- height: Traceable<Cell<u32>>,
-}
-
-impl HTMLCanvasElementDerived for EventTarget {
- fn is_htmlcanvaselement(&self) -> bool {
- self.type_id == NodeTargetTypeId(ElementNodeTypeId(HTMLCanvasElementTypeId))
- }
-}
-
-impl HTMLCanvasElement {
- pub fn new_inherited(localName: DOMString, document: &JSRef<Document>) -> HTMLCanvasElement {
- HTMLCanvasElement {
- htmlelement: HTMLElement::new_inherited(HTMLCanvasElementTypeId, localName, document),
- context: Traceable::new(Cell::new(None)),
- width: Traceable::new(Cell::new(DefaultWidth)),
- height: Traceable::new(Cell::new(DefaultHeight)),
- }
- }
-
- pub fn new(localName: DOMString, document: &JSRef<Document>) -> Temporary<HTMLCanvasElement> {
- let element = HTMLCanvasElement::new_inherited(localName, document);
- Node::reflect_node(box element, document, HTMLCanvasElementBinding::Wrap)
- }
-}
-
-impl<'a> HTMLCanvasElementMethods for JSRef<'a, HTMLCanvasElement> {
- fn Width(&self) -> u32 {
- self.width.get()
- }
-
- fn SetWidth(&self, width: u32) {
- let elem: &JSRef<Element> = ElementCast::from_ref(self);
- elem.set_uint_attribute("width", width)
- }
-
- fn Height(&self) -> u32 {
- self.height.get()
- }
-
- fn SetHeight(&self, height: u32) {
- let elem: &JSRef<Element> = ElementCast::from_ref(self);
- elem.set_uint_attribute("height", height)
- }
-
- fn GetContext(&self, id: DOMString) -> Option<Temporary<CanvasRenderingContext2D>> {
- if id.as_slice() != "2d" {
- return None;
- }
-
- if self.context.get().is_none() {
- let window = window_from_node(self).root();
- let (w, h) = (self.width.get() as i32, self.height.get() as i32);
- let context = CanvasRenderingContext2D::new(&Window(*window), self, Size2D(w, h));
- self.context.assign(Some(context));
- }
- self.context.get().map(|context| Temporary::new(context))
- }
-}
-
-impl<'a> VirtualMethods for JSRef<'a, HTMLCanvasElement> {
- fn super_type<'a>(&'a self) -> Option<&'a VirtualMethods> {
- let element: &JSRef<HTMLElement> = HTMLElementCast::from_ref(self);
- Some(element as &VirtualMethods)
- }
-
- fn before_remove_attr(&self, name: &Atom, value: DOMString) {
- match self.super_type() {
- Some(ref s) => s.before_remove_attr(name, value.clone()),
- _ => (),
- }
-
- let recreate = match name.as_slice() {
- "width" => {
- self.width.set(DefaultWidth);
- true
- }
- "height" => {
- self.height.set(DefaultHeight);
- true
- }
- _ => false,
- };
-
- if recreate {
- let (w, h) = (self.width.get() as i32, self.height.get() as i32);
- match self.context.get() {
- Some(ref context) => context.root().recreate(Size2D(w, h)),
- None => ()
- }
- }
- }
-
- fn after_set_attr(&self, name: &Atom, value: DOMString) {
- match self.super_type() {
- Some(ref s) => s.after_set_attr(name, value.clone()),
- _ => (),
- }
-
- let recreate = match name.as_slice() {
- "width" => {
- self.width.set(parse_unsigned_integer(value.as_slice().chars()).unwrap_or(DefaultWidth));
- true
- }
- "height" => {
- self.height.set(parse_unsigned_integer(value.as_slice().chars()).unwrap_or(DefaultHeight));
- true
- }
- _ => false,
- };
-
- if recreate {
- let (w, h) = (self.width.get() as i32, self.height.get() as i32);
- match self.context.get() {
- Some(ref context) => context.root().recreate(Size2D(w, h)),
- None => ()
- }
- }
- }
-}
-
-impl Reflectable for HTMLCanvasElement {
- fn reflector<'a>(&'a self) -> &'a Reflector {
- self.htmlelement.reflector()
- }
-}