-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbindings.js
More file actions
35 lines (34 loc) · 884 Bytes
/
bindings.js
File metadata and controls
35 lines (34 loc) · 884 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function Binding(keys, action) {
this.keys = keys;
this.action = action;
}
Binding.prototype={
test: function(key) {
"use strict";
for (var i = 0; i < this.keys.length; ++i) {
if (this.keys[i] === key) {
return true;
}
}
return false;
}
};
var bindings = {
values: [
new Binding([45], () => area.add(primer)), // <ins>
new Binding([34, 39], () => area.markNext()), // <page down> or <right arrow>
new Binding([33, 37], () => area.markPrevious()) // <page up> or <left arrow>
],
handle: function(event) {
"use strict";
var key = event.keyCode, i;
for (i = 0; i < bindings.values.length; ++i) {
if (bindings.values[i].test(key)) {
event.preventDefault();
event.stopPropagation();
bindings.values[i].action();
return;
}
}
}
};