electron launcher
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

52 lines
1.8 KiB

const {MAIN_WINDOW_FLAG, MAIN_WINDOW_URL} = require("../constant")
const {createWindow} = require('./lib/common')
const {BrowserWindow} = require('electron')
const {create: createSuspensionWindow} = require('./suspension');
const screen = require("./screen.json");
const create = () => {
const windows = BrowserWindow.getAllWindows()
const found = windows.find((window) => {
return window[MAIN_WINDOW_FLAG]
})
if (found) {
found.show();
found.center();
found.maximize();
return found;
} else {
let areaSize = require('electron').screen.getPrimaryDisplay().workAreaSize;
let width = areaSize.width;
let height = areaSize.height;
let resizable = true;
if (screen.width > 0 && screen.height > 0) {
const ratios = screen.width / screen.height;
height = areaSize.height;
width = Math.floor(areaSize.height * ratios);
resizable = false;
}
const win = createWindow(MAIN_WINDOW_URL, {
//alwaysOnTop: true, //窗口是否总是显示在其他窗口之前
fullscreen: true,
offScreen: false,
frame: false, //要创建无边框窗口
width: width, //悬浮窗口的宽度 比实际DIV的宽度要多2px 因为有1px的边框
height: height, //悬浮窗口的高度 比实际DIV的高度要多2px 因为有1px的边框
resizable: resizable, //禁止窗口大小缩放
show: false, //先不让窗口显示
backgroundColor: "#0a0a0a"
})
win[MAIN_WINDOW_FLAG] = true
win.on('ready-to-show', () => {
win.show();
});
win.on('hide', () => {
createSuspensionWindow();
});
return create();
}
}
module.exports = {create}