Chromium Code Reviews| Index: lib/dom/templates/html/dart2js/impl_MouseEvent.darttemplate |
| diff --git a/lib/dom/templates/html/dart2js/impl_MouseEvent.darttemplate b/lib/dom/templates/html/dart2js/impl_MouseEvent.darttemplate |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c414fcd5c4790380baaa3d57b7e66619a479f6b2 |
| --- /dev/null |
| +++ b/lib/dom/templates/html/dart2js/impl_MouseEvent.darttemplate |
| @@ -0,0 +1,38 @@ |
| +// 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. |
| + |
| +class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC { |
| +$!MEMBERS |
| + |
| + int get offsetX() { |
| + if (JS('bool', '!!this.offsetX')) { |
| + return this._offsetX; |
| + } else { |
| + // Firefox does not support offsetX. |
| + var target = this.target; |
| + if (!(target is Element)) { |
| + throw const UnsupportedOperationException( |
| + 'offsetX is only supported on elements'); |
| + } |
| + return this.clientX - this.target.$dom_getBoundingClientRect().left; |
|
Jacob
2012/08/27 19:18:51
perhaps cache this value as an expando? would be o
blois
2012/08/27 20:12:16
Caching only really helps if it's set in the const
|
| + } |
| + } |
| + |
| + int get offsetY() { |
| + if (JS('bool', '!!this.offsetY')) { |
| + return this._offsetY; |
| + } else { |
| + // Firefox does not support offsetY. |
| + var target = this.target; |
| + if (!(target is Element)) { |
| + throw const UnsupportedOperationException( |
| + 'offsetX is only supported on elements'); |
| + } |
| + return this.clientY - this.target.$dom_getBoundingClientRect().top; |
| + } |
| + } |
| + |
| + int get _offsetX() native 'return this.offsetX'; |
| + int get _offsetY() native 'return this.offsetY'; |
| +} |