|
1 | 1 | const electron = require('electron') |
2 | 2 | const app = electron.app |
3 | | -const Tray = electron.Tray |
4 | 3 | const Menu = electron.Menu |
5 | | -const MenuItem = electron.MenuItem |
6 | 4 | const ipcMain = electron.ipcMain |
7 | 5 | const path = require('path') |
8 | 6 |
|
9 | | -const nodeIpc = require('node-ipc') |
10 | | - |
11 | 7 | var finderWindow = null |
12 | | -var isFinderLoaded = false |
13 | | - |
14 | | -function hideFinder () { |
15 | | - if (!isFinderLoaded) return false |
16 | | - |
17 | | - if (process.platform === 'darwin') { |
18 | | - Menu.sendActionToFirstResponder('hide:') |
19 | | - } |
20 | | - if (process.platform === 'win32') { |
21 | | - finderWindow.minimize() |
22 | | - } |
23 | | - finderWindow.hide() |
24 | | -} |
25 | | - |
26 | | -function showFinder () { |
27 | | - if (!isFinderLoaded) return false |
28 | | - |
29 | | - if (!finderWindow.isVisible()) { |
30 | | - finderWindow.show() |
31 | | - } |
32 | | - if (process.platform === 'win32') { |
33 | | - finderWindow.minimize() |
34 | | - finderWindow.restore() |
35 | | - } |
36 | | -} |
37 | | - |
38 | | -nodeIpc.config.id = 'finder' |
39 | | -nodeIpc.config.retry = 1500 |
40 | | -nodeIpc.config.silent = true |
41 | | - |
42 | | -nodeIpc.connectTo( |
43 | | - 'main', |
44 | | - path.join(app.getPath('userData'), 'boost.service'), |
45 | | - function () { |
46 | | - nodeIpc.of.main.on( |
47 | | - 'connect', |
48 | | - function () { |
49 | | - nodeIpc.log('<< ## connected to world ##'.rainbow, nodeIpc.config.delay) |
50 | | - } |
51 | | - ) |
52 | | - nodeIpc.of.main.on( |
53 | | - 'disconnect', |
54 | | - function(){ |
55 | | - nodeIpc.log('<< disconnected from main'.notice) |
56 | | - } |
57 | | - ) |
58 | | - nodeIpc.of.main.on( |
59 | | - 'message', |
60 | | - function (payload) { |
61 | | - switch (payload.type) { |
62 | | - case 'open-finder': |
63 | | - showFinder() |
64 | | - break |
65 | | - } |
66 | | - } |
67 | | - ) |
68 | | - } |
69 | | -) |
70 | | - |
71 | | -function emit (type, data) { |
72 | | - var payload = { |
73 | | - type: type, |
74 | | - data: data |
75 | | - } |
76 | | - nodeIpc.of.main.emit('message', payload) |
77 | | -} |
78 | 8 |
|
79 | 9 | var appQuit = false |
80 | 10 | app.on('ready', function () { |
81 | 11 | if (process.platform === 'darwin') { |
82 | 12 | app.dock.hide() |
83 | 13 | } |
84 | 14 |
|
85 | | - var appIcon = new Tray(__dirname + '/resources/tray-icon.png') |
86 | | - appIcon.setToolTip('Boost') |
87 | | - |
88 | 15 | var template = require('./atom-lib/menu-template') |
89 | 16 | var menu = Menu.buildFromTemplate(template) |
90 | 17 | Menu.setApplicationMenu(menu) |
91 | 18 |
|
92 | 19 | finderWindow = require('./atom-lib/finder-window') |
93 | | - finderWindow.webContents.on('did-finish-load', function () { |
94 | | - var trayMenu = new Menu() |
95 | | - trayMenu.append(new MenuItem({ |
96 | | - label: 'Open Main window', |
97 | | - click: function () { |
98 | | - emit('show-main-window') |
99 | | - } |
100 | | - })) |
101 | | - trayMenu.append(new MenuItem({ |
102 | | - label: 'Open Finder window', |
103 | | - click: function () { |
104 | | - showFinder() |
105 | | - } |
106 | | - })) |
107 | | - trayMenu.append(new MenuItem({ |
108 | | - label: 'Quit', |
109 | | - click: function () { |
110 | | - emit('quit-app') |
111 | | - } |
112 | | - })) |
113 | | - appIcon.setContextMenu(trayMenu) |
114 | | - appIcon.on('click', function (e) { |
115 | | - e.preventDefault() |
116 | | - appIcon.popUpContextMenu(trayMenu) |
117 | | - }) |
118 | | - |
119 | | - ipcMain.on('copy-finder', function () { |
120 | | - emit('copy-finder') |
121 | | - }) |
122 | | - |
123 | | - ipcMain.on('hide-finder', function () { |
124 | | - hideFinder() |
125 | | - }) |
126 | | - |
127 | | - isFinderLoaded = true |
128 | | - }) |
129 | | - |
130 | | - finderWindow.on('blur', function () { |
131 | | - hideFinder() |
132 | | - }) |
133 | 20 |
|
134 | 21 | finderWindow.on('close', function (e) { |
135 | 22 | if (appQuit) return true |
136 | 23 | e.preventDefault() |
137 | | - hideFinder() |
| 24 | + finderWindow.hide() |
138 | 25 | }) |
139 | 26 | }) |
140 | 27 |
|
0 commit comments