Skip to content

Commit 46998a7

Browse files
committed
Added ability to show and hide dock icon.
Updated App menu text.
1 parent 91cc024 commit 46998a7

File tree

1 file changed

+39
-3
lines changed

1 file changed

+39
-3
lines changed

Statusfy/SFYAppDelegate.m

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@
1010

1111

1212
static NSString * const SFYPlayerStatePreferenceKey = @"ShowPlayerState";
13-
13+
static NSString * const SFYPlayerDockIconPreferenceKey = @"ShowDockIcon";
1414

1515
@interface SFYAppDelegate ()
1616

1717
@property (nonatomic, strong) NSMenuItem *playerStateMenuItem;
18+
@property (nonatomic, strong) NSMenuItem *dockIconMenuItem;
1819
@property (nonatomic, strong) NSStatusItem *statusItem;
1920

2021
@end
2122

22-
2323
@implementation SFYAppDelegate
2424

2525
- (void)applicationDidFinishLaunching:(NSNotification * __unused)aNotification
@@ -31,7 +31,10 @@ - (void)applicationDidFinishLaunching:(NSNotification * __unused)aNotification
3131

3232
self.playerStateMenuItem = [[NSMenuItem alloc] initWithTitle:[self determinePlayerStateMenuItemTitle] action:@selector(togglePlayerStateVisibility) keyEquivalent:@""];
3333

34+
self.dockIconMenuItem = [[NSMenuItem alloc] initWithTitle:[self determineDockIconMenuItemTitle] action:@selector(toggleDockIconVisibility) keyEquivalent:@""];
35+
3436
[menu addItem:self.playerStateMenuItem];
37+
[menu addItem:self.dockIconMenuItem];
3538
[menu addItemWithTitle:NSLocalizedString(@"Quit", nil) action:@selector(quit) keyEquivalent:@"q"];
3639

3740
[self.statusItem setMenu:menu];
@@ -99,7 +102,7 @@ - (void)togglePlayerStateVisibility
99102

100103
- (NSString *)determinePlayerStateMenuItemTitle
101104
{
102-
return [self getPlayerStateVisibility] ? NSLocalizedString(@"Hide player state", nil) : NSLocalizedString(@"Show player state", nil);
105+
return [self getPlayerStateVisibility] ? NSLocalizedString(@"Hide Player State", nil) : NSLocalizedString(@"Show Player State", nil);
103106
}
104107

105108
- (NSString *)determinePlayerStateText
@@ -120,6 +123,37 @@ - (NSString *)determinePlayerStateText
120123
return playerStateText;
121124
}
122125

126+
#pragma mark - Toggle Dock Icon
127+
128+
- (BOOL)getDockIconVisibility
129+
{
130+
return [[NSUserDefaults standardUserDefaults] boolForKey:SFYPlayerDockIconPreferenceKey];
131+
}
132+
133+
- (void)setDockIconVisibility:(BOOL)visible
134+
{
135+
[[NSUserDefaults standardUserDefaults] setBool:visible forKey:SFYPlayerDockIconPreferenceKey];
136+
}
137+
138+
- (void)toggleDockIconVisibility
139+
{
140+
[self setDockIconVisibility:![self getDockIconVisibility]];
141+
self.dockIconMenuItem.title = [self determineDockIconMenuItemTitle];
142+
143+
if([_dockIconMenuItem.title isEqual: @"Show Dock Icon"])
144+
{
145+
[NSApp setActivationPolicy: NSApplicationActivationPolicyAccessory];
146+
}
147+
else
148+
{
149+
[NSApp setActivationPolicy: NSApplicationActivationPolicyRegular];
150+
}
151+
}
152+
153+
- (NSString *)determineDockIconMenuItemTitle
154+
{
155+
return [self getDockIconVisibility] ? NSLocalizedString(@"Hide Dock Icon", nil) : NSLocalizedString(@"Show Dock Icon", nil);
156+
}
123157

124158
#pragma mark - Quit
125159

@@ -129,3 +163,5 @@ - (void)quit
129163
}
130164

131165
@end
166+
167+

0 commit comments

Comments
 (0)