63a57a76ce
This reverts commit f8ff12008e.
This CL is a revert of the initial revert and should be landed once
Flutter changes have been merged to handle the changes here.
Change-Id: I300a5efd776bf2a596743971f4e15ad62da77f5a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153368
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
65 lines
2.3 KiB
Plaintext
65 lines
2.3 KiB
Plaintext
// 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 $CLASSNAME(String type,
|
|
{Window$NULLABLE view, 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$NULLABLE relatedTarget}) {
|
|
|
|
if (view == null) {
|
|
view = window;
|
|
}
|
|
MouseEvent event = document._createEvent('MouseEvent') $#NULLSAFECAST(as MouseEvent);
|
|
event._initMouseEvent(type, canBubble, cancelable, view, detail,
|
|
screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey,
|
|
button, relatedTarget);
|
|
return event;
|
|
}
|
|
$!MEMBERS
|
|
|
|
Point get client => new Point(_clientX, _clientY);
|
|
|
|
@SupportedBrowser(SupportedBrowser.CHROME)
|
|
@SupportedBrowser(SupportedBrowser.FIREFOX)
|
|
Point get movement => new Point(_movementX$NULLASSERT, _movementY$NULLASSERT);
|
|
|
|
/**
|
|
* The coordinates of the mouse pointer in target node coordinates.
|
|
*
|
|
* This value may vary between platforms if the target node moves
|
|
* after the event has fired or if the element has CSS transforms affecting
|
|
* it.
|
|
*/
|
|
Point get offset {
|
|
if (JS('bool', '!!#.offsetX', this)) {
|
|
var x = JS('int', '#.offsetX', this);
|
|
var y = JS('int', '#.offsetY', this);
|
|
return new Point(x $#NULLSAFECAST(as num), y $#NULLSAFECAST(as num));
|
|
} else {
|
|
// Firefox does not support offsetX.
|
|
if (!(this.target is Element)) {
|
|
throw new UnsupportedError(
|
|
'offsetX is only supported on elements');
|
|
}
|
|
Element target = this.target $#NULLSAFECAST(as Element);
|
|
var point = (this.client - target.getBoundingClientRect().topLeft);
|
|
return new Point(point.x.toInt(), point.y.toInt());
|
|
}
|
|
}
|
|
|
|
Point get screen => new Point(_screenX, _screenY);
|
|
|
|
Point get layer => new Point(_layerX$NULLASSERT, _layerY$NULLASSERT);
|
|
|
|
Point get page => new Point(_pageX$NULLASSERT, _pageY$NULLASSERT);
|
|
|
|
DataTransfer get dataTransfer => JS('DataTransfer', "#['dataTransfer']", this);
|
|
|
|
}
|