| // 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. |
| |
| part of html; |
| |
| 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 |
| } |