@@ -6,6 +6,8 @@ const registerIPCHandlers = require('./backend/ipc.js')
6
6
const registerMenu = require ( './backend/menu.js' )
7
7
8
8
let win = null // main window
9
+ let splash = null
10
+ let splashTimeout = null
9
11
10
12
// START APP
11
13
function createWindow ( ) {
@@ -17,23 +19,37 @@ function createWindow () {
17
19
nodeIntegration : false ,
18
20
webSecurity : true ,
19
21
enableRemoteModule : false ,
20
- preload : path . join ( __dirname , "preload.js" )
22
+ preload : path . join ( __dirname , "preload.js" ) ,
23
+ show : false
21
24
}
22
25
} )
23
26
// and load the index.html of the app.
24
27
win . loadFile ( 'ui/arduino/index.html' )
28
+ // If the app takes a while to open, show splash screen
29
+ splashTimeout = setTimeout ( ( ) => {
30
+ // Create the splash screen
31
+ splash = new BrowserWindow ( {
32
+ width : 560 ,
33
+ height : 180 ,
34
+ transparent : true ,
35
+ frame : false ,
36
+ alwaysOnTop : true
37
+ } ) ;
38
+ splash . loadFile ( 'ui/arduino/splash.html' )
39
+ } , 250 )
40
+
41
+ win . once ( 'ready-to-show' , ( ) => {
42
+ clearTimeout ( splashTimeout )
43
+ if ( splash ) splash . destroy ( )
44
+ win . show ( )
45
+ } )
25
46
26
47
registerIPCHandlers ( win , ipcMain , app )
27
48
registerMenu ( win )
28
49
29
50
app . on ( 'activate' , ( ) => {
30
51
if ( BrowserWindow . getAllWindows ( ) . length === 0 ) createWindow ( )
31
52
} )
32
- // app.on('window-all-closed', () => {
33
- // if (process.platform !== 'darwin') app.quit()
34
- // })
35
53
}
36
54
37
-
38
- // TODO: Loading splash screen
39
- app . whenReady ( ) . then ( createWindow )
55
+ app . on ( 'ready' , createWindow )
0 commit comments