39 lines
936 B
Swift
39 lines
936 B
Swift
//
|
||
// SidebarGearMenuDelegate.swift
|
||
// Evergreen
|
||
//
|
||
// Created by Brent Simmons on 1/28/18.
|
||
// Copyright © 2018 Ranchero Software. All rights reserved.
|
||
//
|
||
|
||
import AppKit
|
||
|
||
@objc final class SidebarGearMenuDelegate: NSObject, NSMenuDelegate {
|
||
|
||
@IBOutlet weak var sidebarViewController: SidebarViewController?
|
||
|
||
public func menuNeedsUpdate(_ menu: NSMenu) {
|
||
|
||
// Save the first item, since it’s the gear icon itself.
|
||
guard let gearMenuItem = menu.item(at: 0) else {
|
||
assertionFailure("Expected sidebar gear menu to have at least one item.")
|
||
return
|
||
}
|
||
menu.removeAllItems()
|
||
menu.addItem(gearMenuItem)
|
||
|
||
guard let sidebarViewController = sidebarViewController else {
|
||
return
|
||
}
|
||
guard let contextualMenu = sidebarViewController.contextualMenuForSelectedObjects() else {
|
||
return
|
||
}
|
||
|
||
let items = contextualMenu.items
|
||
contextualMenu.removeAllItems()
|
||
for menuItem in items {
|
||
menu.addItem(menuItem)
|
||
}
|
||
}
|
||
}
|