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:
41
phpmon/Domain/Menu/AppMenu.swift
Normal file
41
phpmon/Domain/Menu/AppMenu.swift
Normal 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
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user