blob: 3ba329cd07a15201cfebd1c9da1e7c6b0e3825b9 [file] [log] [blame]
// 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.
@DomName('KeyboardEvent')
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]) {
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
}