blob: cc89779fe842d1839b33528f1e0b16a76520d297 [file] [log] [blame]
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
class Events {
/* Raw event target. */
final EventTarget _ptr;
Events(this._ptr);
EventListenerList operator [](String type) {
return new EventListenerList(_ptr, type);
}
}
class EventListenerList {
final EventTarget _ptr;
final String _type;
EventListenerList(this._ptr, this._type);
// TODO(jacobr): implement equals.
EventListenerList add(EventListener listener,
[bool useCapture = false]) {
_add(listener, useCapture);
return this;
}
EventListenerList remove(EventListener listener,
[bool useCapture = false]) {
_remove(listener, useCapture);
return this;
}
bool dispatch(Event evt) {
return _ptr.$dom_dispatchEvent(evt);
}
void _add(EventListener listener, bool useCapture) {
_ptr.$dom_addEventListener(_type, listener, useCapture);
}
void _remove(EventListener listener, bool useCapture) {
_ptr.$dom_removeEventListener(_type, listener, useCapture);
}
}
class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
/** @domName EventTarget.addEventListener, EventTarget.removeEventListener, EventTarget.dispatchEvent */
Events get on => new Events(this);
$!MEMBERS
}