Skip to content

ragingwind/electron-menu-loader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

electron-menu-loader

Loading menu manifest from seperated menu files, Supporting a delegate custom event for Menu click event

Install

$ npm install --save electron-menu-loader

Usage

// load manifest from a file
require('electron-menu-loader')('./menu');
require('electron-menu-loader')(require('./menu'));

// load manifest with params
const {app} = require('electron');

// load shared meny and specific menu of target platform
let menu = require('./menu');
menu[process.platform] = require(process.platform);
require('electron-menu-loader')(menu);

// manange menu click event in the single place
app.on('menuitem-click', event => {
	console.log(event.event,
	event.menuItem.label,
	event.browserWindow.getTitle());
});

API

electronMenuLoader(manifest, [options])

manifest

Type: string

path of the file content with the sets of the menu items

options

appMenu

If it set with true? this will register a menu to application menu. default is true.

Events

menu loader will convert event property to custom event if the property is set in manifest like below. The custom event function translated is beging converted when the manifest has been loading.

module.exports = {
	label: appName,
	submenu: [{
		label: 'Preferences',
		event: 'prefer',
		params: 'optional params'
	}]
};

When user click the Preferences, the custom event will be fired to app with the event named meuitem-click. See refer to below sample.

app.on('menuitem-click', event => {
	console.log(event.event,
	event.menuItem.label,
	event.browserWindow.getTitle());
});

License

MIT © Jimmy Moon

About

Loading menu items with custom events

Resources

License

Stars

Watchers

Forks

Packages

No packages published