From e5accdc939bf5f9d123cd3c9258107b823a594e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Farkas=20J=C3=B3zsef?= Date: Sun, 4 Sep 2016 19:47:27 +0200 Subject: [PATCH] Add experimental electron support --- electron/main.js | 57 ++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 5 ++++- 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 electron/main.js diff --git a/electron/main.js b/electron/main.js new file mode 100644 index 00000000..a349d367 --- /dev/null +++ b/electron/main.js @@ -0,0 +1,57 @@ +const {app, BrowserWindow} = require('electron'); +const path = require("path"); + +// Keep a global reference of the window object, if you don't, the window will +// be closed automatically when the JavaScript object is garbage collected. +let win; + +function createWindow() { + // Create the browser window. + win = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + nodeIntegration: false + } + }); + + const indexPath = path.resolve(__dirname, '../dist/index.html'); + // and load the index.html of the app. + win.loadURL(`file://${indexPath}`) + + // Open the DevTools. + win.webContents.openDevTools() + + // Emitted when the window is closed. + win.on('closed', () => { + // Dereference the window object, usually you would store windows + // in an array if your app supports multi windows, this is the time + // when you should delete the corresponding element. + win = null; + }) +} + +// This method will be called when Electron has finished +// initialization and is ready to create browser windows. +// Some APIs can only be used after this event occurs. +app.on('ready', createWindow) + +// Quit when all windows are closed. +app.on('window-all-closed', () => { + // On macOS it is common for applications and their menu bar + // to stay active until the user quits explicitly with Cmd + Q + if (process.platform !== 'darwin') { + app.quit(); + } +}) + +app.on('activate', () => { + // On macOS it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (win === null) { + createWindow() + } +}) + +// In this file you can include the rest of your app's specific main process +// code. You can also put them in separate files and require them here \ No newline at end of file diff --git a/package.json b/package.json index c922a671..f812fb33 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "uhk-agent", "version": "0.0.1", "description": "Agent is the configuration application of the Ultimate Hacking Keyboard.", + "main": "electron/main.js", "repository": { "type": "git", "url": "git@github.com:UltimateHackingKeyboard/agent.git" @@ -12,6 +13,7 @@ "@types/jquery": "1.10.31", "@types/node": "6.0.38", "copy-webpack-plugin": "^3.0.1", + "electron": "1.3.5", "gulp": "^3.9.1", "gulp-if": "^2.0.1", "gulp-sass": "^2.3.2", @@ -59,6 +61,7 @@ "lint": "run-s -scn tslint stylelint", "build": "gulp", "build:test": "webpack --config \"test-serializer/webpack.config.js\"", - "dev": "webpack-dev-server --config \"src/webpack.config.js\" --content-base \"./dist\"" + "dev": "webpack-dev-server --config \"src/webpack.config.js\" --content-base \"./dist\"", + "electron": "electron ." } }