From 2dc91b3fb3d8bb6280e40bbfa03d7e95b21741ff Mon Sep 17 00:00:00 2001 From: Brett Pynn Date: Thu, 30 Mar 2017 16:15:17 -0700 Subject: [PATCH 1/3] Be great to have a black and white icon for the status bar that falls in line with the current standards. Specifically using NSImage template for switching between dark and light modes. I created a 4th option in the preferences that is B&W only without the play state overlay. I also created a few different B&W image to use, but only included one that seemed to match other app standards. Happy to modify based on feedback. --- Hermes.xcodeproj/project.pbxproj | 4 + Resources/English.lproj/MainMenu.xib | 97 +++++++++++--------- Resources/Icons/Pandora-Menu-BW-Only.icns | Bin 0 -> 29305 bytes Sources/Controllers/PreferencesController.h | 2 + Sources/Controllers/PreferencesController.m | 9 ++ Sources/HermesAppDelegate.m | 11 ++- 6 files changed, 76 insertions(+), 47 deletions(-) create mode 100644 Resources/Icons/Pandora-Menu-BW-Only.icns diff --git a/Hermes.xcodeproj/project.pbxproj b/Hermes.xcodeproj/project.pbxproj index e4754aa..66878c9 100644 --- a/Hermes.xcodeproj/project.pbxproj +++ b/Hermes.xcodeproj/project.pbxproj @@ -30,6 +30,7 @@ 97539FAD158442A500D1E65C /* URLConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 97539FAC158442A500D1E65C /* URLConnection.m */; }; 97E0DA35159EDF7C00BEA465 /* radio.png in Resources */ = {isa = PBXBuildFile; fileRef = 97E0DA34159EDF7C00BEA465 /* radio.png */; }; B2A26AEF1AE39E9B00ADD460 /* MusicProgressSliderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B2A26AEE1AE39E9B00ADD460 /* MusicProgressSliderCell.m */; }; + D68477BF1E8DC7E600DCBB34 /* Pandora-Menu-BW-Only.icns in Resources */ = {isa = PBXBuildFile; fileRef = D68477BE1E8DC7E600DCBB34 /* Pandora-Menu-BW-Only.icns */; }; E1200AA11CF2A4CC000D3215 /* LabelHoverShowField.m in Sources */ = {isa = PBXBuildFile; fileRef = E1200AA01CF2A4CC000D3215 /* LabelHoverShowField.m */; }; E1200AA41CF2B015000D3215 /* LabelHoverShowFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E1200AA31CF2B015000D3215 /* LabelHoverShowFieldCell.m */; }; E124109A18EBAF6F007AF091 /* HermesApp.m in Sources */ = {isa = PBXBuildFile; fileRef = E124109918EBAF6F007AF091 /* HermesApp.m */; }; @@ -156,6 +157,7 @@ 97E0DA34159EDF7C00BEA465 /* radio.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = radio.png; sourceTree = ""; }; B2A26AED1AE39E9B00ADD460 /* MusicProgressSliderCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MusicProgressSliderCell.h; path = Views/MusicProgressSliderCell.h; sourceTree = ""; }; B2A26AEE1AE39E9B00ADD460 /* MusicProgressSliderCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MusicProgressSliderCell.m; path = Views/MusicProgressSliderCell.m; sourceTree = ""; }; + D68477BE1E8DC7E600DCBB34 /* Pandora-Menu-BW-Only.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "Pandora-Menu-BW-Only.icns"; sourceTree = ""; }; E1200A9F1CF2A4CC000D3215 /* LabelHoverShowField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LabelHoverShowField.h; path = Views/LabelHoverShowField.h; sourceTree = ""; }; E1200AA01CF2A4CC000D3215 /* LabelHoverShowField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LabelHoverShowField.m; path = Views/LabelHoverShowField.m; sourceTree = ""; }; E1200AA21CF2B015000D3215 /* LabelHoverShowFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LabelHoverShowFieldCell.h; path = Views/LabelHoverShowFieldCell.h; sourceTree = ""; }; @@ -518,6 +520,7 @@ FAEFFC4B132D6D2A007DC6FB /* pause.png */, FAEFFC4C132D6D2A007DC6FB /* play.png */, FAEFFBD4132CC0E2007DC6FB /* error_icon.png */, + D68477BE1E8DC7E600DCBB34 /* Pandora-Menu-BW-Only.icns */, E1C1EC101A1AE7E4001E4D8F /* Pandora-Menu-Dark-Play.pdf */, E1C1EC111A1AE7E4001E4D8F /* Pandora-Menu-Dark-Pause.pdf */, ); @@ -615,6 +618,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + D68477BF1E8DC7E600DCBB34 /* Pandora-Menu-BW-Only.icns in Resources */, 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */, FAEFFBD5132CC0E2007DC6FB /* error_icon.png in Resources */, diff --git a/Resources/English.lproj/MainMenu.xib b/Resources/English.lproj/MainMenu.xib index 527fcbd..24922f4 100644 --- a/Resources/English.lproj/MainMenu.xib +++ b/Resources/English.lproj/MainMenu.xib @@ -970,6 +970,7 @@ Gw + @@ -1343,11 +1344,11 @@ DQ - + - + @@ -1368,7 +1369,7 @@ DQ - + @@ -1389,15 +1390,15 @@ DQ - + - + - + @@ -1455,11 +1456,11 @@ DQ - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/Resources/Icons/Pandora-Menu-BW-Only.icns b/Resources/Icons/Pandora-Menu-BW-Only.icns new file mode 100644 index 0000000000000000000000000000000000000000..77d4ff868d2e96a1a013af48f1b78aa0b563815a GIT binary patch literal 29305 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 HGUWdOV4o!! literal 0 HcmV?d00001 diff --git a/Sources/Controllers/PreferencesController.h b/Sources/Controllers/PreferencesController.h index 5d31293..081d1a6 100644 --- a/Sources/Controllers/PreferencesController.h +++ b/Sources/Controllers/PreferencesController.h @@ -30,6 +30,7 @@ #define ALBUM_ART_PLAY_PAUSE @"albumArtPlayPause" #define STATUS_BAR_ICON @"statusBarIcon" #define STATUS_BAR_ICON_BW @"statusBarIconBlackWhite" +#define STATUS_BAR_ICON_BW_ONLY @"statusBarIconBlackWhiteOnly" #define STATUS_BAR_ICON_ALBUM @"statusBarIconAlbumArt" #define STATUS_BAR_SHOW_SONG @"statusBarShowSongTitle" #define ALWAYS_ON_TOP @"alwaysOnTop" @@ -76,6 +77,7 @@ IBOutlet NSTextField *mediaKeysLabel; IBOutlet NSButton *statusItemShowColorIcon; + IBOutlet NSButton *statusItemShowBlackAndWhiteOnlyIcon; IBOutlet NSButton *statusItemShowBlackAndWhiteIcon; IBOutlet NSButton *statusItemShowAlbumArt; diff --git a/Sources/Controllers/PreferencesController.m b/Sources/Controllers/PreferencesController.m index 3eb1c9a..6d9335d 100644 --- a/Sources/Controllers/PreferencesController.m +++ b/Sources/Controllers/PreferencesController.m @@ -18,6 +18,8 @@ - (void)windowDidBecomeMain:(NSNotification *)notification { if (PREF_KEY_BOOL(STATUS_BAR_ICON_BW)) statusItemShowBlackAndWhiteIcon.state = NSOnState; + else if (PREF_KEY_BOOL(STATUS_BAR_ICON_BW_ONLY)) + statusItemShowBlackAndWhiteOnlyIcon.state = NSOnState; else if (PREF_KEY_BOOL(STATUS_BAR_ICON_ALBUM)) statusItemShowAlbumArt.state = NSOnState; else @@ -113,12 +115,19 @@ - (IBAction) showNetwork: (id) sender { - (IBAction) statusItemIconChanged:(id)sender { if (sender == statusItemShowColorIcon) { PREF_KEY_SET_BOOL(STATUS_BAR_ICON_BW, NO); + PREF_KEY_SET_BOOL(STATUS_BAR_ICON_BW_ONLY, NO); PREF_KEY_SET_BOOL(STATUS_BAR_ICON_ALBUM, NO); } else if (sender == statusItemShowBlackAndWhiteIcon) { PREF_KEY_SET_BOOL(STATUS_BAR_ICON_BW, YES); + PREF_KEY_SET_BOOL(STATUS_BAR_ICON_BW_ONLY, NO); + PREF_KEY_SET_BOOL(STATUS_BAR_ICON_ALBUM, NO); + } else if (sender == statusItemShowBlackAndWhiteOnlyIcon) { + PREF_KEY_SET_BOOL(STATUS_BAR_ICON_BW, NO); + PREF_KEY_SET_BOOL(STATUS_BAR_ICON_BW_ONLY, YES); PREF_KEY_SET_BOOL(STATUS_BAR_ICON_ALBUM, NO); } else if (sender == statusItemShowAlbumArt) { PREF_KEY_SET_BOOL(STATUS_BAR_ICON_BW, NO); + PREF_KEY_SET_BOOL(STATUS_BAR_ICON_BW_ONLY, NO); PREF_KEY_SET_BOOL(STATUS_BAR_ICON_ALBUM, YES); } [HMSAppDelegate updateStatusItem:sender]; diff --git a/Sources/HermesAppDelegate.m b/Sources/HermesAppDelegate.m index b99a1da..216445a 100644 --- a/Sources/HermesAppDelegate.m +++ b/Sources/HermesAppDelegate.m @@ -587,18 +587,19 @@ - (IBAction) updateStatusItem:(id)sender { } NSImage *icon; + NSSize size = {.width = 18, .height = 18}; - if (PREF_KEY_BOOL(STATUS_BAR_ICON_BW)) { - + if (PREF_KEY_BOOL(STATUS_BAR_ICON_BW)) { icon = [NSImage imageNamed:(playback.playing.isPlaying) ? @"Pandora-Menu-Dark-Play" : @"Pandora-Menu-Dark-Pause"]; [icon setTemplate:YES]; - + } else if (PREF_KEY_BOOL(STATUS_BAR_ICON_BW_ONLY)) { + // Use b&w only application image + icon = [NSImage imageNamed:@"Pandora-Menu-BW-Only"]; } else if (PREF_KEY_BOOL(STATUS_BAR_ICON_ALBUM)) { - icon = [self buildPlayPauseAlbumArtImage:size]; - + [icon setTemplate:YES]; } else { // Use color application image icon = [NSImage imageNamed:@"pandora"]; From b0a212bc4c498e482bd84c55d8dc43657e1d5ca6 Mon Sep 17 00:00:00 2001 From: Brett Pynn Date: Fri, 31 Mar 2017 09:31:02 -0700 Subject: [PATCH 2/3] Fixed issue placing setTemplate on wrong line. --- Sources/HermesAppDelegate.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/HermesAppDelegate.m b/Sources/HermesAppDelegate.m index 216445a..eb85267 100644 --- a/Sources/HermesAppDelegate.m +++ b/Sources/HermesAppDelegate.m @@ -597,9 +597,9 @@ - (IBAction) updateStatusItem:(id)sender { } else if (PREF_KEY_BOOL(STATUS_BAR_ICON_BW_ONLY)) { // Use b&w only application image icon = [NSImage imageNamed:@"Pandora-Menu-BW-Only"]; + [icon setTemplate:YES]; } else if (PREF_KEY_BOOL(STATUS_BAR_ICON_ALBUM)) { icon = [self buildPlayPauseAlbumArtImage:size]; - [icon setTemplate:YES]; } else { // Use color application image icon = [NSImage imageNamed:@"pandora"]; From 90cc6ee79ab4a549cf6ff3e7e612799bdf30b323 Mon Sep 17 00:00:00 2001 From: Brett Pynn Date: Fri, 31 Mar 2017 09:38:02 -0700 Subject: [PATCH 3/3] Fix issue with setTemplate being on the wrong icon logic section. --- Sources/HermesAppDelegate.m | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Sources/HermesAppDelegate.m b/Sources/HermesAppDelegate.m index eb85267..6a25e46 100644 --- a/Sources/HermesAppDelegate.m +++ b/Sources/HermesAppDelegate.m @@ -595,8 +595,7 @@ - (IBAction) updateStatusItem:(id)sender { @"Pandora-Menu-Dark-Play" : @"Pandora-Menu-Dark-Pause"]; [icon setTemplate:YES]; } else if (PREF_KEY_BOOL(STATUS_BAR_ICON_BW_ONLY)) { - // Use b&w only application image - icon = [NSImage imageNamed:@"Pandora-Menu-BW-Only"]; + icon = [NSImage imageNamed:@"Pandora-Menu-BW-Only"]; // Use b&w only application image [icon setTemplate:YES]; } else if (PREF_KEY_BOOL(STATUS_BAR_ICON_ALBUM)) { icon = [self buildPlayPauseAlbumArtImage:size];