ComunicDesktop/modules/MainWindow.js

79 lines
1.6 KiB
JavaScript

/**
* Main Window script
*
* @author The Comunic authors
*/
const electron = require('electron');
const BrowserWindow = electron.BrowserWindow;
const {Menu, Tray} = require('electron');
const Config = require("../Config");
const TrayMenu = require("./TrayMenu");
const ApplicationMenu = require("./ApplicationMenu");
const fs = require("fs");
let mainWindow;
let tray = null;
let page_finished_loading = false;
/**
* Show main window
*/
exports.show = function(){
//Create and show main window
mainWindow = new BrowserWindow({
icon:'icon.png',
webPreferences: {
nodeIntegration: false
},
//show: false
});
//mainWindow.maximize();
//set the url which must be open
mainWindow.loadURL(Config.access_url);
mainWindow.on('closed', () =>{
//To close the window
mainWindow = null;
});
//Create tray
tray = new Tray('./icon.png');
tray.setToolTip('Comunic');
tray.setContextMenu(TrayMenu);
console.log("Started successfully");
//Set application menu
Menu.setApplicationMenu(ApplicationMenu.Get(mainWindow));
mainWindow.once('ready-to-show', () => {
mainWindow.show();
});
mainWindow.webContents.on('did-finish-load', function() {
page_finished_loading = true;
//Inject CSS
fs.readFile("./app.css", (err, data) => {
//Check for errors
if(err){
console.error("Error while loading ./app.css: " + err);
return;
}
let style = data.toString();
mainWindow.webContents.executeJavaScript("let style = document.createElement('style');" +
"style.innerHTML = decodeURIComponent(\""+encodeURIComponent(style)+"\");" +
"document.head.appendChild(style);");
});
});
}