Skip to content

Commit 3bfae6c

Browse files
authored
Add mouse*, drag* and touch* events to Window and Document events stream helper extensions (#485)
* add mouse and drag events to Window and Document event streams helper * add touch events to window and document event streams helpers * fix format * add changelog entry * do not add legacy events as per code review
1 parent b037654 commit 3bfae6c

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed

web/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
- Fixed generation of variadic arguments to generate 4 optional parameters.
77
- Removed all `@Deprecated` members.
88
- Added `URL.toDart` and `Uri.toJS` extension methods.
9+
- Added missing `Document` and `Window` pointer event getters: `onDrag*`,
10+
`onTouch*`, `onMouse*`.
911

1012
## 1.1.1
1113

web/lib/src/helpers/events/events.dart

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,8 +277,109 @@ extension WindowEventGetters on Window {
277277
Stream<PopStateEvent> get onPopState =>
278278
EventStreamProviders.popStateEvent.forTarget(this);
279279

280+
Stream<TouchEvent> get onTouchCancel =>
281+
EventStreamProviders.touchCancelEvent.forTarget(this);
282+
283+
Stream<TouchEvent> get onTouchEnd =>
284+
EventStreamProviders.touchEndEvent.forTarget(this);
285+
286+
Stream<TouchEvent> get onTouchMove =>
287+
EventStreamProviders.touchMoveEvent.forTarget(this);
288+
289+
Stream<TouchEvent> get onTouchStart =>
290+
EventStreamProviders.touchStartEvent.forTarget(this);
291+
292+
Stream<MouseEvent> get onMouseDown =>
293+
EventStreamProviders.mouseDownEvent.forTarget(this);
294+
295+
Stream<MouseEvent> get onMouseEnter =>
296+
EventStreamProviders.mouseEnterEvent.forTarget(this);
297+
298+
Stream<MouseEvent> get onMouseLeave =>
299+
EventStreamProviders.mouseLeaveEvent.forTarget(this);
300+
301+
Stream<MouseEvent> get onMouseMove =>
302+
EventStreamProviders.mouseMoveEvent.forTarget(this);
303+
304+
Stream<MouseEvent> get onMouseOut =>
305+
EventStreamProviders.mouseOutEvent.forTarget(this);
306+
307+
Stream<MouseEvent> get onMouseOver =>
308+
EventStreamProviders.mouseOverEvent.forTarget(this);
309+
310+
Stream<MouseEvent> get onMouseUp =>
311+
EventStreamProviders.mouseUpEvent.forTarget(this);
312+
313+
Stream<MouseEvent> get onDrag =>
314+
EventStreamProviders.dragEvent.forTarget(this);
315+
316+
Stream<MouseEvent> get onDragEnd =>
317+
EventStreamProviders.dragEndEvent.forTarget(this);
318+
319+
Stream<MouseEvent> get onDragEnter =>
320+
EventStreamProviders.dragEnterEvent.forTarget(this);
321+
322+
Stream<MouseEvent> get onDragLeave =>
323+
EventStreamProviders.dragLeaveEvent.forTarget(this);
324+
325+
Stream<MouseEvent> get onDragOver =>
326+
EventStreamProviders.dragOverEvent.forTarget(this);
327+
328+
Stream<MouseEvent> get onDragStart =>
329+
EventStreamProviders.dragStartEvent.forTarget(this);
330+
}
331+
332+
extension DocumentEventGetters on Document {
333+
Stream<TouchEvent> get onTouchCancel =>
334+
EventStreamProviders.touchCancelEvent.forTarget(this);
335+
336+
Stream<TouchEvent> get onTouchEnd =>
337+
EventStreamProviders.touchEndEvent.forTarget(this);
338+
280339
Stream<TouchEvent> get onTouchMove =>
281340
EventStreamProviders.touchMoveEvent.forTarget(this);
341+
342+
Stream<TouchEvent> get onTouchStart =>
343+
EventStreamProviders.touchStartEvent.forTarget(this);
344+
345+
Stream<MouseEvent> get onMouseDown =>
346+
EventStreamProviders.mouseDownEvent.forTarget(this);
347+
348+
Stream<MouseEvent> get onMouseEnter =>
349+
EventStreamProviders.mouseEnterEvent.forTarget(this);
350+
351+
Stream<MouseEvent> get onMouseLeave =>
352+
EventStreamProviders.mouseLeaveEvent.forTarget(this);
353+
354+
Stream<MouseEvent> get onMouseMove =>
355+
EventStreamProviders.mouseMoveEvent.forTarget(this);
356+
357+
Stream<MouseEvent> get onMouseOut =>
358+
EventStreamProviders.mouseOutEvent.forTarget(this);
359+
360+
Stream<MouseEvent> get onMouseOver =>
361+
EventStreamProviders.mouseOverEvent.forTarget(this);
362+
363+
Stream<MouseEvent> get onMouseUp =>
364+
EventStreamProviders.mouseUpEvent.forTarget(this);
365+
366+
Stream<MouseEvent> get onDrag =>
367+
EventStreamProviders.dragEvent.forTarget(this);
368+
369+
Stream<MouseEvent> get onDragEnd =>
370+
EventStreamProviders.dragEndEvent.forTarget(this);
371+
372+
Stream<MouseEvent> get onDragEnter =>
373+
EventStreamProviders.dragEnterEvent.forTarget(this);
374+
375+
Stream<MouseEvent> get onDragLeave =>
376+
EventStreamProviders.dragLeaveEvent.forTarget(this);
377+
378+
Stream<MouseEvent> get onDragOver =>
379+
EventStreamProviders.dragOverEvent.forTarget(this);
380+
381+
Stream<MouseEvent> get onDragStart =>
382+
EventStreamProviders.dragStartEvent.forTarget(this);
282383
}
283384

284385
extension ElementCustomEvents on Element {

0 commit comments

Comments
 (0)