main.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const { app, BrowserWindow, Menu, ipcMain } = require('electron/main')
  2. const path = require('node:path')
  3. function createWindow () {
  4. const mainWindow = new BrowserWindow({
  5. webPreferences: {
  6. preload: path.join(__dirname, 'preload.js')
  7. }
  8. })
  9. const menu = Menu.buildFromTemplate([
  10. {
  11. label: app.name,
  12. submenu: [
  13. {
  14. click: () => mainWindow.webContents.send('update-counter', 1),
  15. label: 'Increment'
  16. },
  17. {
  18. click: () => mainWindow.webContents.send('update-counter', -1),
  19. label: 'Decrement'
  20. }
  21. ]
  22. }
  23. ])
  24. Menu.setApplicationMenu(menu)
  25. mainWindow.loadFile('index.html')
  26. // Open the DevTools.
  27. mainWindow.webContents.openDevTools()
  28. }
  29. app.whenReady().then(() => {
  30. ipcMain.on('counter-value', (_event, value) => {
  31. console.log(value) // will print value to Node console
  32. })
  33. createWindow()
  34. app.on('activate', function () {
  35. if (BrowserWindow.getAllWindows().length === 0) createWindow()
  36. })
  37. })
  38. app.on('window-all-closed', function () {
  39. if (process.platform !== 'darwin') app.quit()
  40. })