// // StatusMenu+Items.swift // PHP Monitor // // Created by Nico Verbruggen on 18/08/2022. // Copyright © 2023 Nico Verbruggen. All rights reserved. // import Cocoa // MARK: - PHP Version extension StatusMenu { @MainActor func addPhpVersionMenuItems() { if container.phpEnvs.phpInstall == nil { addItem(HeaderView.asMenuItem(text: "⚠️ " + "mi_no_php_linked".localized, minimumWidth: 280)) addItems([ NSMenuItem.separator(), NSMenuItem(title: "mi_fix_php_link".localized, action: #selector(MainMenu.linkPhpBinary)), NSMenuItem(title: "mi_no_php_linked_explain".localized, action: #selector(MainMenu.displayUnlinkedInfo)) ]) return } if container.phpEnvs.phpInstall!.hasErrorState { let brokenMenuItems = ["mi_php_broken_1", "mi_php_broken_2", "mi_php_broken_3", "mi_php_broken_4"] return addItems(brokenMenuItems.map { NSMenuItem(title: $0.localized) }) } addItem(HeaderView.asMenuItem( text: "\("mi_php_version".localized) \(container.phpEnvs.phpInstall!.version.long)", minimumWidth: 280 // this ensures the menu is at least wide enough not to cause clipping )) } @MainActor func addPhpActionMenuItems() { if App.shared.container.phpEnvs.isBusy { addItem(NSMenuItem(title: "mi_busy".localized)) return } if App.shared.container.phpEnvs.availablePhpVersions.isEmpty && App.shared.container.phpEnvs.incompatiblePhpVersions.isEmpty { return } if App.shared.container.phpEnvs.currentInstall == nil { return } addSwitchToPhpMenuItems() self.addItem(NSMenuItem.separator()) } @MainActor func addServicesManagerMenuItem() { if App.shared.container.phpEnvs.isBusy { return } addItems([ ServicesView.asMenuItem(), NSMenuItem.separator() ]) } @MainActor func addSwitchToPhpMenuItems() { var shortcutKey = 1 for index in (0..