Files
Electron.NET/src/ElectronNET.Host/api/app.js

257 lines
9.8 KiB
JavaScript
Raw Normal View History

"use strict";
2026-02-04 11:26:06 +01:00
let isQuitWindowAllClosed = true;
let electronSocket;
let appWindowAllClosedEventId;
module.exports = (socket, app) => {
electronSocket = socket;
// By default, quit when all windows are closed
2026-02-04 11:26:06 +01:00
app.on("window-all-closed", () => {
2017-11-10 01:48:06 +01:00
// On macOS it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
2026-02-04 11:26:06 +01:00
if (process.platform !== "darwin" && isQuitWindowAllClosed) {
2017-11-10 01:48:06 +01:00
app.quit();
}
else if (appWindowAllClosedEventId) {
// If the user is on macOS
// - OR -
// If the user has indicated NOT to quit when all windows are closed,
// emit the event.
2026-02-04 11:26:06 +01:00
electronSocket.emit("app-window-all-closed" + appWindowAllClosedEventId);
}
2017-11-10 01:48:06 +01:00
});
2026-02-04 11:26:06 +01:00
socket.on("quit-app-window-all-closed", (quit) => {
2017-11-10 01:48:06 +01:00
isQuitWindowAllClosed = quit;
});
2026-02-04 11:26:06 +01:00
socket.on("register-app-window-all-closed", (id) => {
appWindowAllClosedEventId = id;
2017-10-14 19:57:49 +02:00
});
2026-02-04 11:26:06 +01:00
socket.on("register-app-before-quit", (id) => {
app.on("before-quit", (event) => {
2017-11-10 01:48:06 +01:00
event.preventDefault();
2026-02-04 11:26:06 +01:00
electronSocket.emit("app-before-quit" + id);
2017-10-14 19:57:49 +02:00
});
});
2026-02-04 11:26:06 +01:00
socket.on("register-app-will-quit", (id) => {
app.on("will-quit", (event) => {
2017-11-10 01:48:06 +01:00
event.preventDefault();
2026-02-04 11:26:06 +01:00
electronSocket.emit("app-will-quit" + id);
2017-10-14 19:57:49 +02:00
});
});
2026-02-04 11:26:06 +01:00
socket.on("register-app-browser-window-blur", (id) => {
app.on("browser-window-blur", () => {
electronSocket.emit("app-browser-window-blur" + id);
2017-10-14 19:57:49 +02:00
});
});
2026-02-04 11:26:06 +01:00
socket.on("register-app-browser-window-focus", (id) => {
app.on("browser-window-focus", () => {
electronSocket.emit("app-browser-window-focus" + id);
2017-10-14 19:57:49 +02:00
});
});
2026-02-04 11:26:06 +01:00
socket.on("register-app-browser-window-created", (id) => {
app.on("browser-window-created", () => {
electronSocket.emit("app-browser-window-created" + id);
2017-10-14 19:57:49 +02:00
});
});
2026-02-04 11:26:06 +01:00
socket.on("register-app-web-contents-created", (id) => {
app.on("web-contents-created", () => {
electronSocket.emit("app-web-contents-created" + id);
2017-10-14 19:57:49 +02:00
});
});
2026-02-04 11:26:06 +01:00
socket.on("register-app-accessibility-support-changed", (id) => {
app.on("accessibility-support-changed", (event, accessibilitySupportEnabled) => {
electronSocket.emit("app-accessibility-support-changed" + id, accessibilitySupportEnabled);
2017-10-14 19:57:49 +02:00
});
});
2026-02-04 11:26:06 +01:00
socket.on("appQuit", () => {
app.quit();
});
2026-02-04 11:26:06 +01:00
socket.on("appExit", (exitCode = 0) => {
app.exit(exitCode);
});
2026-02-04 11:26:06 +01:00
socket.on("appRelaunch", (options) => {
app.relaunch(options);
});
2026-02-04 11:26:06 +01:00
socket.on("appFocus", (options) => {
app.focus(options);
});
2026-02-04 11:26:06 +01:00
socket.on("appHide", () => {
app.hide();
});
2026-02-04 11:26:06 +01:00
socket.on("appShow", () => {
app.show();
});
2026-02-04 11:26:06 +01:00
socket.on("appGetAppPath", () => {
const path = app.getAppPath();
2026-02-04 11:26:06 +01:00
electronSocket.emit("appGetAppPathCompleted", path);
});
2026-02-04 11:26:06 +01:00
socket.on("appSetAppLogsPath", (path) => {
app.setAppLogsPath(path);
});
2026-02-04 11:26:06 +01:00
socket.on("appGetPath", (name) => {
const path = app.getPath(name);
2026-02-04 11:26:06 +01:00
electronSocket.emit("appGetPathCompleted", path);
});
2026-02-04 11:26:06 +01:00
socket.on("appGetFileIcon", async (path, options) => {
let error = {};
if (options) {
2026-02-04 11:26:06 +01:00
const nativeImage = await app
.getFileIcon(path, options)
.catch((errorFileIcon) => (error = errorFileIcon));
electronSocket.emit("appGetFileIconCompleted", [error, nativeImage]);
}
else {
2026-02-04 11:26:06 +01:00
const nativeImage = await app
.getFileIcon(path)
.catch((errorFileIcon) => (error = errorFileIcon));
electronSocket.emit("appGetFileIconCompleted", [error, nativeImage]);
}
});
2026-02-04 11:26:06 +01:00
socket.on("appSetPath", (name, path) => {
app.setPath(name, path);
});
2026-02-04 11:26:06 +01:00
socket.on("appGetVersion", () => {
const version = app.getVersion();
2026-02-04 11:26:06 +01:00
electronSocket.emit("appGetVersionCompleted", version);
});
2026-02-04 11:26:06 +01:00
socket.on("appGetName", () => {
electronSocket.emit("appGetNameCompleted", app.name);
});
2026-02-04 11:26:06 +01:00
socket.on("appSetName", (name) => {
app.name = name;
});
2026-02-04 11:26:06 +01:00
socket.on("appGetLocale", () => {
const locale = app.getLocale();
2026-02-04 11:26:06 +01:00
electronSocket.emit("appGetLocaleCompleted", locale);
});
2026-02-04 11:26:06 +01:00
socket.on("appAddRecentDocument", (path) => {
app.addRecentDocument(path);
});
2026-02-04 11:26:06 +01:00
socket.on("appClearRecentDocuments", () => {
app.clearRecentDocuments();
});
2026-02-04 11:26:06 +01:00
socket.on("appSetAsDefaultProtocolClient", (protocol, path, args) => {
const success = app.setAsDefaultProtocolClient(protocol, path, args);
2026-02-04 11:26:06 +01:00
electronSocket.emit("appSetAsDefaultProtocolClientCompleted", success);
});
2026-02-04 11:26:06 +01:00
socket.on("appRemoveAsDefaultProtocolClient", (protocol, path, args) => {
const success = app.removeAsDefaultProtocolClient(protocol, path, args);
2026-02-04 11:26:06 +01:00
electronSocket.emit("appRemoveAsDefaultProtocolClientCompleted", success);
});
2026-02-04 11:26:06 +01:00
socket.on("appIsDefaultProtocolClient", (protocol, path, args) => {
const success = app.isDefaultProtocolClient(protocol, path, args);
2026-02-04 11:26:06 +01:00
electronSocket.emit("appIsDefaultProtocolClientCompleted", success);
});
2026-02-04 11:26:06 +01:00
socket.on("appSetUserTasks", (tasks) => {
const success = app.setUserTasks(tasks);
2026-02-04 11:26:06 +01:00
electronSocket.emit("appSetUserTasksCompleted", success);
});
2026-02-04 11:26:06 +01:00
socket.on("appGetJumpListSettings", () => {
const jumpListSettings = app.getJumpListSettings();
2026-02-04 11:26:06 +01:00
electronSocket.emit("appGetJumpListSettingsCompleted", jumpListSettings);
});
2026-02-04 11:26:06 +01:00
socket.on("appSetJumpList", (categories) => {
app.setJumpList(categories);
});
2026-02-04 11:26:06 +01:00
socket.on("appRequestSingleInstanceLock", () => {
const success = app.requestSingleInstanceLock();
2026-02-04 11:26:06 +01:00
electronSocket.emit("appRequestSingleInstanceLockCompleted", success);
app.on("second-instance", (event, args = [], workingDirectory = "") => {
electronSocket.emit("secondInstance", [args, workingDirectory]);
});
});
2026-02-04 11:26:06 +01:00
socket.on("appHasSingleInstanceLock", () => {
const hasLock = app.hasSingleInstanceLock();
2026-02-04 11:26:06 +01:00
electronSocket.emit("appHasSingleInstanceLockCompleted", hasLock);
});
2026-02-04 11:26:06 +01:00
socket.on("appReleaseSingleInstanceLock", () => {
app.releaseSingleInstanceLock();
});
2026-02-04 11:26:06 +01:00
socket.on("appSetUserActivity", (type, userInfo, webpageUrl) => {
app.setUserActivity(type, userInfo, webpageUrl);
});
2026-02-04 11:26:06 +01:00
socket.on("appGetCurrentActivityType", () => {
const activityType = app.getCurrentActivityType();
2026-02-04 11:26:06 +01:00
electronSocket.emit("appGetCurrentActivityTypeCompleted", activityType);
});
2026-02-04 11:26:06 +01:00
socket.on("appInvalidateCurrentActivity", () => {
app.invalidateCurrentActivity();
});
2026-02-04 11:26:06 +01:00
socket.on("appResignCurrentActivity", () => {
app.resignCurrentActivity();
});
2026-02-04 11:26:06 +01:00
socket.on("appSetAppUserModelId", (id) => {
app.setAppUserModelId(id);
});
2026-02-04 11:26:06 +01:00
socket.on("appImportCertificate", (options) => {
app.importCertificate(options, (result) => {
2026-02-04 11:26:06 +01:00
electronSocket.emit("appImportCertificateCompleted", result);
});
});
2026-02-04 11:26:06 +01:00
socket.on("appGetAppMetrics", () => {
const processMetrics = app.getAppMetrics();
2026-02-04 11:26:06 +01:00
electronSocket.emit("appGetAppMetricsCompleted", processMetrics);
});
2026-02-04 11:26:06 +01:00
socket.on("appGetGpuFeatureStatus", () => {
const gpuFeatureStatus = app.getGPUFeatureStatus();
2026-02-04 11:26:06 +01:00
electronSocket.emit("appGetGpuFeatureStatusCompleted", gpuFeatureStatus);
});
2026-02-04 11:26:06 +01:00
socket.on("appSetBadgeCount", (count) => {
const success = app.setBadgeCount(count);
2026-02-04 11:26:06 +01:00
electronSocket.emit("appSetBadgeCountCompleted", success);
});
2026-02-04 11:26:06 +01:00
socket.on("appGetBadgeCount", () => {
const count = app.getBadgeCount();
2026-02-04 11:26:06 +01:00
electronSocket.emit("appGetBadgeCountCompleted", count);
});
2026-02-04 11:26:06 +01:00
socket.on("appIsUnityRunning", () => {
const isUnityRunning = app.isUnityRunning();
2026-02-04 11:26:06 +01:00
electronSocket.emit("appIsUnityRunningCompleted", isUnityRunning);
});
2026-02-04 11:26:06 +01:00
socket.on("appGetLoginItemSettings", (options) => {
const loginItemSettings = app.getLoginItemSettings(options);
2026-02-04 11:26:06 +01:00
electronSocket.emit("appGetLoginItemSettingsCompleted", loginItemSettings);
});
2026-02-04 11:26:06 +01:00
socket.on("appSetLoginItemSettings", (settings) => {
app.setLoginItemSettings(settings);
});
2026-02-04 11:26:06 +01:00
socket.on("appIsAccessibilitySupportEnabled", () => {
const isAccessibilitySupportEnabled = app.isAccessibilitySupportEnabled();
2026-02-04 11:26:06 +01:00
electronSocket.emit("appIsAccessibilitySupportEnabledCompleted", isAccessibilitySupportEnabled);
});
2026-02-04 11:26:06 +01:00
socket.on("appSetAccessibilitySupportEnabled", (enabled) => {
app.setAccessibilitySupportEnabled(enabled);
});
2026-02-04 11:26:06 +01:00
socket.on("appShowAboutPanel", () => {
app.showAboutPanel();
});
2026-02-04 11:26:06 +01:00
socket.on("appSetAboutPanelOptions", (options) => {
app.setAboutPanelOptions(options);
});
2026-02-04 11:26:06 +01:00
socket.on("appGetUserAgentFallback", () => {
electronSocket.emit("appGetUserAgentFallbackCompleted", app.userAgentFallback);
2020-05-19 11:59:11 +02:00
});
2026-02-04 11:26:06 +01:00
socket.on("appSetUserAgentFallback", (userAgent) => {
2020-05-19 11:59:11 +02:00
app.userAgentFallback = userAgent;
});
2026-02-04 11:26:06 +01:00
socket.on("register-app-on-event", (eventName, listenerName) => {
app.on(eventName, (...args) => {
if (args.length > 1) {
electronSocket.emit(listenerName, args[1]);
}
else {
electronSocket.emit(listenerName);
}
});
});
2026-02-04 11:26:06 +01:00
socket.on("register-app-once-event", (eventName, listenerName) => {
app.once(eventName, (...args) => {
if (args.length > 1) {
electronSocket.emit(listenerName, args[1]);
}
else {
electronSocket.emit(listenerName);
}
});
});
};
//# sourceMappingURL=app.js.map