26 lines · 1.2 KB · Swift
RawDownload
import AppKitimport CodexBarCore extension StatusItemController {    @discardableResult    func addStorageMenuCardSection(to menu: NSMenu, provider: UsageProvider, width: CGFloat) -> Bool {        guard let storageText = self.store.storageFootprintText(for: provider) else { return false }        let storageSubmenu = self.makeStorageBreakdownSubmenu(provider: provider, width: width)        menu.addItem(Self.makeNativeStorageMenuCardItem(storageText: storageText, submenu: storageSubmenu))        return true    }     private static func makeNativeStorageMenuCardItem(storageText: String, submenu: NSMenu?) -> NSMenuItem {        let menuFont = NSFont.menuFont(ofSize: 0)        let title = NSMutableAttributedString(string: L("Storage"), attributes: [.font: menuFont])        title.append(NSAttributedString(            string: "  \(storageText)",            attributes: [.font: menuFont, .foregroundColor: NSColor.secondaryLabelColor]))        let item = NSMenuItem(title: L("Storage"), action: nil, keyEquivalent: "")        item.attributedTitle = title        item.isEnabled = submenu != nil        item.representedObject = "menuCardStorage"        item.submenu = submenu        return item    }}