32 lines
557 B
JavaScript
32 lines
557 B
JavaScript
function Buttons(session) {
|
|
var mapping;
|
|
var mappingsStack = [];
|
|
|
|
document.addEventListener('keydown', function(event) {
|
|
var button = session.getOptions().layout[event.key];
|
|
if(button != undefined && mapping[button] != undefined) {
|
|
mapping[button]();
|
|
}
|
|
});
|
|
|
|
return {
|
|
map: map,
|
|
pop: pop,
|
|
push: push
|
|
};
|
|
|
|
function map(newMapping) {
|
|
mapping = newMapping;
|
|
}
|
|
|
|
function pop() {
|
|
mappingsStack.pop();
|
|
map(mappingsStack[mappingsStack.length-1]);
|
|
}
|
|
|
|
function push(newMapping) {
|
|
mappingsStack.push(newMapping);
|
|
map(newMapping);
|
|
}
|
|
}
|