mirror of
https://github.com/Kuingsmile/PicList.git
synced 2026-05-12 19:40:12 +08:00
64 lines
2.5 KiB
TypeScript
64 lines
2.5 KiB
TypeScript
import db from '@core/datastore'
|
|
import windowManager from 'apis/app/window/windowManager'
|
|
import { screen } from 'electron'
|
|
|
|
import { configPaths } from '~/utils/configPaths'
|
|
import { IWindowList } from '~/utils/enum'
|
|
|
|
export function openMiniWindow (hideSettingWindow: boolean = true) {
|
|
const miniWindow = windowManager.get(IWindowList.MINI_WINDOW)!
|
|
miniWindow.removeAllListeners()
|
|
if (db.get(configPaths.settings.miniWindowOntop)) {
|
|
miniWindow.setAlwaysOnTop(true)
|
|
}
|
|
const { width, height } = screen.getPrimaryDisplay().workAreaSize
|
|
const lastPosition = db.get(configPaths.settings.miniWindowPosition)
|
|
const setPositionFunc = () => {
|
|
const position = miniWindow.getPosition()
|
|
db.set(configPaths.settings.miniWindowPosition, position)
|
|
}
|
|
if (lastPosition) {
|
|
if (lastPosition[0] < 0 || lastPosition[0] > width || lastPosition[1] < 0 || lastPosition[1] > height) {
|
|
miniWindow.setPosition(width - 100, height - 100)
|
|
db.set(configPaths.settings.miniWindowPosition, [width - 100, height - 100])
|
|
} else if (lastPosition[0] + miniWindow.getSize()[0] > width || lastPosition[1] + miniWindow.getSize()[1] > height) {
|
|
miniWindow.setPosition(width - miniWindow.getSize()[0], height - miniWindow.getSize()[1])
|
|
db.set(configPaths.settings.miniWindowPosition, [width - miniWindow.getSize()[0], height - miniWindow.getSize()[1]])
|
|
} else {
|
|
miniWindow.setPosition(lastPosition[0], lastPosition[1])
|
|
}
|
|
} else {
|
|
miniWindow.setPosition(width - 100, height - 100)
|
|
}
|
|
|
|
miniWindow.on('close', setPositionFunc)
|
|
miniWindow.on('move', setPositionFunc)
|
|
miniWindow.show()
|
|
miniWindow.focus()
|
|
if (hideSettingWindow) {
|
|
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)!
|
|
settingWindow.hide()
|
|
} else {
|
|
const autoCloseMainWindow = db.get(configPaths.settings.autoCloseMainWindow) || false
|
|
if (windowManager.has(IWindowList.SETTING_WINDOW) && autoCloseMainWindow) {
|
|
windowManager.get(IWindowList.SETTING_WINDOW)!.hide()
|
|
}
|
|
}
|
|
}
|
|
|
|
export const openMainWindow = () => {
|
|
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
|
|
const autoCloseMiniWindow = db.get(configPaths.settings.autoCloseMiniWindow) || false
|
|
settingWindow!.show()
|
|
settingWindow!.focus()
|
|
if (windowManager.has(IWindowList.MINI_WINDOW) && autoCloseMiniWindow) {
|
|
windowManager.get(IWindowList.MINI_WINDOW)!.hide()
|
|
}
|
|
}
|
|
|
|
export const hideMiniWindow = () => {
|
|
if (windowManager.has(IWindowList.MINI_WINDOW)) {
|
|
windowManager.get(IWindowList.MINI_WINDOW)!.hide()
|
|
}
|
|
}
|