27 lines
1.2 KiB
Swift
27 lines
1.2 KiB
Swift
import AppKit
|
|
import 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
|
|
}
|
|
}
|