59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
const electron = require('electron');
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
const app = electron.app;
|
|
const BrowserWindow = electron.BrowserWindow;
|
|
|
|
var mainWindow = null;
|
|
|
|
electron.ipcMain.on('show-window', (event, arg) => {
|
|
if (arg.width && arg.height) mainWindow.setContentSize(arg.width, arg.height);
|
|
if (arg.title) mainWindow.setTitle(arg.title);
|
|
if (arg.x != -1 && arg.y != -1) {
|
|
mainWindow.setPosition(arg.x, arg.y);
|
|
}
|
|
else {
|
|
mainWindow.center();
|
|
}
|
|
mainWindow.show();
|
|
});
|
|
|
|
electron.ipcMain.on('load-blob', (event, arg) => {
|
|
let url = null;
|
|
if (path.isAbsolute(arg.file)) {
|
|
url = arg.file;
|
|
}
|
|
else {
|
|
url = path.join(__dirname, arg.file);
|
|
}
|
|
try {
|
|
const data = fs.readFileSync(url);
|
|
mainWindow.webContents.send('blob-loaded', {id: arg.id, data: data});
|
|
}
|
|
catch (err) {
|
|
mainWindow.webContents.send('blob-failed', {id: arg.id, url: url, error: err});
|
|
}
|
|
});
|
|
|
|
app.on('window-all-closed', function () {
|
|
app.quit();
|
|
});
|
|
|
|
app.on('ready', function () {
|
|
mainWindow = new BrowserWindow({
|
|
width: {Width}, height: {Height},
|
|
show: false, useContentSize: true, autoHideMenuBar: true,
|
|
icon: app.getAppPath() + '/favicon' + {ext},
|
|
webPreferences: {
|
|
contextIsolation: true,
|
|
preload: path.join(app.getAppPath(), 'preload.js')
|
|
}
|
|
});
|
|
mainWindow.loadURL('file://' + app.getAppPath() + '/index.html');
|
|
mainWindow.on('closed', function() {
|
|
mainWindow = null;
|
|
});
|
|
});
|