mirror of
https://github.com/GiriNeko/YesPlayMusic.git
synced 2025-12-16 13:17:46 +00:00
212 lines
5.4 KiB
JavaScript
212 lines
5.4 KiB
JavaScript
const { app, Menu } = require("electron");
|
|
// import { autoUpdater } from "electron-updater"
|
|
// const version = app.getVersion();
|
|
|
|
const isMac = process.platform === "darwin";
|
|
|
|
export function createMenu(win) {
|
|
let menu = null;
|
|
const template = [
|
|
...(isMac
|
|
? [
|
|
{
|
|
label: app.name,
|
|
submenu: [
|
|
{ role: "about" },
|
|
{ type: "separator" },
|
|
{ role: "services" },
|
|
{ type: "separator" },
|
|
{ type: "separator" },
|
|
{
|
|
label: "Preferences...",
|
|
accelerator: (() => (isMac ? "CmdOrCtrl+," : "Ctrl+,"))(),
|
|
click: () => {
|
|
win.webContents.send("changeRouteTo", "/settings");
|
|
},
|
|
role: "preferences",
|
|
},
|
|
{ type: "separator" },
|
|
{ role: "hide" },
|
|
{ role: "hideothers" },
|
|
{ role: "unhide" },
|
|
{ type: "separator" },
|
|
{ role: "quit" },
|
|
],
|
|
},
|
|
]
|
|
: []),
|
|
{
|
|
label: "Edit",
|
|
submenu: [
|
|
{ role: "undo" },
|
|
{ role: "redo" },
|
|
{ type: "separator" },
|
|
{ role: "cut" },
|
|
{ role: "copy" },
|
|
{ role: "paste" },
|
|
...(isMac
|
|
? [
|
|
{ role: "delete" },
|
|
{ role: "selectAll" },
|
|
{ type: "separator" },
|
|
{
|
|
label: "Speech",
|
|
submenu: [{ role: "startspeaking" }, { role: "stopspeaking" }],
|
|
},
|
|
]
|
|
: [{ role: "delete" }, { type: "separator" }, { role: "selectAll" }]),
|
|
{
|
|
label: "Search",
|
|
accelerator: "CmdOrCtrl+F",
|
|
click: () => {
|
|
win.webContents.send("search");
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: "Controls",
|
|
submenu: [
|
|
{
|
|
label: "Play",
|
|
click: () => {
|
|
win.webContents.send("play");
|
|
},
|
|
},
|
|
{
|
|
label: "Next",
|
|
accelerator: "CmdOrCtrl+Right",
|
|
click: () => {
|
|
win.webContents.send("next");
|
|
},
|
|
},
|
|
{
|
|
label: "Previous",
|
|
accelerator: "CmdOrCtrl+Left",
|
|
click: () => {
|
|
win.webContents.send("previous");
|
|
},
|
|
},
|
|
{
|
|
label: "Increase Volume",
|
|
accelerator: "CmdOrCtrl+Up",
|
|
click: () => {
|
|
win.webContents.send("increaseVolume");
|
|
},
|
|
},
|
|
{
|
|
label: "Decrease Volume",
|
|
accelerator: "CmdOrCtrl+Down",
|
|
click: () => {
|
|
win.webContents.send("decreaseVolume");
|
|
},
|
|
},
|
|
{
|
|
label: "Like",
|
|
accelerator: "CmdOrCtrl+L",
|
|
click: () => {
|
|
win.webContents.send("like");
|
|
},
|
|
},
|
|
{
|
|
label: "Repeat",
|
|
accelerator: "Alt+R",
|
|
click: () => {
|
|
win.webContents.send("repeat");
|
|
},
|
|
},
|
|
{
|
|
label: "Shuffle",
|
|
accelerator: "Alt+S",
|
|
click: () => {
|
|
win.webContents.send("shuffle");
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: "Window",
|
|
submenu: [
|
|
{ role: "close" },
|
|
{ role: "minimize" },
|
|
{ role: "zoom" },
|
|
{ role: "reload" },
|
|
{ role: "forcereload" },
|
|
{ role: "toggledevtools" },
|
|
{ type: "separator" },
|
|
{ role: "togglefullscreen" },
|
|
...(isMac
|
|
? [
|
|
{ type: "separator" },
|
|
{ role: "front" },
|
|
{ type: "separator" },
|
|
{
|
|
role: "window",
|
|
id: "window",
|
|
label: "YesPlayMusic",
|
|
type: "checkbox",
|
|
checked: true,
|
|
click: () => {
|
|
const current = menu.getMenuItemById("window");
|
|
if (current.checked === false) {
|
|
win.hide();
|
|
} else {
|
|
win.show();
|
|
}
|
|
},
|
|
},
|
|
]
|
|
: [{ role: "close" }]),
|
|
],
|
|
},
|
|
{
|
|
label: "Help",
|
|
submenu: [
|
|
{
|
|
label: "GitHub",
|
|
click: async () => {
|
|
const { shell } = require("electron");
|
|
await shell.openExternal("https://github.com/qier222/YesPlayMusic");
|
|
},
|
|
},
|
|
{
|
|
label: "Electron",
|
|
click: async () => {
|
|
const { shell } = require("electron");
|
|
await shell.openExternal("https://electronjs.org");
|
|
},
|
|
},
|
|
{
|
|
label: "开发者工具",
|
|
accelerator: "F12",
|
|
click: () => {
|
|
win.webContents.openDevTools();
|
|
},
|
|
},
|
|
],
|
|
},
|
|
];
|
|
// for window
|
|
// if (process.platform === "win32") {
|
|
// template.push({
|
|
// label: "Help",
|
|
// submenu: [
|
|
// {
|
|
// label: `Current version v${version}`,
|
|
// enabled: false,
|
|
// },
|
|
// {
|
|
// label: "Check for update",
|
|
// accelerator: "Ctrl+U",
|
|
// click: (item, focusedWindow) => {
|
|
// win = focusedWindow;
|
|
// updateSource = "menu";
|
|
// autoUpdater.checkForUpdates();
|
|
// },
|
|
// },
|
|
// ],
|
|
// });
|
|
// }
|
|
menu = Menu.buildFromTemplate(template);
|
|
Menu.setApplicationMenu(menu);
|
|
}
|