* docs: clarify meaning of string value for menu item icon Co-authored-by: Niklas Wenzel <dev@nikwen.de> * fix: format Co-authored-by: Niklas Wenzel <dev@nikwen.de> * fix: wording Co-authored-by: Niklas Wenzel <dev@nikwen.de> --------- Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Niklas Wenzel <dev@nikwen.de>
8 KiB
MenuItem
Class: MenuItem
Add items to native application menus and context menus.
Process: Main
See Menu for examples.
Warning
Electron's built-in classes cannot be subclassed in user code. For more information, see the FAQ.
new MenuItem(options)
optionsObjectclickFunction (optional) - Will be called withclick(menuItem, window, event)when the menu item is clicked.menuItemMenuItemwindowBaseWindow | undefined - This will not be defined if no window is open.eventKeyboardEvent
rolestring (optional) - Can beundo,redo,cut,copy,paste,pasteAndMatchStyle,delete,selectAll,reload,forceReload,toggleDevTools,resetZoom,zoomIn,zoomOut,toggleSpellChecker,togglefullscreen,window,minimize,close,help,about,services,hide,hideOthers,unhide,quit,showSubstitutions,toggleSmartQuotes,toggleSmartDashes,toggleTextReplacement,startSpeaking,stopSpeaking,zoom,front,appMenu,fileMenu,editMenu,viewMenu,shareMenu,recentDocuments,toggleTabBar,selectNextTab,selectPreviousTab,showAllTabs,mergeAllWindows,clearRecentDocuments,moveTabToNewWindoworwindowMenu- Define the action of the menu item, when specified theclickproperty will be ignored. See roles.typestring (optional)normalseparatorsubmenucheckboxradioheader- Only available on macOS 14 and up.palette- Only available on macOS 14 and up.
labelstring (optional)sublabelstring (optional) macOS - Available in macOS >= 14.4toolTipstring (optional) macOS - Hover text for this menu item.acceleratorstring (optional) - An Accelerator string.icon(NativeImage | string) (optional) - Can be a NativeImage or the file path of an icon.enabledboolean (optional) - If false, the menu item will be greyed out and unclickable.acceleratorWorksWhenHiddenboolean (optional) macOS - default istrue, and whenfalsewill prevent the accelerator from triggering the item if the item is not visible.visibleboolean (optional) - If false, the menu item will be entirely hidden.checkedboolean (optional) - Should only be specified forcheckboxorradiotype menu items.registerAcceleratorboolean (optional) Linux Windows - If false, the accelerator won't be registered with the system, but it will still be displayed. Defaults to true.sharingItemSharingItem (optional) macOS - The item to share when theroleisshareMenu.submenu(MenuItemConstructorOptions[] | Menu) (optional) - Should be specified forsubmenutype menu items. Ifsubmenuis specified, thetype: 'submenu'can be omitted. If the value is not aMenuthen it will be automatically converted to one usingMenu.buildFromTemplate.idstring (optional) - Unique within a single menu. If defined then it can be used as a reference to this item by the position attribute.beforestring[] (optional) - Inserts this item before the item with the specified id. If the referenced item doesn't exist the item will be inserted at the end of the menu. Also implies that the menu item in question should be placed in the same “group” as the item.afterstring[] (optional) - Inserts this item after the item with the specified id. If the referenced item doesn't exist the item will be inserted at the end of the menu.beforeGroupContainingstring[] (optional) - Provides a means for a single context menu to declare the placement of their containing group before the containing group of the item with the specified id.afterGroupContainingstring[] (optional) - Provides a means for a single context menu to declare the placement of their containing group after the containing group of the item with the specified id.
Note
acceleratorWorksWhenHiddenis specified as being macOS-only because accelerators always work when items are hidden on Windows and Linux. The option is exposed to users to give them the option to turn it off, as this is possible in native macOS development.
Instance Properties
The following properties are available on instances of MenuItem:
menuItem.id
A string indicating the item's unique id. This property can be
dynamically changed.
menuItem.label
A string indicating the item's visible label.
menuItem.click
A Function that is fired when the MenuItem receives a click event.
It can be called with menuItem.click(event, focusedWindow, focusedWebContents).
eventKeyboardEventfocusedWindowBaseWindowfocusedWebContentsWebContents
menuItem.submenu
A Menu (optional) containing the menu
item's submenu, if present.
menuItem.type
A string indicating the type of the item. Can be normal, separator, submenu, checkbox, radio, header or palette.
Note
headerandpaletteare only available on macOS 14 and up.
menuItem.role
A string (optional) indicating the item's role, if set. Can be undo, redo, cut, copy, paste, pasteAndMatchStyle, delete, selectAll, reload, forceReload, toggleDevTools, resetZoom, zoomIn, zoomOut, toggleSpellChecker, togglefullscreen, window, minimize, close, help, about, services, hide, hideOthers, unhide, quit, startSpeaking, stopSpeaking, zoom, front, appMenu, fileMenu, editMenu, viewMenu, shareMenu, recentDocuments, toggleTabBar, selectNextTab, selectPreviousTab, showAllTabs, mergeAllWindows, clearRecentDocuments, moveTabToNewWindow or windowMenu
menuItem.accelerator
An Accelerator (optional) indicating the item's accelerator, if set.
menuItem.userAccelerator Readonly macOS
An Accelerator | null indicating the item's user-assigned accelerator for the menu item.
Note
This property is only initialized after the
MenuItemhas been added to aMenu. Either viaMenu.buildFromTemplateor viaMenu.append()/insert(). Accessing before initialization will just returnnull.
menuItem.icon
A NativeImage | string (optional) indicating the
item's icon, if set.
menuItem.sublabel
A string indicating the item's sublabel.
menuItem.toolTip macOS
A string indicating the item's hover text.
menuItem.enabled
A boolean indicating whether the item is enabled. This property can be
dynamically changed.
menuItem.visible
A boolean indicating whether the item is visible. This property can be
dynamically changed.
menuItem.checked
A boolean indicating whether the item is checked. This property can be
dynamically changed.
A checkbox menu item will toggle the checked property on and off when
selected.
A radio menu item will turn on its checked property when clicked, and
will turn off that property for all adjacent items in the same menu.
You can add a click function for additional behavior.
menuItem.registerAccelerator
A boolean indicating if the accelerator should be registered with the
system or just displayed.
This property can be dynamically changed.
menuItem.sharingItem macOS
A SharingItem indicating the item to share when the role is shareMenu.
This property can be dynamically changed.
menuItem.commandId
A number indicating an item's sequential unique id.
menuItem.menu
A Menu that the item is a part of.