Editor.Menu
Class: Editor.Menu
new Editor.Menu (template[, webContents])
- templatearray|object - Menu template for initialize. The template take the options of Electron's Menu Item- pathstring - add a menu item by path.
- messagestring - Ipc message name.
- commandstring - A global function in main process (e.g. Editor.log).
- paramsarray - The parameters passed through ipc.
- panelstring - The panelID, if specified, the message will send to panel.
- devstring - Only show when Menu.showDev is true.
 
- webContentsobject - A WebContents object.
Instance Methods
menu.add (path, template)
- pathstring - The menu path
- templatearray|object
Build a template into menu item and add it to path
Example:
let editorMenu = new Editor.Menu();
editorMenu.add( 'foo/bar', {
  label: foobar,
  message: 'foobar:say',
  params: ['foobar: hello!']
});
// you can also create menu without label
// it will add menu to foo/bar where bar is the menu-item
let editorMenu = new Editor.Menu();
editorMenu.add( 'foo/bar/foobar', {
  message: 'foobar:say',
  params: ['foobar: hello!']
});
menu.clear ()
Clear all menu item in it.
menu.dispose ()
De-reference the native menu.
menu.insert (path, pos, template)
- pathstring - The menu path
- posnumber
- templatearray|object
Build a template into menu item and insert it to path at specific position
menu.remove (path)
Remove menu item at path.
menu.reset (template)
- templatearray|object
Reset the menu from the template.
menu.set (path, options)
- path- The menu path
- options- iconNativeImage - A NativeImage
- enabledboolean
- visibleboolean
- checkedboolean - NOTE: You must set your menu-item type to 'checkbox' to make it work
 
menu.update (path, template)
- pathstring - The menu path
- templatearray|object
Update menu item at path.
Static Properties
Editor.Menu.showDev
Indicate if show dev menu
Static Methods
Editor.Menu.convert (template[, webContents])
- templatearray|object - Menu template for initialize. The template take the options of Electron's Menu Item
- webContentsobject - A WebContents object.
Convert the menu template to process additional keyword we added for Electron.
If webContents provided, the template.message will send to the target webContents.
Editor.Menu.getMenu (name)
- namestring - Name of the register menu
Editor.Menu.register (name, fn[, force])
- namestring - Name of the register menu
- fnfunction - A function returns the menu template
- forceboolean - Force to register a menu even it was registered before
Editor.Menu.unregister (name)
- namestring - Name of the register menu
Editor.Menu.walk (template, fn)
- templatearray|object - Menu template for initialize. The template take the options of Electron's Menu Item
- fnfunction - Function applied to each menu item
Example:
Editor.Menu.walk(menuTmpl, item => {
  if ( item.params ) {
    item.params.unshift('Hello');
  }
  if (item.message === 'foobar:say-hello') {
    item.enabled = false;
  }
});
