client/src/buttons.js

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);
}
}