| 
									
										
										
										
											2019-10-11 00:47:34 +11:00
										 |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  | <html> | 
					
						
							|  |  |  |   <head> | 
					
						
							|  |  |  |     <meta charset="UTF-8" /> | 
					
						
							|  |  |  |     <title>Customize Menus</title> | 
					
						
							|  |  |  |   </head> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <body> | 
					
						
							| 
									
										
										
										
											2019-10-16 18:17:09 +03:00
										 |  |  |     <div> | 
					
						
							| 
									
										
										
										
											2019-10-11 00:47:34 +11:00
										 |  |  |       <h1>Customize Menus</h1> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       <h3> | 
					
						
							|  |  |  |         The <code>Menu</code> and <code>MenuItem</code> modules can be used to | 
					
						
							|  |  |  |         create custom native menus. | 
					
						
							|  |  |  |       </h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       <p> | 
					
						
							|  |  |  |         There are two kinds of menus: the application (top) menu and context | 
					
						
							|  |  |  |         (right-click) menu. | 
					
						
							|  |  |  |       </p> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       <p> | 
					
						
							|  |  |  |         Open the | 
					
						
							|  |  |  |         <a href="http://electron.atom.io/docs/api/menu" | 
					
						
							| 
									
										
										
										
											2019-10-16 18:17:09 +03:00
										 |  |  |           >full API documentation<span | 
					
						
							| 
									
										
										
										
											2019-10-11 00:47:34 +11:00
										 |  |  |             >(opens in new window)</span | 
					
						
							|  |  |  |           ></a | 
					
						
							|  |  |  |         > | 
					
						
							|  |  |  |         in your browser. | 
					
						
							|  |  |  |       </p> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-16 18:17:09 +03:00
										 |  |  |     <div> | 
					
						
							| 
									
										
										
										
											2019-10-11 00:47:34 +11:00
										 |  |  |       <h2>Create an application menu</h2> | 
					
						
							| 
									
										
										
										
											2019-10-16 18:17:09 +03:00
										 |  |  |       <div> | 
					
						
							|  |  |  |         <div> | 
					
						
							| 
									
										
										
										
											2019-10-11 00:47:34 +11:00
										 |  |  |           <p> | 
					
						
							|  |  |  |             The <code>Menu</code> and <code>MenuItem</code> modules allow you to | 
					
						
							|  |  |  |             customize your application menu. If you don't set any menu, Electron | 
					
						
							|  |  |  |             will generate a minimal menu for your app by default. | 
					
						
							|  |  |  |           </p> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           <p> | 
					
						
							|  |  |  |             If you click the 'View' option in the application menu and then the | 
					
						
							|  |  |  |             'App Menu Demo', you'll see an information box displayed. | 
					
						
							|  |  |  |           </p> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-16 18:17:09 +03:00
										 |  |  |           <div> | 
					
						
							| 
									
										
										
										
											2019-10-11 00:47:34 +11:00
										 |  |  |             <h2>ProTip</h2> | 
					
						
							|  |  |  |             <strong>Know operating system menu differences.</strong> | 
					
						
							|  |  |  |             <p> | 
					
						
							|  |  |  |               When designing an app for multiple operating systems it's | 
					
						
							|  |  |  |               important to be mindful of the ways application menu conventions | 
					
						
							|  |  |  |               differ on each operating system. | 
					
						
							|  |  |  |             </p> | 
					
						
							|  |  |  |             <p> | 
					
						
							|  |  |  |               For instance, on Windows, accelerators are set with an | 
					
						
							|  |  |  |               <code>&</code>. Naming conventions also vary, like between | 
					
						
							|  |  |  |               "Settings" or "Preferences". Below are resources for learning | 
					
						
							|  |  |  |               operating system specific standards. | 
					
						
							|  |  |  |             </p> | 
					
						
							|  |  |  |             <ul> | 
					
						
							|  |  |  |               <li> | 
					
						
							|  |  |  |                 <a | 
					
						
							|  |  |  |                   href="https://developer.apple.com/macos/human-interface-guidelines/menus/menu-anatomy/" | 
					
						
							| 
									
										
										
										
											2019-10-16 18:17:09 +03:00
										 |  |  |                   >macOS<span | 
					
						
							| 
									
										
										
										
											2019-10-11 00:47:34 +11:00
										 |  |  |                     >(opens in new window)</span | 
					
						
							|  |  |  |                   ></a | 
					
						
							|  |  |  |                 > | 
					
						
							|  |  |  |               </li> | 
					
						
							|  |  |  |               <li> | 
					
						
							|  |  |  |                 <a | 
					
						
							|  |  |  |                   href="https://msdn.microsoft.com/en-us/library/windows/desktop/bb226797(v=vs.85).aspx" | 
					
						
							| 
									
										
										
										
											2019-10-16 18:17:09 +03:00
										 |  |  |                   >Windows<span | 
					
						
							| 
									
										
										
										
											2019-10-11 00:47:34 +11:00
										 |  |  |                     >(opens in new window)</span | 
					
						
							|  |  |  |                   ></a | 
					
						
							|  |  |  |                 > | 
					
						
							|  |  |  |               </li> | 
					
						
							|  |  |  |               <li> | 
					
						
							|  |  |  |                 <a | 
					
						
							|  |  |  |                   href="https://developer.gnome.org/hig/stable/menu-bars.html.en" | 
					
						
							| 
									
										
										
										
											2019-10-16 18:17:09 +03:00
										 |  |  |                   >Linux<span | 
					
						
							| 
									
										
										
										
											2019-10-11 00:47:34 +11:00
										 |  |  |                     >(opens in new window)</span | 
					
						
							|  |  |  |                   ></a | 
					
						
							|  |  |  |                 > | 
					
						
							|  |  |  |               </li> | 
					
						
							|  |  |  |             </ul> | 
					
						
							|  |  |  |           </div> | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-16 18:17:09 +03:00
										 |  |  |     <div> | 
					
						
							| 
									
										
										
										
											2019-10-11 00:47:34 +11:00
										 |  |  |       <h2>Create a context menu</h2> | 
					
						
							| 
									
										
										
										
											2019-10-16 18:17:09 +03:00
										 |  |  |       <div> | 
					
						
							|  |  |  |         <div> | 
					
						
							|  |  |  |           <div> | 
					
						
							|  |  |  |             <button id="context-menu">View Demo</button> | 
					
						
							| 
									
										
										
										
											2019-10-11 00:47:34 +11:00
										 |  |  |           </div> | 
					
						
							|  |  |  |           <p> | 
					
						
							|  |  |  |             A context, or right-click, menu can be created with the | 
					
						
							|  |  |  |             <code>Menu</code> and <code>MenuItem</code> modules as well. You can | 
					
						
							|  |  |  |             right-click anywhere in this app or click the demo button to see an | 
					
						
							|  |  |  |             example context menu. | 
					
						
							|  |  |  |           </p> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           <p> | 
					
						
							|  |  |  |             In this demo we use the <code>ipcRenderer</code> module to show the | 
					
						
							|  |  |  |             context menu when explicitly calling it from the renderer process. | 
					
						
							|  |  |  |           </p> | 
					
						
							|  |  |  |           <p> | 
					
						
							|  |  |  |             See the full | 
					
						
							|  |  |  |             <a | 
					
						
							|  |  |  |               href="http://electron.atom.io/docs/api/web-contents/#event-context-menu" | 
					
						
							|  |  |  |               >context-menu event documentation</a | 
					
						
							|  |  |  |             > | 
					
						
							|  |  |  |             for all the available properties. | 
					
						
							|  |  |  |           </p> | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <script> | 
					
						
							|  |  |  |       // You can also require other files to run in this process | 
					
						
							|  |  |  |       require("./renderer.js"); | 
					
						
							|  |  |  |     </script> | 
					
						
							|  |  |  |   </body> | 
					
						
							|  |  |  | </html> |