Generate code for handling callbacks. Implement add/removeEventListener and hacky dispatchEvent proof-of-concept.

This commit is contained in:
Josh Matthews 2013-11-01 10:19:45 -04:00
parent 06b1db8818
commit 7ecf5abbbd
18 changed files with 491 additions and 331 deletions

View file

@ -12,6 +12,7 @@ use dom::document::{AbstractDocument, DocumentTypeId};
use dom::documenttype::DocumentType;
use dom::element::{Element, ElementTypeId, HTMLImageElementTypeId, HTMLIframeElementTypeId};
use dom::element::{HTMLStyleElementTypeId};
use dom::eventtarget::EventTarget;
use dom::nodelist::{NodeList};
use dom::htmlimageelement::HTMLImageElement;
use dom::htmliframeelement::HTMLIFrameElement;
@ -63,7 +64,7 @@ pub struct AbstractNodeChildrenIterator<View> {
/// `LayoutData`.
pub struct Node<View> {
/// The JavaScript reflector for this node.
reflector_: Reflector,
eventtarget: EventTarget,
/// The type of node that this is.
type_id: NodeTypeId,
@ -521,7 +522,7 @@ impl Node<ScriptView> {
fn new_(type_id: NodeTypeId, doc: Option<AbstractDocument>) -> Node<ScriptView> {
Node {
reflector_: Reflector::new(),
eventtarget: EventTarget::new(),
type_id: type_id,
abstract: None,
@ -961,11 +962,11 @@ impl Node<ScriptView> {
impl Reflectable for Node<ScriptView> {
fn reflector<'a>(&'a self) -> &'a Reflector {
&self.reflector_
self.eventtarget.reflector()
}
fn mut_reflector<'a>(&'a mut self) -> &'a mut Reflector {
&mut self.reflector_
self.eventtarget.mut_reflector()
}
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {