41 lines
1.1 KiB
Objective-C
41 lines
1.1 KiB
Objective-C
#import "MJMenuIcon.h"
|
|
#import "variables.h"
|
|
|
|
static void reflect_defaults(void);
|
|
|
|
static NSStatusItem* statusItem;
|
|
static NSMenu* menuItemMenu;
|
|
|
|
void MJMenuIconSetup(NSMenu* menu) {
|
|
menuItemMenu = menu;
|
|
reflect_defaults();
|
|
}
|
|
|
|
BOOL MJMenuIconVisible(void) {
|
|
return [[NSUserDefaults standardUserDefaults] boolForKey:MJShowMenuIconKey];
|
|
}
|
|
|
|
void MJMenuIconSetVisible(BOOL visible) {
|
|
[[NSUserDefaults standardUserDefaults] setBool:visible
|
|
forKey:MJShowMenuIconKey];
|
|
reflect_defaults();
|
|
}
|
|
|
|
static void reflect_defaults(void) {
|
|
if (MJMenuIconVisible()) {
|
|
NSImage* icon = [NSImage imageNamed:@"statusicon"];
|
|
[icon setTemplate:YES];
|
|
|
|
statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength];
|
|
statusItem.button.image = icon;
|
|
[statusItem setHighlightMode:YES];
|
|
[statusItem setMenu: menuItemMenu];
|
|
}
|
|
else {
|
|
if (statusItem) {
|
|
[[NSStatusBar systemStatusBar] removeStatusItem: statusItem];
|
|
statusItem = nil;
|
|
}
|
|
}
|
|
}
|