Класс Menu реализует меню. Он содержит следующие статические методы:
setApplicationMenu(<Меню>) — устанавливает меню для приложения. Чтобы удалить стандартное меню, следует передать значение null;getApplicationMenu() — возвращает ссылку на меню приложения или значение null. Класс Menu имеет также свойство items, которое содержит массив с пунктами меню;buildFromTemplate(<Шаблон меню>) — создает меню на основе шаблона или массива пунктов и возвращает ссылку на него:const menu = Menu.buildFromTemplate(templateMenu);
Menu.setApplicationMenu(menu);Класс Menu содержит следующие основные методы:
append(<MenuItem>) — добавляет пункт в меню;insert(<Позиция>, <MenuItem>) — добавляет пункт в указанную позицию:// const { Menu, MenuItem } = require('electron');
const menu = new Menu();
menu.append(new MenuItem({label: 'Правка'}));
menu.insert(0, new MenuItem({label: 'Файл'}));
Menu.setApplicationMenu(menu);getMenuItemById(<Идентификатор>) — возвращает ссылку на пункт меню с указанным идентификатором:let menu = Menu.getApplicationMenu();
let menuItem = menu.getMenuItemById('1');Класс MenuItem описывает пункт меню. Формат конструктора:
const { Menu, MenuItem } = require('electron');
<Объект> = new MenuItem(<Объект с опциями>)В качестве параметра конструктор принимает объект со следующими опциями (полный список см. в документации):
type — тип пункта меню. Возможные значения: normal, separator, submenu, checkbox или radio;label — текст пункта меню;accelerator — задает клавиши быстрого доступа;id — уникальный идентификатор пункта меню в виде строки по которому можно найти пункт;role — роль пункта меню;icon — задает значок, отображаемый слева от текста пункта меню;checked — если имеет значение true, то флажок или переключатель будет установлен, а если false — то сброшен;visible — если имеет значение true, то пункт будет видимым, а если false — то пункт меню будет скрыт;enabled — если имеет значение true, то пункт будет доступен для выбора, а если false — то пункт меню будет недоступным;click — задает ссылку на обработчик выбора пункта меню. Обработчик принимает три параметра. Через первый параметр доступен объект MenuItem, через второй — ссылка на окно, находящееся в фокусе ввода, или значение undefined, а через третий — объект события KeyboardEvent.Класс MenuItem содержит также одноименные с опциями свойства. Пример переключения доступности пункта меню с идентификатором 1:
let menu = Menu.getApplicationMenu();
let menuItem = menu.getMenuItemById('1');
if (menuItem) {
menuItem.enabled = !menuItem.enabled;
}