Класс 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;
}