ComunicDesktop/modules/ApplicationMenu.js

136 lines
1.9 KiB
JavaScript
Raw Normal View History

/**
* Application menu
*
* @author Comunic Authors
*/
const {app, Menu} = require('electron');
/**
* Get application menu
*
* @param {BrowserWindow} window
* @return {Menu} Application menu
*/
module.exports.Get = function(window){
2019-02-11 18:03:47 +00:00
/**
* Execute javascript quickly
*/
let js = function(code) {window.webContents.executeJavaScript(code)};
return Menu.buildFromTemplate([
2019-02-11 17:43:03 +00:00
//File menu
{
label: "File",
submenu: [
2019-02-11 17:43:03 +00:00
//Close app
{
label: "Quit",
click: () => {
app.quit();
}
}
2019-02-11 17:43:03 +00:00
]
},
2019-02-11 17:43:03 +00:00
2019-02-11 18:03:47 +00:00
//Shorcuts menu
{
label: "Shorcuts",
submenu: [
//Latest posts
{
label: "Latest posts",
click: () => {
js("openPage('latest');");
}
},
//User page
{
label: "Your page",
click: () => {
js("openPage('user/' + userID());");
}
},
//Conversations
{
label: "Conversations",
click: () => {
js("openPage('conversations');");
}
},
//Groups
{
label: "Groups",
click: () => {
js("openPage('groups');");
}
}
]
},
2019-02-11 17:43:03 +00:00
//Settings menu
{
label: "Settings",
submenu: [
//Dark mode
{
label: "Toggle dark mode",
click: () => {
2019-02-11 18:03:47 +00:00
js("ComunicWeb.components.darkTheme.setEnabled(!ComunicWeb.components.darkTheme.isEnabled());");
2019-02-11 17:43:03 +00:00
}
2019-02-11 17:47:09 +00:00
},
//Incognito mode
{
label: "Enable incognito mode",
sublabel: "F6",
click: () => {
2019-02-11 18:03:47 +00:00
js("ComunicWeb.components.incognito.ui.confirmEnable();");
}
},
//Account settings
{
label: "Account settings",
click: () => {
js("openPage('settings');");
2019-02-11 17:47:09 +00:00
}
2019-02-11 17:43:03 +00:00
}
2019-02-11 18:03:47 +00:00
2019-02-11 17:43:03 +00:00
]
},
//Advanced menu
{
label: "Advanced",
submenu: [
2019-02-11 17:43:03 +00:00
//Dev tools
{
label: "Toggle developer tools",
click: () => {
window.webContents.toggleDevTools();
}
}
2019-02-11 17:43:03 +00:00
]
}
])
}