2016-11-14 16:24:48 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								## Class: MenuItem
							 | 
						
					
						
							
								
									
										
										
										
											2015-08-28 16:19:28 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-04-22 11:42:54 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								> Add items to native application menus and context menus.
							 | 
						
					
						
							
								
									
										
										
										
											2015-08-28 16:19:28 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-11-23 11:20:56 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								Process: [Main](../glossary.md#main-process)
							 | 
						
					
						
							
								
									
										
										
										
											2016-11-03 10:26:00 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								See [`Menu`](menu.md) for examples.
							 | 
						
					
						
							
								
									
										
										
										
											2013-09-09 15:35:57 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-08-22 11:29:15 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								### `new MenuItem(options)`
							 | 
						
					
						
							
								
									
										
										
										
											2013-08-14 15:43:35 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `options` Object
							 | 
						
					
						
							
								
									
										
										
										
											2016-12-29 14:11:26 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  * `click` Function (optional) - Will be called with
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    `click(menuItem, browserWindow, event)` when the menu item is clicked.
							 | 
						
					
						
							
								
									
										
										
										
											2016-10-13 17:30:57 +11:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    * `menuItem` MenuItem
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    * `browserWindow` BrowserWindow
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    * `event` Event
							 | 
						
					
						
							
								
									
										
										
										
											2016-12-29 14:11:26 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  * `role` String (optional) - Define the action of the menu item, when specified the
							 | 
						
					
						
							
								
									
										
										
										
											2017-03-30 11:07:25 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    `click` property will be ignored. See [roles](#roles).
							 | 
						
					
						
							
								
									
										
										
										
											2016-12-29 14:11:26 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  * `type` String (optional) - Can be `normal`, `separator`, `submenu`, `checkbox` or
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    `radio`.
							 | 
						
					
						
							
								
									
										
										
										
											2016-11-05 19:42:45 +11:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  * `label` String - (optional)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  * `sublabel` String - (optional)
							 | 
						
					
						
							
								
									
										
										
										
											2016-12-29 14:11:26 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  * `accelerator` [Accelerator](accelerator.md) (optional)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  * `icon` ([NativeImage](native-image.md) | String) (optional)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  * `enabled` Boolean (optional) - If false, the menu item will be greyed out and
							 | 
						
					
						
							
								
									
										
										
										
											2016-04-22 22:53:26 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    unclickable.
							 | 
						
					
						
							
								
									
										
										
										
											2016-12-29 14:11:26 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  * `visible` Boolean (optional) - If false, the menu item will be entirely hidden.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  * `checked` Boolean (optional) - Should only be specified for `checkbox` or `radio` type
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    menu items.
							 | 
						
					
						
							
								
									
										
										
										
											2016-12-29 14:11:26 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  * `submenu` (MenuItemConstructorOptions[] | Menu) (optional) - Should be specified for `submenu` type menu items. If
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    `submenu` is specified, the `type: 'submenu'` can be omitted. If the value
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    is not a `Menu` then it will be automatically converted to one using
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    `Menu.buildFromTemplate`.
							 | 
						
					
						
							
								
									
										
										
										
											2016-12-29 14:11:26 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  * `id` String (optional) - Unique within a single menu. If defined then it can be used
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    as a reference to this item by the position attribute.
							 | 
						
					
						
							
								
									
										
										
										
											2016-12-29 14:11:26 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  * `position` String (optional) - This field allows fine-grained definition of the
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    specific location within a given menu.
							 | 
						
					
						
							
								
									
										
										
										
											2015-09-02 09:19:18 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-03-30 11:07:25 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								### Roles
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								Roles allow menu items to have predefined behaviors.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-03-30 23:57:28 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								It is best to specify `role` for any menu item that matches a standard role,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								rather than trying to manually implement the behavior in a `click` function.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								The built-in `role` behavior will give the best native experience.
							 | 
						
					
						
							
								
									
										
										
										
											2015-09-02 09:19:18 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-03-30 11:07:25 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								The `label` and `accelerator` values are optional when using a `role` and will
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								default to appropriate values for each platform.
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 14:10:38 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-09-02 09:19:18 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								The `role` property can have following values:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `undo`
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `redo`
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `cut`
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `copy`
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `paste`
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-04 11:23:35 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `pasteandmatchstyle`
							 | 
						
					
						
							
								
									
										
										
										
											2015-09-02 09:19:18 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `selectall`
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-04 11:23:35 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `delete`
							 | 
						
					
						
							
								
									
										
										
										
											2015-09-02 09:19:18 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `minimize` - Minimize current window
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `close` - Close current window
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-20 17:20:57 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `quit`- Quit the application
							 | 
						
					
						
							
								
									
										
										
										
											2016-11-15 10:53:36 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `reload` - Reload the current window
							 | 
						
					
						
							
								
									
										
										
										
											2017-02-02 12:01:58 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `forcereload` - Reload the current window ignoring the cache.
							 | 
						
					
						
							
								
									
										
										
										
											2016-11-15 10:53:36 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `toggledevtools` - Toggle developer tools in the current window
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-21 09:43:29 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `togglefullscreen`- Toggle full screen mode on the current window
							 | 
						
					
						
							
								
									
										
										
										
											2016-08-08 10:09:45 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `resetzoom` - Reset the focused page's zoom level to the original size
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `zoomin` - Zoom in the focused page by 10%
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `zoomout` - Zoom out the focused page by 10%
							 | 
						
					
						
							
								
									
										
										
										
											2017-03-24 12:14:08 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `editMenu` - Whole default "Edit" menu (Undo, Copy, etc.)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `windowMenu` - Whole default "Window" menu (Minimize, Close, etc.)
							 | 
						
					
						
							
								
									
										
										
										
											2017-03-09 16:01:33 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-04-26 09:06:10 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								The following additional roles are available on macOS:
							 | 
						
					
						
							
								
									
										
										
										
											2015-09-02 09:19:18 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `about` - Map to the `orderFrontStandardAboutPanel` action
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `hide` - Map to the `hide` action
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `hideothers` - Map to the `hideOtherApplications` action
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `unhide` - Map to the `unhideAllApplications` action
							 | 
						
					
						
							
								
									
										
										
										
											2016-08-08 00:02:32 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `startspeaking` - Map to the `startSpeaking` action
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `stopspeaking` - Map to the `stopSpeaking` action
							 | 
						
					
						
							
								
									
										
										
										
											2015-09-02 09:19:18 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `front` - Map to the `arrangeInFront` action
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-07 10:42:46 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `zoom` - Map to the `performZoom` action
							 | 
						
					
						
							
								
									
										
										
										
											2015-09-02 09:19:18 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								* `window` - The submenu is a "Window" menu
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `help` - The submenu is a "Help" menu
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								* `services` - The submenu is a "Services" menu
							 | 
						
					
						
							
								
									
										
										
										
											2016-03-30 23:57:28 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-03-30 11:07:25 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								When specifying a `role` on macOS, `label` and `accelerator` are the only
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								options that will affect the menu item. All other options will be ignored.
							 | 
						
					
						
							
								
									
										
										
										
											2016-04-19 18:12:37 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								### Instance Properties
							 | 
						
					
						
							
								
									
										
										
										
											2016-03-30 23:57:28 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								The following properties are available on instances of `MenuItem`:
							 | 
						
					
						
							
								
									
										
										
										
											2016-03-30 23:57:28 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#### `menuItem.enabled`
							 | 
						
					
						
							
								
									
										
										
										
											2016-03-30 23:57:28 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								A Boolean indicating whether the item is enabled, this property can be
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								dynamically changed.
							 | 
						
					
						
							
								
									
										
										
										
											2016-03-30 23:57:28 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#### `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.
							 | 
						
					
						
							
								
									
										
										
										
											2016-03-30 23:57:28 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								A `radio` menu item will turn on its `checked` property when clicked, and
							 | 
						
					
						
							
								
									
										
										
										
											2016-06-22 13:23:07 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								will turn off that property for all adjacent items in the same menu.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								You can add a `click` function for additional behavior.
							 | 
						
					
						
							
								
									
										
										
										
											2016-11-25 23:17:31 +11:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#### `menuItem.label`
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								A String representing the menu items visible label
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#### `menuItem.click`
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-04-26 09:06:10 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								A Function that is fired when the MenuItem receives a click event
							 |