mirror of
https://gitee.com/dromara/electron-egg.git
synced 2026-05-14 19:52:10 +08:00
54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
const { globalShortcut } = require('electron');
|
|
const storage = require('./storage');
|
|
|
|
/**
|
|
* 安装模块
|
|
*/
|
|
exports.setup = function () {
|
|
// default
|
|
console.log('[electron-lib-shortcut] [setup]');
|
|
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; |