'use strict'
const { app, ipcMain, BrowserWindow, Menu, Tray } = require("electron")
const fs = require("fs")
const path = require("path")
let mainWindow;
let tray = null
function createWindow () {
if (process.platform === "linux" && process.env.APPDIR != null) {
tray = new Tray(path.join(process.env.APPDIR, "testapp.png"))
const contextMenu = Menu.buildFromTemplate([
{label: 'Item1', type: 'radio'},
{label: 'Item2', type: 'radio'},
{label: 'Item3', type: 'radio', checked: true},
{label: 'Item4', type: 'radio'}
])
tray.setToolTip('This is my application.')
tray.setContextMenu(contextMenu)
}
mainWindow = new BrowserWindow({width: 800, height: 600});
mainWindow.loadURL('file://' + __dirname + '/index.html');
mainWindow.webContents.openDevTools();
mainWindow.webContents.executeJavaScript(`console.log("appData: ${app.getPath("appData").replace(/\\/g, "\\\\")}")`)
mainWindow.webContents.executeJavaScript(`console.log("userData: ${app.getPath("userData").replace(/\\/g, "\\\\")}")`)
mainWindow.on('closed', function() {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on("activate", function () {
if (mainWindow === null) {
createWindow()
}
})
ipcMain.on("saveAppData", () => {
try {
fs.writeFileSync(path.join(app.getPath("appData"), "Test App ßW", "testFile"), "test")
}
catch (e) {
mainWindow.webContents.executeJavaScript(`console.log(\`userData: ${e}\`)`)
}
})