diff options
author | Josh Matthews <josh@joshmatthews.net> | 2013-11-01 10:19:45 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2013-11-05 12:58:28 -0500 |
commit | 7ecf5abbbdf0d75a1e794cde6ac71fe982468414 (patch) | |
tree | cd228a9204ecc7b8d4ae52f66638a19e63f08c29 /src/components/script/dom/window.rs | |
parent | 06b1db8818c09201989b017434eef105f4d99e51 (diff) | |
download | servo-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.rs | 9 |
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(); |