mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-18 05:34:09 +00:00
de9a7a87fd
* refactor(project structure): UI * refactor(project structure): extract utilities * refactor(project structure): remove unused * refactor(project structure): electron * refactor(project structure): server refactor: migrate to vitest refactor: monorepo config * refactor: extract application menu * refactor: exit process * refactor: extract tray menu * chore: electron build * Added Seconds in studio clock #282 --------- Co-authored-by: Fabian Posenau <fabian@fphome.de> --------- Co-authored-by: Fabian Posenau <fabian.p99@gmx.de> Co-authored-by: Fabian Posenau <fabian@fphome.de>
172 lines
4.6 KiB
JavaScript
172 lines
4.6 KiB
JavaScript
const { shell } = require('electron');
|
|
/**
|
|
* Build description of application menu
|
|
* @param {boolean} isMac - Whether the target platform is mac
|
|
* @param {function} askToQuit - function for quitting process
|
|
*/
|
|
function getApplicationMenu(isMac, askToQuit) {
|
|
return [
|
|
...(isMac
|
|
? [
|
|
{
|
|
label: 'Ontime',
|
|
submenu: [
|
|
{ role: 'about' },
|
|
{ type: 'separator' },
|
|
{ role: 'hide' },
|
|
{ role: 'hideOthers' },
|
|
{ role: 'unhide' },
|
|
{ type: 'separator' },
|
|
{
|
|
label: 'quit',
|
|
click: () => askToQuit(),
|
|
accelerator: 'Cmd+Q',
|
|
},
|
|
],
|
|
},
|
|
]
|
|
: []),
|
|
{
|
|
label: 'File',
|
|
submenu: [isMac ? { role: 'close' } : { role: 'quit' }],
|
|
},
|
|
{
|
|
label: 'Edit',
|
|
submenu: [
|
|
{ role: 'undo' },
|
|
{ role: 'redo' },
|
|
{ type: 'separator' },
|
|
{ role: 'cut' },
|
|
{ role: 'copy' },
|
|
{ role: 'paste' },
|
|
...(isMac
|
|
? [
|
|
{ role: 'pasteAndMatchStyle' },
|
|
{ role: 'delete' },
|
|
{ role: 'selectAll' },
|
|
{ type: 'separator' },
|
|
{
|
|
label: 'Speech',
|
|
submenu: [{ role: 'startSpeaking' }, { role: 'stopSpeaking' }],
|
|
},
|
|
]
|
|
: [{ role: 'delete' }, { type: 'separator' }, { role: 'selectAll' }]),
|
|
],
|
|
},
|
|
{
|
|
label: 'Views',
|
|
submenu: [
|
|
{
|
|
label: 'Ontime Views (opens in browser)',
|
|
submenu: [
|
|
{
|
|
label: 'Timer',
|
|
accelerator: 'CmdOrCtrl+V',
|
|
click: async () => {
|
|
await shell.openExternal('http://localhost:4001/timer');
|
|
},
|
|
},
|
|
{
|
|
label: 'Clock',
|
|
click: async () => {
|
|
await shell.openExternal('http://localhost:4001/clock');
|
|
},
|
|
},
|
|
{
|
|
label: 'Minimal Timer',
|
|
click: async () => {
|
|
await shell.openExternal('http://localhost:4001/minimal');
|
|
},
|
|
},
|
|
{
|
|
label: 'Backstage',
|
|
click: async () => {
|
|
await shell.openExternal('http://localhost:4001/backstage');
|
|
},
|
|
},
|
|
{
|
|
label: 'Public',
|
|
click: async () => {
|
|
await shell.openExternal('http://localhost:4001/public');
|
|
},
|
|
},
|
|
{
|
|
label: 'Lower Thirds',
|
|
click: async () => {
|
|
await shell.openExternal('http://localhost:4001/lower');
|
|
},
|
|
},
|
|
|
|
{
|
|
label: 'PiP',
|
|
click: async () => {
|
|
await shell.openExternal('http://localhost:4001/pip');
|
|
},
|
|
},
|
|
{
|
|
label: 'Studio Clock',
|
|
click: async () => {
|
|
await shell.openExternal('http://localhost:4001/studio');
|
|
},
|
|
},
|
|
{
|
|
label: 'Countdown',
|
|
click: async () => {
|
|
await shell.openExternal('http://localhost:4001/countdown');
|
|
},
|
|
},
|
|
{ type: 'separator' },
|
|
{
|
|
label: 'Editor',
|
|
click: async () => {
|
|
await shell.openExternal('http://localhost:4001/editor');
|
|
},
|
|
},
|
|
{
|
|
label: 'Cuesheet',
|
|
click: async () => {
|
|
await shell.openExternal('http://localhost:4001/cuesheet');
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{ type: 'separator' },
|
|
{ role: 'forceReload' },
|
|
{ type: 'separator' },
|
|
{ role: 'resetZoom' },
|
|
{ role: 'zoomIn' },
|
|
{ role: 'zoomOut' },
|
|
],
|
|
},
|
|
{
|
|
label: 'Window',
|
|
submenu: [
|
|
{ role: 'minimize' },
|
|
{ role: 'zoom' },
|
|
...(isMac
|
|
? [{ type: 'separator' }, { role: 'front' }, { type: 'separator' }, { role: 'window' }]
|
|
: [{ role: 'close' }]),
|
|
],
|
|
},
|
|
{
|
|
role: 'help',
|
|
submenu: [
|
|
{
|
|
label: 'See on github',
|
|
click: async () => {
|
|
await shell.openExternal('https://github.com/cpvalente/ontime');
|
|
},
|
|
},
|
|
{
|
|
label: 'Online documentation',
|
|
click: async () => {
|
|
await shell.openExternal('https://cpvalente.gitbook.io/ontime/');
|
|
},
|
|
},
|
|
],
|
|
},
|
|
];
|
|
}
|
|
|
|
module.exports = { getApplicationMenu }
|