// // AppDelegate.swift // Accent Pomodoro // // Created by Luke Jenquin on 11/20/21. // import Foundation import SwiftUI import Cocoa class AppDelegate: NSObject, NSApplicationDelegate { var popover: NSPopover! var statusBarItem: NSStatusItem! public var userSelections: userSelectionsModel = userSelectionsModel() func applicationDidFinishLaunching(_ aNotification: Notification) { let changer = MenuBarColorChanger.init(currentUserSelections: userSelections) let contentView = ContentView(changer: changer, userSelections: userSelections) let popover = NSPopover() popover.contentSize = NSSize(width: 115, height: 500) popover.behavior = .transient popover.contentViewController = NSHostingController(rootView: contentView) self.popover = popover self.statusBarItem = NSStatusBar.system.statusItem(withLength: CGFloat(NSStatusItem.variableLength)) if let button = self.statusBarItem.button { button.image = NSImage(named: "Accent_Pomodoro_Icon")?.crop(size: NSSize(width: 18.0, height: 18.0)) button.image?.isTemplate = true button.action = #selector(togglePopover(_:)) } NSApp.activate(ignoringOtherApps: true) } @objc func togglePopover(_ sender: AnyObject?) { if let button = self.statusBarItem.button { if self.popover.isShown { self.popover.performClose(sender) } else { self.popover.show(relativeTo: button.bounds, of: button, preferredEdge: NSRectEdge.minY) } } } }