Initial clean project import
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
import {app, Menu, Tray} from "electron";
|
||||
import {trayPath} from "./icon";
|
||||
import {AppRuntime} from "../mapi/env";
|
||||
import {AppConfig} from "../../src/config";
|
||||
import {t} from "./lang";
|
||||
import {isMac, isWin} from "../lib/env";
|
||||
|
||||
let tray = null;
|
||||
|
||||
const showApp = () => {
|
||||
if (isMac) {
|
||||
app.dock.show();
|
||||
}
|
||||
AppRuntime.mainWindow.show();
|
||||
};
|
||||
|
||||
const hideApp = () => {
|
||||
if (isMac) {
|
||||
app.dock.hide();
|
||||
}
|
||||
AppRuntime.mainWindow.hide();
|
||||
};
|
||||
|
||||
const quitApp = () => {
|
||||
app.quit();
|
||||
};
|
||||
|
||||
const ready = () => {
|
||||
try {
|
||||
tray = new Tray(trayPath);
|
||||
} catch (err) {
|
||||
console.error('[Tray] Failed to create tray:', err);
|
||||
return;
|
||||
}
|
||||
|
||||
tray.setToolTip(AppConfig.title);
|
||||
|
||||
if (isWin) {
|
||||
tray.on("click", () => {
|
||||
showApp();
|
||||
});
|
||||
}
|
||||
|
||||
const contextMenu = Menu.buildFromTemplate([
|
||||
{
|
||||
label: t("显示主界面"),
|
||||
click: () => {
|
||||
showApp();
|
||||
},
|
||||
},
|
||||
{
|
||||
label: t("重启"),
|
||||
click: () => {
|
||||
app.relaunch();
|
||||
quitApp();
|
||||
},
|
||||
},
|
||||
{
|
||||
label: t("退出"),
|
||||
click: () => {
|
||||
quitApp();
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
||||
tray.setContextMenu(contextMenu);
|
||||
};
|
||||
|
||||
const show = () => {
|
||||
if (tray) {
|
||||
tray.destroy();
|
||||
tray = null;
|
||||
}
|
||||
};
|
||||
|
||||
export const ConfigTray = {
|
||||
ready,
|
||||
};
|
||||
Reference in New Issue
Block a user