OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of $LIBRARYNAME; | 5 part of $LIBRARYNAME; |
6 | 6 |
7 /** | 7 /** |
8 * Base class that supports listening for and dispatching browser events. | 8 * Base class that supports listening for and dispatching browser events. |
9 * | 9 * |
10 * Normally events are accessed via the Stream getter: | 10 * Normally events are accessed via the Stream getter: |
11 * | 11 * |
12 * element.onMouseOver.listen((e) => print('Mouse over!')); | 12 * element.onMouseOver.listen((e) => print('Mouse over!')); |
13 * | 13 * |
14 * To access bubbling events which are declared on one element, but may bubble | 14 * To access bubbling events which are declared on one element, but may bubble |
15 * up to another element type (common for MediaElement events): | 15 * up to another element type (common for MediaElement events): |
16 * | 16 * |
17 * MediaElement.pauseEvent.forTarget(document.body).listen(...); | 17 * MediaElement.pauseEvent.forTarget(document.body).listen(...); |
18 * | 18 * |
19 * To useCapture on events: | 19 * To useCapture on events: |
20 * | 20 * |
21 * Element.keyDownEvent.forTarget(element, useCapture: true).listen(...); | 21 * Element.keyDownEvent.forTarget(element, useCapture: true).listen(...); |
22 * | 22 * |
23 * Custom events can be declared as: | 23 * Custom events can be declared as: |
24 * | 24 * |
25 * class DataGenerator { | 25 * class DataGenerator { |
26 * static EventStreamProvider<Event> dataEvent = | 26 * static EventStreamProvider<Event> dataEvent = |
27 * new EventStreamProvider('data'); | 27 * new EventStreamProvider('data'); |
28 * } | 28 * } |
29 * | 29 * |
30 * Then listeners should access the event with: | 30 * Then listeners should access the event with: |
31 * | 31 * |
32 * DataGenerator.dataEvent.forTarget(element).listen(...); | 32 * DataGenerator.dataEvent.forTarget(element).listen(...); |
33 * | 33 * |
34 * Custom events can also be accessed as: | 34 * Custom events can also be accessed as: |
35 * | 35 * |
36 * element.on['some_event'].listen(...); | 36 * element.on['some_event'].listen(...); |
37 * | 37 * |
38 * This approach is generally discouraged as it loses the event typing and | 38 * This approach is generally discouraged as it loses the event typing and |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 // Custom element created callback. | 95 // Custom element created callback. |
96 EventTarget._created(); | 96 EventTarget._created(); |
97 | 97 |
98 /** | 98 /** |
99 * This is an ease-of-use accessor for event streams which should only be | 99 * This is an ease-of-use accessor for event streams which should only be |
100 * used when an explicit accessor is not available. | 100 * used when an explicit accessor is not available. |
101 */ | 101 */ |
102 Events get on => new Events(this); | 102 Events get on => new Events(this); |
103 $!MEMBERS | 103 $!MEMBERS |
104 } | 104 } |
OLD | NEW |