mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-23 14:41:44 +00:00
using ipc but not working in production
This commit is contained in:
82
finder.js
Executable file
82
finder.js
Executable file
@@ -0,0 +1,82 @@
|
||||
const electron = require('electron')
|
||||
const app = electron.app
|
||||
const Tray = electron.Tray
|
||||
const Menu = electron.Menu
|
||||
const MenuItem = electron.MenuItem
|
||||
const ipc = electron.ipcMain
|
||||
|
||||
process.stdin.setEncoding('utf8')
|
||||
|
||||
console.log = function () {
|
||||
process.stdout.write(JSON.stringify({
|
||||
type: 'log',
|
||||
data: JSON.stringify(Array.prototype.slice.call(arguments).join(' '))
|
||||
}))
|
||||
}
|
||||
|
||||
function emit (type, data) {
|
||||
process.stdout.write(JSON.stringify({
|
||||
type: type,
|
||||
data: JSON.stringify(data)
|
||||
}))
|
||||
}
|
||||
|
||||
var finderWindow
|
||||
app.on('ready', function () {
|
||||
app.dock.hide()
|
||||
var appIcon = new Tray(__dirname + '/resources/tray-icon.png')
|
||||
appIcon.setToolTip('Boost')
|
||||
|
||||
finderWindow = require('./atom-lib/finder-window')
|
||||
finderWindow.webContents.on('did-finish-load', function () {
|
||||
var trayMenu = new Menu()
|
||||
trayMenu.append(new MenuItem({
|
||||
label: 'Open Main window',
|
||||
click: function () {
|
||||
emit('show-main-window')
|
||||
}
|
||||
}))
|
||||
trayMenu.append(new MenuItem({
|
||||
label: 'Open Finder',
|
||||
click: function () {
|
||||
finderWindow.show()
|
||||
}
|
||||
}))
|
||||
trayMenu.append(new MenuItem({
|
||||
label: 'Quit',
|
||||
click: function () {
|
||||
emit('quit-app')
|
||||
}
|
||||
}))
|
||||
appIcon.setContextMenu(trayMenu)
|
||||
|
||||
ipc.on('request-data', function () {
|
||||
emit('request-data')
|
||||
})
|
||||
|
||||
process.stdin.on('data', function (payload) {
|
||||
try {
|
||||
payload = JSON.parse(payload)
|
||||
} catch (e) {
|
||||
console.log('Not parsable payload : ', payload)
|
||||
return
|
||||
}
|
||||
console.log('from main >> ', payload.type)
|
||||
switch (payload.type) {
|
||||
case 'open-finder':
|
||||
finderWindow.show()
|
||||
break
|
||||
case 'refresh-data':
|
||||
finderWindow.webContents.send('refresh-data', payload.data)
|
||||
break
|
||||
}
|
||||
})
|
||||
|
||||
emit('request-data')
|
||||
})
|
||||
|
||||
global.hideFinder = function () {
|
||||
Menu.sendActionToFirstResponder('hide:')
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user