Newer
Older
// Copyright 2015-2018 Parity Technologies (UK) Ltd.
// This file is part of Parity.
//
Luke Schoen
committed
import { getTemplate } from './template';
Luke Schoen
committed
const { Menu } = electron;
Luke Schoen
committed
let hasCalledInitFetherMenu = false;
Luke Schoen
committed
class FetherMenu {
constructor () {
if (hasCalledInitFetherMenu) {
throw new Error('Unable to initialise Fether menu more than once');
}
}
Luke Schoen
committed
getMenu = () => {
return Menu.getApplicationMenu();
};
Luke Schoen
committed
Luke Schoen
committed
getMenuTemplate = fetherApp => {
return getTemplate(fetherApp);
};
getDefaultBuiltMenuTemplate = fetherApp => {
return Menu.buildFromTemplate(this.getMenuTemplate(fetherApp));
};
createCustomBuiltMenuTemplate = customMenuTemplate => {
return Menu.buildFromTemplate(customMenuTemplate);
};
setMenu = (fetherApp, customBuiltMenuTemplate) => {
const defaultBuiltMenuTemplate = this.getDefaultBuiltMenuTemplate(
fetherApp
);
Menu.setApplicationMenu(
customBuiltMenuTemplate || defaultBuiltMenuTemplate
);
};
updateMenu = fetherApp => {
const newMenu = this.getMenuTemplate(fetherApp);
const customBuiltMenuTemplate = this.createCustomBuiltMenuTemplate(newMenu);
this.setMenu(fetherApp, customBuiltMenuTemplate);
};
}
export default FetherMenu;