mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-05 21:15:38 -05:00
37 lines
928 B
QML
37 lines
928 B
QML
pragma Singleton
|
|
|
|
import Quickshell
|
|
import QtQuick
|
|
|
|
Singleton {
|
|
id: root
|
|
|
|
property var activeTrayMenus: ({})
|
|
|
|
function registerMenu(screenName, menu) {
|
|
if (!screenName || !menu) return
|
|
const newMenus = Object.assign({}, activeTrayMenus)
|
|
newMenus[screenName] = menu
|
|
activeTrayMenus = newMenus
|
|
}
|
|
|
|
function unregisterMenu(screenName) {
|
|
if (!screenName) return
|
|
const newMenus = Object.assign({}, activeTrayMenus)
|
|
delete newMenus[screenName]
|
|
activeTrayMenus = newMenus
|
|
}
|
|
|
|
function closeAllMenus() {
|
|
for (const screenName in activeTrayMenus) {
|
|
const menu = activeTrayMenus[screenName]
|
|
if (!menu) continue
|
|
if (typeof menu.close === "function") {
|
|
menu.close()
|
|
} else if (menu.showMenu !== undefined) {
|
|
menu.showMenu = false
|
|
}
|
|
}
|
|
}
|
|
}
|