48 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const { app, BrowserWindow, Menu, ipcMain } = require('electron/main')
 | 
						|
const path = require('node:path')
 | 
						|
 | 
						|
function createWindow () {
 | 
						|
  const mainWindow = new BrowserWindow({
 | 
						|
    webPreferences: {
 | 
						|
      preload: path.join(__dirname, 'preload.js')
 | 
						|
    }
 | 
						|
  })
 | 
						|
 | 
						|
  const menu = Menu.buildFromTemplate([
 | 
						|
    {
 | 
						|
      label: app.name,
 | 
						|
      submenu: [
 | 
						|
        {
 | 
						|
          click: () => mainWindow.webContents.send('update-counter', 1),
 | 
						|
          label: 'Increment'
 | 
						|
        },
 | 
						|
        {
 | 
						|
          click: () => mainWindow.webContents.send('update-counter', -1),
 | 
						|
          label: 'Decrement'
 | 
						|
        }
 | 
						|
      ]
 | 
						|
    }
 | 
						|
 | 
						|
  ])
 | 
						|
 | 
						|
  Menu.setApplicationMenu(menu)
 | 
						|
  mainWindow.loadFile('index.html')
 | 
						|
 | 
						|
  // Open the DevTools.
 | 
						|
  mainWindow.webContents.openDevTools()
 | 
						|
}
 | 
						|
 | 
						|
app.whenReady().then(() => {
 | 
						|
  ipcMain.on('counter-value', (_event, value) => {
 | 
						|
    console.log(value) // will print value to Node console
 | 
						|
  })
 | 
						|
  createWindow()
 | 
						|
 | 
						|
  app.on('activate', function () {
 | 
						|
    if (BrowserWindow.getAllWindows().length === 0) createWindow()
 | 
						|
  })
 | 
						|
})
 | 
						|
 | 
						|
app.on('window-all-closed', function () {
 | 
						|
  if (process.platform !== 'darwin') app.quit()
 | 
						|
})
 |