nightTab/js/keyboard.js

87 lines
2.1 KiB
JavaScript

var keyboard = (function() {
var _bind = function() {
window.addEventListener("keydown", function(event) {
// esc
if (event.keyCode == 27) {
if (state.get().edge) {
edge.destroy();
} else if (state.get().menu) {
menu.close();
shade.destroy();
} else if (state.get().autoSuggest) {
autoSuggest.destroy();
} else if (state.get().modal) {
modal.destroy();
shade.destroy();
} else if (state.get().link.edit) {
helper.setObject({
object: state.get(),
path: "link.edit",
newValue: false
});
control.update();
control.render();
};
data.save();
};
// ctrl+alt+a
if (event.ctrlKey && event.altKey && event.keyCode == 65) {
if (state.get().link.show) {
menu.close();
link.add();
};
};
// ctrl+alt+d
if (event.ctrlKey && event.altKey && event.keyCode == 68) {
theme.toggle();
control.render();
control.update();
data.save();
};
// ctrl+alt+m
if (event.ctrlKey && event.altKey && event.keyCode == 77) {
shade.destroy();
modal.destroy();
menu.toggle();
};
// ctrl+alt+e
if (event.ctrlKey && event.altKey && event.keyCode == 69) {
if (state.get().link.show && bookmarks.get().length > 0) {
if (state.get().link.edit) {
helper.setObject({
object: state.get(),
path: "link.edit",
newValue: false
});
} else {
helper.setObject({
object: state.get(),
path: "link.edit",
newValue: true
});
};
control.update();
control.render();
data.save();
};
};
// ctrl+alt+r
if (event.ctrlKey && event.altKey && event.keyCode == 82) {
accent.random();
accent.render();
data.save();
};
}, false);
};
var init = function() {
_bind();
};
return {
init: init
};
})();