aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/window.rs
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2013-11-01 10:19:45 -0400
committerJosh Matthews <josh@joshmatthews.net>2013-11-05 12:58:28 -0500
commit7ecf5abbbdf0d75a1e794cde6ac71fe982468414 (patch)
treecd228a9204ecc7b8d4ae52f66638a19e63f08c29 /src/components/script/dom/window.rs
parent06b1db8818c09201989b017434eef105f4d99e51 (diff)
downloadservo-7ecf5abbbdf0d75a1e794cde6ac71fe982468414.tar.gz
servo-7ecf5abbbdf0d75a1e794cde6ac71fe982468414.zip
Generate code for handling callbacks. Implement add/removeEventListener and hacky dispatchEvent proof-of-concept.
Diffstat (limited to 'src/components/script/dom/window.rs')
-rw-r--r--src/components/script/dom/window.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/components/script/dom/window.rs b/src/components/script/dom/window.rs
index 0a5bb19d3ec..46565b7fb09 100644
--- a/src/components/script/dom/window.rs
+++ b/src/components/script/dom/window.rs
@@ -6,6 +6,7 @@ use dom::bindings::codegen::WindowBinding;
use dom::bindings::utils::{Reflectable, Reflector};
use dom::bindings::utils::{DOMString, null_str_as_empty, Traceable};
use dom::document::AbstractDocument;
+use dom::eventtarget::EventTarget;
use dom::node::{AbstractNode, ScriptView};
use dom::navigator::Navigator;
@@ -37,10 +38,10 @@ pub enum TimerControlMsg {
}
pub struct Window {
+ eventtarget: EventTarget,
page: @mut Page,
script_chan: ScriptChan,
compositor: @ScriptListener,
- reflector_: Reflector,
timer_chan: SharedChan<TimerControlMsg>,
navigator: Option<@mut Navigator>,
image_cache_task: ImageCacheTask,
@@ -140,11 +141,11 @@ impl Window {
impl Reflectable for Window {
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 {
@@ -204,10 +205,10 @@ impl Window {
image_cache_task: ImageCacheTask)
-> @mut Window {
let win = @mut Window {
+ eventtarget: EventTarget::new(),
page: page,
script_chan: script_chan.clone(),
compositor: compositor,
- reflector_: Reflector::new(),
timer_chan: {
let (timer_port, timer_chan) = comm::stream::<TimerControlMsg>();
let id = page.id.clone();