1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-11-06 21:00:07 +01:00

Add AppMenu class for easy access to main menu

This commit is contained in:
2024-06-27 21:23:59 +02:00
parent 62587bdf65
commit 2c2627dc9f
3 changed files with 60 additions and 13 deletions

View File

@@ -0,0 +1,41 @@
//
// AppMenu.swift
// PHP Monitor
//
// Created by Nico Verbruggen on 27/06/2024.
// Copyright © 2024 Nico Verbruggen. All rights reserved.
//
import Cocoa
class AppMenu {
// MARK: - Main Menu
static var appMenu: NSMenu? {
return NSApplication.shared.mainMenu?.items[0].submenu
}
static var sitesMenu: NSMenu? {
return NSApplication.shared.mainMenu?.items[1].submenu
}
static var editMenu: NSMenu? {
return NSApplication.shared.mainMenu?.items[2].submenu
}
static var windowMenu: NSMenu? {
return NSApplication.shared.mainMenu?.items[3].submenu
}
static var helpMenu: NSMenu? {
return NSApplication.shared.mainMenu?.items[4].submenu
}
// MARK: - Submenu
static var actionsMenu: NSMenuItem? {
return sitesMenu?.items.last
}
}

View File

@@ -10,31 +10,27 @@ import Cocoa
extension DomainListVC {
private var actionsMenu: NSMenuItem? {
return NSApplication.shared.mainMenu?.items[1].submenu?.items.last
}
internal func reloadContextMenu() {
guard let selected = selected else {
tableView.menu = nil
actionsMenu?.title = "mm_actions".localized
actionsMenu?.submenu = nil
actionsMenu?.isEnabled = false
AppMenu.actionsMenu?.title = "mm_actions".localized
AppMenu.actionsMenu?.submenu = nil
AppMenu.actionsMenu?.isEnabled = false
return
}
if let selected = selected as? ValetSite {
tableView.menu = addMenuItemsForSite(selected)
actionsMenu?.title = "mm_actions".localized + " (\(selected.name).\(selected.tld))"
actionsMenu?.submenu = tableView.menu
actionsMenu?.isEnabled = true
AppMenu.actionsMenu?.title = "mm_actions".localized + " (\(selected.name).\(selected.tld))"
AppMenu.actionsMenu?.submenu = tableView.menu
AppMenu.actionsMenu?.isEnabled = true
return
}
if let selected = selected as? ValetProxy {
tableView.menu = addMenuItemsForProxy(selected)
actionsMenu?.title = "mm_actions".localized + " (\(selected.domain).\(selected.tld))"
actionsMenu?.submenu = tableView.menu
actionsMenu?.isEnabled = true
AppMenu.actionsMenu?.title = "mm_actions".localized + " (\(selected.domain).\(selected.tld))"
AppMenu.actionsMenu?.submenu = tableView.menu
AppMenu.actionsMenu?.isEnabled = true
return
}
}