| // 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 $LIBRARYNAME; |
| |
| $(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS { |
| |
| factory WheelEvent(String type, |
| {Window view, num deltaX: 0, num deltaY: 0, num deltaZ: 0, |
| int deltaMode: 0, |
| int detail: 0, int screenX: 0, int screenY: 0, int clientX: 0, |
| int clientY: 0, int button: 0, bool canBubble: true, |
| bool cancelable: true, bool ctrlKey: false, bool altKey: false, |
| bool shiftKey: false, bool metaKey: false, EventTarget relatedTarget}) { |
| |
| var options = { |
| 'view': view, |
| 'deltaMode': deltaMode, |
| 'deltaX': deltaX, |
| 'deltaY': deltaY, |
| 'deltaZ': deltaZ, |
| 'detail': detail, |
| 'screenX': screenX, |
| 'screenY': screenY, |
| 'clientX': clientX, |
| 'clientY': clientY, |
| 'button': button, |
| 'bubbles': canBubble, |
| 'cancelable': cancelable, |
| 'ctrlKey': ctrlKey, |
| 'altKey': altKey, |
| 'shiftKey': shiftKey, |
| 'metaKey': metaKey, |
| 'relatedTarget': relatedTarget, |
| }; |
| |
| if (view == null) { |
| view = window; |
| } |
| |
| return JS('WheelEvent', 'new WheelEvent(#, #)', |
| type, convertDartToNative_Dictionary(options)); |
| |
| } |
| |
| $!MEMBERS |
| |
| /** |
| * The amount that is expected to scroll vertically, in units determined by |
| * [deltaMode]. |
| * |
| * See also: |
| * |
| * * [WheelEvent.deltaY](http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-WheelEvent-deltaY) from the W3C. |
| */ |
| num get deltaY { |
| if (JS('bool', '#.deltaY !== undefined', this)) { |
| // W3C WheelEvent |
| return this._deltaY; |
| } |
| throw new UnsupportedError( |
| 'deltaY is not supported'); |
| } |
| |
| /** |
| * The amount that is expected to scroll horizontally, in units determined by |
| * [deltaMode]. |
| * |
| * See also: |
| * |
| * * [WheelEvent.deltaX](http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-WheelEvent-deltaX) from the W3C. |
| */ |
| num get deltaX { |
| if (JS('bool', '#.deltaX !== undefined', this)) { |
| // W3C WheelEvent |
| return this._deltaX; |
| } |
| throw new UnsupportedError( |
| 'deltaX is not supported'); |
| } |
| |
| int get deltaMode { |
| if (JS('bool', '!!(#.deltaMode)', this)) { |
| return JS('int', '#.deltaMode', this); |
| } |
| // If not available then we're poly-filling and doing pixel scroll. |
| return 0; |
| } |
| |
| num get _wheelDelta => JS('num', '#.wheelDelta', this); |
| num get _wheelDeltaX => JS('num', '#.wheelDeltaX', this); |
| num get _detail => JS('num', '#.detail', this); |
| |
| bool get _hasInitMouseScrollEvent => |
| JS('bool', '!!(#.initMouseScrollEvent)', this); |
| |
| @JSName('initMouseScrollEvent') |
| void _initMouseScrollEvent( |
| String type, |
| bool canBubble, |
| bool cancelable, |
| Window view, |
| int detail, |
| int screenX, |
| int screenY, |
| int clientX, |
| int clientY, |
| bool ctrlKey, |
| bool altKey, |
| bool shiftKey, |
| bool metaKey, |
| int button, |
| EventTarget relatedTarget, |
| int axis) native; |
| |
| bool get _hasInitWheelEvent => |
| JS('bool', '!!(#.initWheelEvent)', this); |
| @JSName('initWheelEvent') |
| void _initWheelEvent( |
| String eventType, |
| bool canBubble, |
| bool cancelable, |
| Window view, |
| int detail, |
| int screenX, |
| int screenY, |
| int clientX, |
| int clientY, |
| int button, |
| EventTarget relatedTarget, |
| String modifiersList, |
| int deltaX, |
| int deltaY, |
| int deltaZ, |
| int deltaMode) native; |
| |
| } |