// // StatusBarController.swift // LiquipediaMenu // // Created by Felix Förtsch on 08.10.18. // Copyright © 2018 Felix Förtsch. All rights reserved. // import Cocoa class StatusBarController: NSObject, NSUserInterfaceValidations { var statusBar = NSMenu() let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength) let matchesAPI = MatchesAPI() var matches = [Match]() func validateUserInterfaceItem(_ item: NSValidatedUserInterfaceItem) -> Bool { if let menuitem = item as? NSMenuItem { menuitem.state = .on } return true } override func awakeFromNib() { // Set the icon of the statusbar item and put it into the statusbar let icon = NSImage(named: "statusBarIcon") icon?.isTemplate = true statusItem.image = icon statusItem.menu = statusBar generateMenu() } @objc func generateMenu() { statusBar.addItem(withTitle: "Refresh", action: #selector(generateMenu), keyEquivalent: "") statusBar.addItem(NSMenuItem.separator()) if let matches = matchesAPI.fetchMatches(for: "dota2") { for match in matches { let myItem = NSMenuItem(title: match.league, action: nil, keyEquivalent: "") statusBar.addItem(myItem) } statusBar.addItem(NSMenuItem.separator()) statusBar.addItem(withTitle: "Quit", action: #selector(self.quitClicked), keyEquivalent: "") } } @objc func quitClicked(_ sender: NSMenuItem) { NSApplication.shared.terminate(self) } }