32 lines
525 B
JavaScript
32 lines
525 B
JavaScript
|
function Buttons(session) {
|
||
|
var mapping;
|
||
|
var mappingsStack = [];
|
||
|
var layout = session.getLayout();
|
||
|
|
||
|
document.addEventListener('keydown', function(event) {
|
||
|
var button = 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();
|
||
|
}
|
||
|
|
||
|
function push(newMapping) {
|
||
|
mappingsStack.push(newMapping);
|
||
|
map(newMapping);
|
||
|
}
|
||
|
}
|