memex/main.js

103 lines
2.1 KiB
JavaScript
Raw Normal View History

2018-07-21 11:23:06 +00:00
const {app, BrowserWindow, webFrame, Menu} = require('electron')
const path = require('path')
const url = require('url')
const shell = require('electron').shell;
const fs = require('fs');
2018-08-05 15:19:05 +00:00
const { ipcMain } = require('electron');
2018-07-21 11:23:06 +00:00
let is_shown = true;
this.handleRedirect = (e, url) =>
{
if(url != app.win.webContents.getURL())
{
e.preventDefault()
require('electron').shell.openExternal(url)
}
}
app.inspect = function()
{
app.win.toggleDevTools();
}
app.toggle_fullscreen = function()
{
app.win.setFullScreen(app.win.isFullScreen() ? false : true);
}
app.toggle_visible = function()
{
if(process.platform == "win32"){
if(!app.win.isMinimized()){ app.win.minimize(); } else{ app.win.restore(); }
} else {
if(is_shown){ app.win.hide(); } else{ app.win.show(); }
}
}
app.inject_menu = function(m)
{
Menu.setApplicationMenu(Menu.buildFromTemplate(m));
}
app.path = function()
{
return __dirname
}
app.win = null;
app.on('ready', () =>
{
app.win = new BrowserWindow({
webPreferences: {
nodeIntegration: true
2018-07-22 17:44:46 +00:00
}, width: 950, height: 950, backgroundColor:"#ddd", minWidth: 587, minHeight: 540, frame:true, autoHideMenuBar: true, icon: __dirname + '/icon.ico'})
2018-07-21 11:23:06 +00:00
app.win.loadURL(`file://${__dirname}/docs/index.html`);
2018-07-21 11:23:06 +00:00
// app.win.toggleDevTools();
app.win.on('closed', () => {
win = null
app.quit()
})
app.win.on('hide',function() {
is_shown = false;
})
app.win.on('show',function() {
is_shown = true;
})
// app.win.webContents.on('new-window', function(event, url){
// event.preventDefault();
// // open(url);
// console.log('CALLED NEW WIN');
// child_process.execSync('start ' + url)
// })
app.win.webContents.on('will-navigate', this.handleRedirect)
app.win.webContents.on('new-window', this.handleRedirect)
})
app.on('window-all-closed', () =>
{
app.quit()
})
app.on('activate', () => {
if (app.win === null) {
createWindow()
}
})
2018-08-05 15:19:05 +00:00
ipcMain.on('write', (event, arg) =>
{
console.log('Write called! Entry = ' + arg);
let foo = fs.openSync('foo.txt','r+');
let buf = new Buffer(arg);
fs.writeSync(foo, buf, 0, buf.length, 5);
fs.close(foo);
});