From 226ffa922ef17692d8132ab0bc07a3be670c7867 Mon Sep 17 00:00:00 2001 From: acheronfail Date: Wed, 7 Mar 2018 15:04:59 +1100 Subject: [PATCH] added indicator item in menu - fixes #17 --- Apptivator.xcodeproj/project.pbxproj | 2 +- Apptivator/AppDelegate.swift | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Apptivator.xcodeproj/project.pbxproj b/Apptivator.xcodeproj/project.pbxproj index 4e4000b..f8a92fd 100644 --- a/Apptivator.xcodeproj/project.pbxproj +++ b/Apptivator.xcodeproj/project.pbxproj @@ -98,12 +98,12 @@ isa = PBXGroup; children = ( B3B4C2C01E25894B009F8E4E /* AppDelegate.swift */, - 155D2C02204F61220087478B /* Credits.rtfd */, 15F39F3B204CB72D00847CD5 /* ViewController.swift */, 1537F5E0204C8D860056EE50 /* ApplicationEntry.swift */, 15FC8CC7204E2E2C000B5E1E /* ApplicationState.swift */, B3B4C2C21E25894B009F8E4E /* Assets.xcassets */, B3B4C2C41E25894B009F8E4E /* MainMenu.xib */, + 155D2C02204F61220087478B /* Credits.rtfd */, B3B4C2C71E25894B009F8E4E /* Info.plist */, ); path = Apptivator; diff --git a/Apptivator/AppDelegate.swift b/Apptivator/AppDelegate.swift index c2a9b72..6d16c05 100644 --- a/Apptivator/AppDelegate.swift +++ b/Apptivator/AppDelegate.swift @@ -9,6 +9,7 @@ import SwiftyJSON let appName = Bundle.main.infoDictionary![kCFBundleNameKey as String] as! String let state = ApplicationState() +// Menu bar item icons. let iconOn = NSImage(named: NSImage.Name(rawValue: "icon-on")) let iconOff = NSImage(named: NSImage.Name(rawValue: "icon-off")) @@ -19,6 +20,7 @@ let iconOff = NSImage(named: NSImage.Name(rawValue: "icon-off")) var menuBarItem: NSStatusItem? = nil var contextMenu: NSMenu = NSMenu() + let enabledIndicator = NSMenuItem(title: "\(appName): Enabled", action: nil, keyEquivalent: "") func applicationDidFinishLaunching(_ aNotification: Notification) { setupIcon(iconOn) @@ -29,12 +31,14 @@ let iconOff = NSImage(named: NSImage.Name(rawValue: "icon-off")) menuBarItem?.action = #selector(onMenuClick) menuBarItem?.sendAction(on: [.leftMouseUp, .rightMouseUp]) - contextMenu.addItem(NSMenuItem(title: "About", action: #selector(showAboutPanel), keyEquivalent: "")) + contextMenu.addItem(enabledIndicator) + contextMenu.addItem(NSMenuItem(title: "Configure Shortcuts", action: #selector(openPreferencesWindow), keyEquivalent: "")) contextMenu.addItem(NSMenuItem.separator()) - contextMenu.addItem(NSMenuItem(title: "Shortcuts", action: #selector(openPreferencesWindow), keyEquivalent: "")) + contextMenu.addItem(NSMenuItem(title: "About", action: #selector(showAboutPanel), keyEquivalent: "")) contextMenu.addItem(NSMenuItem.separator()) contextMenu.addItem(NSMenuItem(title: "Quit \(appName)", action: #selector(quitApplication), keyEquivalent: "")) + enable(true) state.loadFromDisk() viewController.reloadView() @@ -59,6 +63,7 @@ let iconOff = NSImage(named: NSImage.Name(rawValue: "icon-off")) func enable(_ flag: Bool) { state.appIsEnabled = flag menuBarItem?.image = flag ? iconOn : iconOff + enabledIndicator.title = "\(appName): \(flag ? "on" : "off")" } func setupIcon(_ image: NSImage?) {