blob: d1fad29508984e97d408e1199689e643b67b413d [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2014 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<link rel="import" href="/base/guid.html">
<script>
'use strict';
tr.exportTo('tr.ui.b', function() {
function HotKey(dict) {
if (dict.eventType === undefined)
throw new Error('eventType must be given');
if (dict.keyCode === undefined && dict.keyCodes === undefined)
throw new Error('keyCode or keyCodes must be given');
if (dict.keyCode !== undefined && dict.keyCodes !== undefined)
throw new Error('Only keyCode or keyCodes can be given');
if (dict.callback === undefined)
throw new Error('callback must be given');
this.eventType_ = dict.eventType;
this.keyCodes_ = [];
if (dict.keyCode)
this.pushKeyCode_(dict.keyCode);
else if (dict.keyCodes) {
dict.keyCodes.forEach(this.pushKeyCode_, this);
}
this.useCapture_ = !!dict.useCapture;
this.callback_ = dict.callback;
this.thisArg_ = dict.thisArg !== undefined ? dict.thisArg : undefined;
this.helpText_ = dict.helpText !== undefined ? dict.helpText : undefined;
}
HotKey.prototype = {
get eventType() {
return this.eventType_;
},
get keyCodes() {
return this.keyCodes_;
},
get helpText() {
return this.helpText_;
},
call: function(e) {
this.callback_.call(this.thisArg_, e);
},
pushKeyCode_: function(keyCode) {
this.keyCodes_.push(keyCode);
}
};
return {
HotKey: HotKey
};
});
</script>