123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- import { app, ipcMain, BrowserWindow, Menu, Tray } from 'electron'
- import Autolaunch from 'auto-launch'
- import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer'
- import { enableLiveReload } from 'electron-compile'
- import { readSettings, writeSettings } from './settings'
- import { createServer, restartServer } from './server'
- let win
- let tray
- let settings = readSettings()
- // const isDevMode = process.execPath.match(/[\\/]electron/)
- const isDevMode = settings.appMode === 'development'
- if (isDevMode) {
- enableLiveReload()
- }
- /**
- *
- */
- const createWindow = async () => {
- if (win) {
- win.show()
- return
- }
- win = new BrowserWindow({
- title: settings.appName,
- titleBarStyle: 'hidden',
- width: 350,
- height: 480,
- maximizable: isDevMode,
- resizable: isDevMode,
- center: true,
- show: false
- })
-
- win.setMenuBarVisibility(false)
- win.loadURL(`file://${__dirname}/index.html`)
- if (isDevMode) {
- await installExtension(VUEJS_DEVTOOLS)
- win.webContents.openDevTools()
- }
- win.once('ready-to-show', () => {
- win.show()
- })
- win.on('show', () => {
- tray.setHighlightMode('always')
- })
- win.on('hide', () => {
- tray.setHighlightMode('never')
- })
- win.on('close', e => {
- e.preventDefault()
- win.hide()
- })
- win.on('closed', () => {
- win = null
- })
- }
- /**
- *
- */
- const exitApp = async () => {
- if (process.platform !== 'darwin') {
- app.exit()
- }
- }
- /**
- * Create system tray app
- */
- const createTray = async () => {
- tray = new Tray('./res/printer.png')
- tray.setToolTip(settings.appName)
- const contextMenu = Menu.buildFromTemplate([
- {
- label: 'Configuración',
- click: () => createWindow()
- },
- {
- label: 'Salir',
- click: () => exitApp()
- }
- ])
- tray.setContextMenu(contextMenu)
- }
- app.on('ready', async () => {
- await createTray()
- await createServer()
- });
- ipcMain.on('read-port', e => {
- settings = readSettings()
- e.returnValue = settings.server.port
- })
- ipcMain.on('save-port', (e, port) => {
- settings.server.port = port
- writeSettings(settings)
-
- e.returnValue = port
- })
- ipcMain.on('restart-server', async e => {
- await restartServer()
- e.sender.send('server-restarted')
- })
|