mirror of
https://github.com/Kuingsmile/PicList.git
synced 2025-03-13 08:28:13 -04:00
✨ Feature: add dock menu and appbar menu
This commit is contained in:
parent
107e8ae7ec
commit
19e1191275
@ -21,8 +21,79 @@ import { T } from '~/main/i18n'
|
|||||||
import { isMacOSVersionGreaterThanOrEqualTo } from '~/main/utils/getMacOSVersion'
|
import { isMacOSVersionGreaterThanOrEqualTo } from '~/main/utils/getMacOSVersion'
|
||||||
import { buildPicBedListMenu } from '~/main/events/remotes/menu'
|
import { buildPicBedListMenu } from '~/main/events/remotes/menu'
|
||||||
let contextMenu: Menu | null
|
let contextMenu: Menu | null
|
||||||
let menu: Menu | null
|
|
||||||
let tray: Tray | null
|
let tray: Tray | null
|
||||||
|
|
||||||
|
export function createMenu () {
|
||||||
|
const submenu = buildPicBedListMenu()
|
||||||
|
const appMenu = Menu.buildFromTemplate([
|
||||||
|
{
|
||||||
|
label: 'PicList',
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
label: T('ABOUT'),
|
||||||
|
click () {
|
||||||
|
dialog.showMessageBox({
|
||||||
|
title: 'PicList',
|
||||||
|
message: 'PicList',
|
||||||
|
detail: `Version: ${pkg.version}\nAuthor: Kuingsmile\nGithub: https://github.com/Kuingsmile/PicList`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: T('OPEN_MAIN_WINDOW'),
|
||||||
|
click () {
|
||||||
|
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
|
||||||
|
settingWindow!.show()
|
||||||
|
settingWindow!.focus()
|
||||||
|
if (windowManager.has(IWindowList.MINI_WINDOW)) {
|
||||||
|
windowManager.get(IWindowList.MINI_WINDOW)!.hide()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// @ts-ignore
|
||||||
|
{
|
||||||
|
label: T('OPEN_UPDATE_HELPER'),
|
||||||
|
type: 'checkbox',
|
||||||
|
checked: db.get('settings.showUpdateTip'),
|
||||||
|
click () {
|
||||||
|
const value = db.get('settings.showUpdateTip')
|
||||||
|
db.set('settings.showUpdateTip', !value)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: T('PRIVACY_AGREEMENT'),
|
||||||
|
click () {
|
||||||
|
privacyManager.show(false)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: T('RELOAD_APP'),
|
||||||
|
click () {
|
||||||
|
app.relaunch()
|
||||||
|
app.exit(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: T('CHOOSE_DEFAULT_PICBED'),
|
||||||
|
type: 'submenu',
|
||||||
|
// @ts-ignore
|
||||||
|
submenu
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: T('QUIT'),
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
label: T('QUIT'),
|
||||||
|
role: 'quit'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
])
|
||||||
|
Menu.setApplicationMenu(appMenu)
|
||||||
|
}
|
||||||
|
|
||||||
export function createContextMenu () {
|
export function createContextMenu () {
|
||||||
if (process.platform === 'darwin' || process.platform === 'win32') {
|
if (process.platform === 'darwin' || process.platform === 'win32') {
|
||||||
const submenu = buildPicBedListMenu()
|
const submenu = buildPicBedListMenu()
|
||||||
@ -250,33 +321,6 @@ export function createTray () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createMenu () {
|
|
||||||
if (process.env.NODE_ENV !== 'development') {
|
|
||||||
const template = [{
|
|
||||||
label: 'Edit',
|
|
||||||
submenu: [
|
|
||||||
{ label: 'Undo', accelerator: 'CmdOrCtrl+Z', selector: 'undo:' },
|
|
||||||
{ label: 'Redo', accelerator: 'Shift+CmdOrCtrl+Z', selector: 'redo:' },
|
|
||||||
{ type: 'separator' },
|
|
||||||
{ label: 'Cut', accelerator: 'CmdOrCtrl+X', selector: 'cut:' },
|
|
||||||
{ label: 'Copy', accelerator: 'CmdOrCtrl+C', selector: 'copy:' },
|
|
||||||
{ label: 'Paste', accelerator: 'CmdOrCtrl+V', selector: 'paste:' },
|
|
||||||
{ label: 'Select All', accelerator: 'CmdOrCtrl+A', selector: 'selectAll:' },
|
|
||||||
{
|
|
||||||
label: 'Quit',
|
|
||||||
accelerator: 'CmdOrCtrl+Q',
|
|
||||||
click () {
|
|
||||||
app.quit()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
// @ts-ignore
|
|
||||||
menu = Menu.buildFromTemplate(template)
|
|
||||||
Menu.setApplicationMenu(menu)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const toggleWindow = (bounds: IBounds) => {
|
const toggleWindow = (bounds: IBounds) => {
|
||||||
const trayWindow = windowManager.get(IWindowList.TRAY_WINDOW)!
|
const trayWindow = windowManager.get(IWindowList.TRAY_WINDOW)!
|
||||||
if (trayWindow.isVisible()) {
|
if (trayWindow.isVisible()) {
|
||||||
|
@ -3,7 +3,8 @@ import {
|
|||||||
app,
|
app,
|
||||||
globalShortcut,
|
globalShortcut,
|
||||||
protocol,
|
protocol,
|
||||||
Notification
|
Notification,
|
||||||
|
Menu
|
||||||
} from 'electron'
|
} from 'electron'
|
||||||
import {
|
import {
|
||||||
createProtocol
|
createProtocol
|
||||||
@ -40,6 +41,7 @@ import { remoteNoticeHandler } from 'apis/app/remoteNotice'
|
|||||||
import { manageIpcList } from '../manage/events/ipcList'
|
import { manageIpcList } from '../manage/events/ipcList'
|
||||||
import getManageApi from '../manage/Main'
|
import getManageApi from '../manage/Main'
|
||||||
import UpDownTaskQueue from '../manage/datastore/upDownTaskQueue'
|
import UpDownTaskQueue from '../manage/datastore/upDownTaskQueue'
|
||||||
|
import { T } from '~/main/i18n'
|
||||||
const isDevelopment = process.env.NODE_ENV !== 'production'
|
const isDevelopment = process.env.NODE_ENV !== 'production'
|
||||||
|
|
||||||
const handleStartUpFiles = (argv: string[], cwd: string) => {
|
const handleStartUpFiles = (argv: string[], cwd: string) => {
|
||||||
@ -89,6 +91,23 @@ class LifeCycle {
|
|||||||
}
|
}
|
||||||
windowManager.create(IWindowList.TRAY_WINDOW)
|
windowManager.create(IWindowList.TRAY_WINDOW)
|
||||||
windowManager.create(IWindowList.SETTING_WINDOW)
|
windowManager.create(IWindowList.SETTING_WINDOW)
|
||||||
|
if (process.platform === 'darwin') {
|
||||||
|
app.dock.setMenu(
|
||||||
|
Menu.buildFromTemplate([
|
||||||
|
{
|
||||||
|
label: T('OPEN_MAIN_WINDOW'),
|
||||||
|
click () {
|
||||||
|
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
|
||||||
|
settingWindow!.show()
|
||||||
|
settingWindow!.focus()
|
||||||
|
if (windowManager.has(IWindowList.MINI_WINDOW)) {
|
||||||
|
windowManager.get(IWindowList.MINI_WINDOW)!.hide()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
])
|
||||||
|
)
|
||||||
|
}
|
||||||
createTray()
|
createTray()
|
||||||
db.set('needReload', false)
|
db.set('needReload', false)
|
||||||
updateChecker()
|
updateChecker()
|
||||||
|
@ -68,7 +68,7 @@ const config = {
|
|||||||
mac: {
|
mac: {
|
||||||
icon: 'build/icons/icon.icns',
|
icon: 'build/icons/icon.icns',
|
||||||
extendInfo: {
|
extendInfo: {
|
||||||
LSUIElement: 1
|
LSUIElement: 0
|
||||||
},
|
},
|
||||||
target: [{
|
target: [{
|
||||||
target: 'dmg',
|
target: 'dmg',
|
||||||
|
Loading…
Reference in New Issue
Block a user