Pass callback in menu builder

This commit is contained in:
TC
2021-03-31 20:23:10 +02:00
parent 400a2a9bab
commit f9f3482bf1
2 changed files with 15 additions and 23 deletions

View File

@ -9,9 +9,9 @@ var { mainMenuTemplate } = require("../../menu");
const originTemplate = mainMenuTemplate;
mainMenuTemplate = function (winHook) {
//get template
let template = originTemplate(winHook, false);
//fix checkbox and roles
fixMenu(template);
let template = originTemplate(winHook, false, (item) => {
checkCheckbox(item);
});
//return as normal
return template;
};
@ -51,25 +51,6 @@ function switchMenuVisibility() {
win.webContents.send("updateMenu", visible);
}
//go over each item in menu
function fixMenu(template) {
for (let index in template) {
let item = template[index];
//apply function on submenu
if (item.submenu != null) {
fixMenu(item.submenu);
}
//change onClick of checkbox+radio
else if (item.type === "checkbox" || item.type === "radio") {
let ogOnclick = item.click;
item.click = (itemClicked) => {
ogOnclick(itemClicked);
checkCheckbox(itemClicked);
};
}
}
}
function checkCheckbox(item) {
//check item
item.checked = !item.checked;