概要
Electron の Menu のカスタマイズ方法
Menu のカスタマイズ
Electron の設定を書いているファイルに以下を記述
app.jsの一部
// Electron
const {app, Menu, BrowserWindow} = require('electron');
// ElectronのMenuの設定
const templateMenu = [
{
label: 'Edit',
submenu: [
{
role: 'undo',
},
{
role: 'redo',
},
]
},
{
label: 'View',
submenu: [
{
label: 'Reload',
accelerator: 'CmdOrCtrl+R',
click(item, focusedWindow){
if(focusedWindow) focusedWindow.reload()
},
},
{
type: 'separator',
},
{
role: 'resetzoom',
},
{
role: 'zoomin',
},
{
role: 'zoomout',
},
{
type: 'separator',
},
{
role: 'togglefullscreen',
}
]
}
];
const menu = Menu.buildFromTemplate(templateMenu);
Menu.setApplicationMenu(menu);
label が 表示名です。最初の階層の label では、Menu 部分に表示されます。また、submenu は表示されている Menu の Dropdown 部分です。
予め用意されている role もあるみたいですが、個人的に追加したいものは、click とかで追記すれば良さそう。
実行結果としてはこんな感じ。
role の種類
Macはよく分からないので、調べて何となくわかったものだけ書いてます。しかし、role はこんなに種類あるみたいです。基本的なものを用意してくれているのでうれしいですね。
| role名 | 意味 | 備考 |
|---|---|---|
| undo | 戻る | |
| redo | 進む | |
| cut | 切り取り | |
| copy | コピー | |
| paste | 貼り付け | |
| pasteandmatchstyle | ? | |
| selectall | すべて選択 | |
| delete | 削除 | |
| minimize | 最小化(タスクバーに逃げるやつ) | |
| close | ウィンドウを閉じる | |
| quit | ウィンドウを閉じる | |
| togglefullscreen | フルスクリーンにする | |
| resetzoom | 拡大縮小の解除 | |
| zoomin | 拡大 | |
| zoomout | 縮小 | |
| about | Aboutパネルを出すらしい | MacOSのみ |
| hide | MacOSのみ | |
| hideothers | MacOSのみ | |
| unhide | MacOSのみ | |
| startspeaking | MacOSのみ | |
| stopspeaking | MacOSのみ | |
| front | MacOSのみ | |
| zoom | たぶん拡大 | MacOSのみ |
| window | MacOSのみ | |
| help | MacOSのみ | |
| services | MacOSのみ |
