| 
									
										
										
										
											2015-08-28 16:35:22 -07:00
										 |  |  | # MenuItem
 | 
					
						
							| 
									
										
										
										
											2015-08-28 16:19:28 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-02 21:53:55 +08:00
										 |  |  | The `menu-item` module allows you to add items to an application or context | 
					
						
							| 
									
										
										
										
											2015-08-28 16:19:28 -07:00
										 |  |  | [`menu`](menu.md). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | See [`menu`](menu.md) for examples. | 
					
						
							| 
									
										
										
										
											2013-09-09 15:35:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-14 15:43:35 -07:00
										 |  |  | ## Class: MenuItem
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 16:19:28 -07:00
										 |  |  | Create a new `MenuItem` with the following method: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-14 15:43:35 -07:00
										 |  |  | ### new MenuItem(options)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * `options` Object | 
					
						
							| 
									
										
										
										
											2015-09-02 09:19:18 +08:00
										 |  |  |   * `click` Function - Will be called with `click(menuItem, browserWindow)` when | 
					
						
							|  |  |  |      the menu item is clicked | 
					
						
							|  |  |  |   * `role` String - Define the action of the menu item, when specified the | 
					
						
							|  |  |  |      `click` property will be ignored | 
					
						
							| 
									
										
										
										
											2013-08-29 16:37:51 +02:00
										 |  |  |   * `type` String - Can be `normal`, `separator`, `submenu`, `checkbox` or | 
					
						
							|  |  |  |      `radio` | 
					
						
							| 
									
										
										
										
											2013-08-14 15:43:35 -07:00
										 |  |  |   * `label` String | 
					
						
							|  |  |  |   * `sublabel` String | 
					
						
							| 
									
										
										
										
											2014-08-05 00:00:39 +08:00
										 |  |  |   * `accelerator` [Accelerator](accelerator.md) | 
					
						
							| 
									
										
										
										
											2015-02-13 12:12:40 +08:00
										 |  |  |   * `icon` [NativeImage](native-image.md) | 
					
						
							| 
									
										
										
										
											2013-08-14 15:43:35 -07:00
										 |  |  |   * `enabled` Boolean | 
					
						
							|  |  |  |   * `visible` Boolean | 
					
						
							|  |  |  |   * `checked` Boolean | 
					
						
							| 
									
										
										
										
											2013-08-29 16:37:51 +02:00
										 |  |  |   * `submenu` Menu - Should be specified for `submenu` type menu item, when | 
					
						
							| 
									
										
										
										
											2015-12-07 09:36:07 -08:00
										 |  |  |      it's specified the `type: 'submenu'` can be omitted for the menu item. | 
					
						
							|  |  |  |      If the value is not a `Menu` then it will be automatically converted to one | 
					
						
							|  |  |  |      using `Menu.buildFromTemplate`. | 
					
						
							| 
									
										
										
										
											2015-04-07 11:14:28 -04:00
										 |  |  |   * `id` String - Unique within a single menu. If defined then it can be used | 
					
						
							|  |  |  |      as a reference to this item by the position attribute. | 
					
						
							| 
									
										
										
										
											2015-04-13 11:22:33 +08:00
										 |  |  |   * `position` String - This field allows fine-grained definition of the | 
					
						
							|  |  |  |      specific location within a given menu. | 
					
						
							| 
									
										
										
										
											2015-09-02 09:19:18 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | When creating menu items, it is recommended to specify `role` instead of | 
					
						
							|  |  |  | manually implementing the behavior if there is matching action, so menu can have | 
					
						
							|  |  |  | best native experience. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The `role` property can have following values: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * `undo` | 
					
						
							|  |  |  | * `redo` | 
					
						
							|  |  |  | * `cut` | 
					
						
							|  |  |  | * `copy` | 
					
						
							|  |  |  | * `paste` | 
					
						
							|  |  |  | * `selectall` | 
					
						
							|  |  |  | * `minimize` - Minimize current window | 
					
						
							|  |  |  | * `close` - Close current window | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | On OS X `role` can also have following additional values: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * `about` - Map to the `orderFrontStandardAboutPanel` action | 
					
						
							|  |  |  | * `hide` - Map to the `hide` action | 
					
						
							|  |  |  | * `hideothers` - Map to the `hideOtherApplications` action | 
					
						
							|  |  |  | * `unhide` - Map to the `unhideAllApplications` action | 
					
						
							|  |  |  | * `front` - Map to the `arrangeInFront` action | 
					
						
							|  |  |  | * `window` - The submenu is a "Window" menu | 
					
						
							|  |  |  | * `help` - The submenu is a "Help" menu | 
					
						
							|  |  |  | * `services` - The submenu is a "Services" menu |