| // 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. |
| |
| |
| $(ANNOTATIONS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC { |
| |
| factory $CLASSNAME(String type, |
| {Window view, bool canBubble: true, bool cancelable: true, |
| String keyIdentifier: "", int keyLocation: 1, bool ctrlKey: false, |
| bool altKey: false, bool shiftKey: false, bool metaKey: false, |
| bool altGraphKey: false}) { |
| if (view == null) { |
| view = window; |
| } |
| final e = document.$dom_createEvent("KeyboardEvent"); |
| e.$dom_initKeyboardEvent(type, canBubble, cancelable, view, keyIdentifier, |
| keyLocation, ctrlKey, altKey, shiftKey, metaKey, altGraphKey); |
| return e; |
| } |
| |
| @DomName('KeyboardEvent.initKeyboardEvent') |
| void $dom_initKeyboardEvent(String type, bool canBubble, bool cancelable, |
| Window view, String keyIdentifier, int keyLocation, bool ctrlKey, |
| bool altKey, bool shiftKey, bool metaKey, bool altGraphKey) { |
| if (JS('bool', 'typeof(#.initKeyEvent) == "function"', this)) { |
| // initKeyEvent is only in Firefox (instead of initKeyboardEvent). It has |
| // a slightly different signature, and allows you to specify keyCode and |
| // charCode as the last two arguments, but we just set them as the default |
| // since they can't be specified in other browsers. |
| JS('void', '#.initKeyEvent(#, #, #, #, #, #, #, #, 0, 0)', this, |
| type, canBubble, cancelable, view, |
| ctrlKey, altKey, shiftKey, metaKey); |
| } else { |
| // initKeyboardEvent is for all other browsers. |
| JS('void', '#.initKeyboardEvent(#, #, #, #, #, #, #, #, #, #, #)', this, |
| type, canBubble, cancelable, view, keyIdentifier, keyLocation, |
| ctrlKey, altKey, shiftKey, metaKey, altGraphKey); |
| } |
| } |
| |
| @DomName('KeyboardEvent.keyCode') |
| int get keyCode => $dom_keyCode; |
| |
| @DomName('KeyboardEvent.charCode') |
| int get charCode => $dom_charCode; |
| $!MEMBERS |
| } |