MCPcopy
hub / github.com/wavetermdev/waveterm / convertMenuDefArrToMenu

Function convertMenuDefArrToMenu

emain/emain-menu.ts:422–447  ·  view source on GitHub ↗
(
    webContents: electron.WebContents,
    menuDefArr: ElectronContextMenuItem[],
    menuState: { hasClick: boolean }
)

Source from the content-addressed store, hash-verified

420}
421
422function convertMenuDefArrToMenu(
423 webContents: electron.WebContents,
424 menuDefArr: ElectronContextMenuItem[],
425 menuState: { hasClick: boolean }
426): electron.Menu {
427 const menuItems: electron.MenuItem[] = [];
428 for (const menuDef of menuDefArr) {
429 const menuItemTemplate: electron.MenuItemConstructorOptions = {
430 role: menuDef.role as any,
431 label: menuDef.label,
432 type: menuDef.type,
433 click: () => {
434 menuState.hasClick = true;
435 webContents.send("contextmenu-click", menuDef.id);
436 },
437 checked: menuDef.checked,
438 enabled: menuDef.enabled,
439 };
440 if (menuDef.submenu != null) {
441 menuItemTemplate.submenu = convertMenuDefArrToMenu(webContents, menuDef.submenu, menuState);
442 }
443 const menuItem = new electron.MenuItem(menuItemTemplate);
444 menuItems.push(menuItem);
445 }
446 return electron.Menu.buildFromTemplate(menuItems);
447}
448
449electron.ipcMain.on(
450 "contextmenu-show",

Callers 1

emain-menu.tsFile · 0.85

Calls 1

pushMethod · 0.80

Tested by

no test coverage detected