mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Generate code for handling callbacks. Implement add/removeEventListener and hacky dispatchEvent proof-of-concept.
This commit is contained in:
parent
06b1db8818
commit
7ecf5abbbd
18 changed files with 491 additions and 331 deletions
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue