// main.js

// Modules to control application life and create native browser window
const { app, BrowserWindow, ipcMain, globalShortcut  } = require('electron');
const path = require('path');
const url = require('url');

const createWindow = () => {
  // Create the browser window.
  const mainWindow = new BrowserWindow({
    //width: 800,
    //height: 600,
    //webPreferences: {
    //  preload: path.join(__dirname, 'preload.js')
    //}
    fullscreen: true,
    autoHideMenuBar: true, // Nasconde la barra del menu
    webPreferences: {
        nodeIntegration: true, 
        contextIsolation: false,
        }
  })
  

  //console.log(webContents)

  // and load the index.html of the app.
  //mainWindow.maximize();
  mainWindow.loadFile('myapp1.html')
  // mainWindow.loadURL('http://localhost/myapp1.html')

  // Carica il file HTML locale.
  //mainWindow.loadURL(url.format({
  //  pathname: path.join(__dirname, 'index.html'),
  // protocol: 'file:',
  //  slashes: true
  //}));
  //
  ipcMain.on('minimize-window', () => {
    mainWindow.minimize();
  });
  
  ipcMain.on('function-1', () => {
    mainWindow.minimize();
  });

  ipcMain.on('maximize-window', () => {
    if (mainWindow.isMaximized()) {
      mainWindow.unmaximize();
    } else {
      mainWindow.maximize();
    }
  });

  ipcMain.on('reload-window', () => {
    mainWindow.reload();
  });
 
  // Gestisci l'evento di click sul link.
  mainWindow.webContents.on('did-finish-load', () => {
  
  mainWindow.webContents.executeJavaScript(`

     const closeLink = document.getElementById('close-link');
     closeLink.addEventListener('click', () => {
       window.close();
     });

    `);
  
  });

  globalShortcut.register('Esc', () => {
    mainWindow.setFullScreen(false);
  });

  globalShortcut.register('CTRL + a', () => {
    mainWindow.setFullScreen(false);
  });

  // Open the DevTools.
   mainWindow.webContents.openDevTools()
}

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.whenReady().then(() => {
  createWindow()
  
  app.on('activate', () => {
    // On macOS it's common to re-create a window in the app when the
    // dock icon is clicked and there are no other windows open.
    if (BrowserWindow.getAllWindows().length === 0) createWindow()
  })
})

// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit()
})

// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and require them here.


