Files
electron-egg/electron/lib/shortcut.js
gaoshuaixing a31a9a8dec 代码注释
2021-06-29 11:18:19 +08:00

50 lines
1.1 KiB
JavaScript

'use strict';
const { globalShortcut } = require('electron');
const storage = require('./storage');
exports.setup = function () {
// default
storage.iniPreferences();
}
/**
* 快捷键注册
* @param {Object} shortcutObj - shortcut object
* @param {Boolean} force - force register
* @param {Function} fn - callback
* @return {Boolean}
*/
exports.register = function (shortcutObj, force = true, fn) {
if (!shortcutObj['id'] || !shortcutObj['name'] || !shortcutObj['cmd']) {
return false;
}
const isRegistered = this.isRegistered(shortcutObj['cmd']);
if (isRegistered && !force) {
return false;
}
storage.setShortcuts(shortcutObj);
globalShortcut.register(shortcutObj['cmd'], fn)
return true;
}
/**
* 快捷键是否注册成功
* @param {String} cmd - shortcut string
* @return {Boolean}
*/
exports.isRegistered = function (cmd) {
return globalShortcut.isRegistered(cmd)
}
/**
* 注销全局快捷键
* @param {String} cmd - shortcut string
* @return {Boolean}
*/
exports.unregister = function (cmd) {
globalShortcut.unregister(cmd)
}
exports = module.exports;