From a65891d29b1b18b734785e2c92e13c92408b0213 Mon Sep 17 00:00:00 2001 From: Joel Barker Date: Thu, 29 Jun 2017 18:23:52 +0100 Subject: [PATCH] added better icons + enabled dark mode --- Mute Me Now/AppDelegate.m | 49 +++++++++++++++++++++++++++--- Mute Me Now/ViewController.m | 2 -- Mute Me.xcodeproj/project.pbxproj | 20 ++++++++++++ tray-active@2x.png | Bin 0 -> 1508 bytes tray-unactive-black@2x.png | Bin 0 -> 1414 bytes tray-unactive-white@2x.png | Bin 0 -> 1013 bytes 6 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 tray-active@2x.png create mode 100644 tray-unactive-black@2x.png create mode 100644 tray-unactive-white@2x.png diff --git a/Mute Me Now/AppDelegate.m b/Mute Me Now/AppDelegate.m index b71151a..eff0f69 100644 --- a/Mute Me Now/AppDelegate.m +++ b/Mute Me Now/AppDelegate.m @@ -20,12 +20,16 @@ @implementation AppDelegate TouchButton *button; +NSString *STATUS_ICON_BLACK = @"tray-unactive-black"; +NSString *STATUS_ICON_RED = @"tray-active"; +NSString *STATUS_ICON_WHITE = @"tray-unactive-white"; + + - (void) awakeFromNib { - self.statusBar = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; - NSImage* statusImage = [NSImage imageNamed:@"statusBarIcon"]; + NSImage* statusImage = [self getStatusBarImage]; statusImage.size = NSMakeSize(18, 18); @@ -59,8 +63,6 @@ - (void) awakeFromNib { - (void) shortCutKeyPressed { - NSLog (@"shortcut key pressed"); - [self updateMenuItem]; } @@ -97,12 +99,49 @@ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { [self enableLoginAutostart]; + + // fires if we enter / exit dark mode + [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(darkModeChanged:) name:@"AppleInterfaceThemeChangedNotification" object:nil]; + + + +} + +-(void)darkModeChanged:(NSNotification *)notif +{ + double volume = [self currentStateFixed]; + [self setStatusBarImgRed: !volume]; } + +- (NSImage*) getStatusBarImage { + + NSImage* statusImage = [NSImage imageNamed:STATUS_ICON_BLACK]; + + // see https://stackoverflow.com/questions/25379525/how-to-detect-dark-mode-in-yosemite-to-change-the-status-bar-menu-icon + NSDictionary *dict = [[NSUserDefaults standardUserDefaults] persistentDomainForName:NSGlobalDomain]; + id style = [dict objectForKey:@"AppleInterfaceStyle"]; + + BOOL darkModeOn = ( style && [style isKindOfClass:[NSString class]] && NSOrderedSame == [style caseInsensitiveCompare:@"dark"] ); + + if (darkModeOn) { + statusImage = [NSImage imageNamed:STATUS_ICON_WHITE]; + } + + return statusImage; +} + + - (void) setStatusBarImgRed:(BOOL) shouldBeRed { - NSImage* statusImage = [NSImage imageNamed:@"statusBarIcon"]; + NSImage* statusImage = [self getStatusBarImage]; + + if (shouldBeRed) { + NSLog (@"using red"); + statusImage = [NSImage imageNamed:STATUS_ICON_RED]; + } + statusImage.size = NSMakeSize(18, 18); [statusImage setTemplate:!shouldBeRed]; diff --git a/Mute Me Now/ViewController.m b/Mute Me Now/ViewController.m index 73d92f0..8566022 100644 --- a/Mute Me Now/ViewController.m +++ b/Mute Me Now/ViewController.m @@ -24,8 +24,6 @@ - (void)viewDidLoad { BOOL statusBarState = [[NSUserDefaults standardUserDefaults] boolForKey:@"status_bar"]; [self.showInMenuBarState setState: statusBarState]; - - // enable to nil out preferences //[[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"status_bar"]; //[[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"auto_login"]; diff --git a/Mute Me.xcodeproj/project.pbxproj b/Mute Me.xcodeproj/project.pbxproj index bdcd74d..003ffa1 100644 --- a/Mute Me.xcodeproj/project.pbxproj +++ b/Mute Me.xcodeproj/project.pbxproj @@ -18,6 +18,9 @@ 11B86E6B1EDE9D1A0069D254 /* volume_sript.scpt in Resources */ = {isa = PBXBuildFile; fileRef = 11B86E691EDE9D1A0069D254 /* volume_sript.scpt */; }; 11B86E981EDEC6720069D254 /* ServiceManagement.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 11B86E921EDEAD1D0069D254 /* ServiceManagement.framework */; }; 11EA56D81EF3C2AC003AF236 /* Mute Me Now Launcher.app in CopyFiles */ = {isa = PBXBuildFile; fileRef = 11C515681EEA9F6E004CE22A /* Mute Me Now Launcher.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 5D4763221F0562E6005E8DB0 /* tray-unactive-white@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5D47631F1F0562E6005E8DB0 /* tray-unactive-white@2x.png */; }; + 5D4763231F0562E6005E8DB0 /* tray-unactive-black@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5D4763201F0562E6005E8DB0 /* tray-unactive-black@2x.png */; }; + 5D4763241F0562E6005E8DB0 /* tray-active@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5D4763211F0562E6005E8DB0 /* tray-active@2x.png */; }; 5DA60BDA1EFAB9270045BDCF /* statusBarIcon2.png in Resources */ = {isa = PBXBuildFile; fileRef = 5DA60BD91EFAB9270045BDCF /* statusBarIcon2.png */; }; 5DA60C531EFBC5400045BDCF /* statusBarIcon3.png in Resources */ = {isa = PBXBuildFile; fileRef = 5DA60C521EFBC5400045BDCF /* statusBarIcon3.png */; }; 5DA60C551EFBC5D30045BDCF /* statusBarIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 5DA60C541EFBC5D30045BDCF /* statusBarIcon.png */; }; @@ -76,6 +79,9 @@ 11B86E9A1EDECB3F0069D254 /* Mute Me Now.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Mute Me Now.entitlements"; sourceTree = ""; }; 30004556042F084BBC0CA872 /* libPods-Mute Me.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Mute Me.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 51C19D181CC260D65112962D /* Pods-Mute Me.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mute Me.release.xcconfig"; path = "Pods/Target Support Files/Pods-Mute Me/Pods-Mute Me.release.xcconfig"; sourceTree = ""; }; + 5D47631F1F0562E6005E8DB0 /* tray-unactive-white@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "tray-unactive-white@2x.png"; sourceTree = ""; }; + 5D4763201F0562E6005E8DB0 /* tray-unactive-black@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "tray-unactive-black@2x.png"; sourceTree = ""; }; + 5D4763211F0562E6005E8DB0 /* tray-active@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "tray-active@2x.png"; sourceTree = ""; }; 5DA60BD91EFAB9270045BDCF /* statusBarIcon2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = statusBarIcon2.png; sourceTree = ""; }; 5DA60C521EFBC5400045BDCF /* statusBarIcon3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = statusBarIcon3.png; sourceTree = ""; }; 5DA60C541EFBC5D30045BDCF /* statusBarIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = statusBarIcon.png; sourceTree = ""; }; @@ -99,6 +105,7 @@ 11B86E441EDE9B4C0069D254 = { isa = PBXGroup; children = ( + 5D4763251F0562F2005E8DB0 /* Graphics */, 5DA60C541EFBC5D30045BDCF /* statusBarIcon.png */, 5DA60C521EFBC5400045BDCF /* statusBarIcon3.png */, 11B86E4F1EDE9B4D0069D254 /* Mute Me Now */, @@ -166,6 +173,16 @@ name = Products; sourceTree = ""; }; + 5D4763251F0562F2005E8DB0 /* Graphics */ = { + isa = PBXGroup; + children = ( + 5D47631F1F0562E6005E8DB0 /* tray-unactive-white@2x.png */, + 5D4763201F0562E6005E8DB0 /* tray-unactive-black@2x.png */, + 5D4763211F0562E6005E8DB0 /* tray-active@2x.png */, + ); + name = Graphics; + sourceTree = ""; + }; AB34A6744F649834F2A21B08 /* Pods */ = { isa = PBXGroup; children = ( @@ -259,7 +276,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 5D4763241F0562E6005E8DB0 /* tray-active@2x.png in Resources */, 11B86E5A1EDE9B4D0069D254 /* Assets.xcassets in Resources */, + 5D4763231F0562E6005E8DB0 /* tray-unactive-black@2x.png in Resources */, + 5D4763221F0562E6005E8DB0 /* tray-unactive-white@2x.png in Resources */, 5DA60BDA1EFAB9270045BDCF /* statusBarIcon2.png in Resources */, 11B86E6A1EDE9D1A0069D254 /* mute_sript.scpt in Resources */, 5DA60C551EFBC5D30045BDCF /* statusBarIcon.png in Resources */, diff --git a/tray-active@2x.png b/tray-active@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6602efb802bea2b8b0f328eaaaa9474b372bd091 GIT binary patch literal 1508 zcmVNkl10y%W*%Uy{ z9cYc4i=vkh-chZnn=-kpISVg^ND-ufCvG~yFNmZY2Z#gOie^-^c`#|Po z&HahzX-^OL=-h(LV{PU7a;aXCOis^s?zzV@Z(sEz1snIH_|SzX-1hjMZr^@J2y)0z z=g1g6AK#LA*iDK#0O;T{iTTA(vgTi7^PO$AmC3Ju)s2!(FpWzp4*T#cKX%LHdyr0I z2p4Uc%c))gVd==AvxZP6`}aZE1G`~H?laAW;UH45TsKumYClM);(*N2sg9QYs>~rY zdvIHo;QWkK7AB=vO02sT%zwkWarjP!=%49mb$mI5vJ0ALBL+W=CHa#>aUzw7g^rAJ%WqpeK{27N8aksm1tfuB@)kbM~466ePe z$Id}y!F6!BkdZn#M&F%ASu=#kHC688<6F2s27KgR5hq75%2|R>Z3ufese_j#&rcaf z>5d>$lxe4kp}*iA-77&3^VW0&V>z+ItM-?`;6E2j%HNZ})DqTCmV*?+U+tAL!{`K3 zHwuxWT&wb07nbA%X<~LhQy6O_IN{TbMc%-dAX0cFgmk$E2KVh|2A(mw3jF}7`BgAp zyv~WP?kUhWB8CxGwu%kc02c;FrRT;CW36e%Q|=8dNrC+&`rtf!0!USd@wb8zcn(q9 zIK0s+l8HILC__@EdSn-nU4j{0&rLHK+Bc<>40GVn1^}dlFC(5?R)d@o_e_-xq<&w? z5-2X~#<2cjt*$Uk$io`kVbPebk;^t-i03eM$VUnfPs4~k1Y{?|`lpOuVj{v)VGWjr zwYB2YF&KcJhl4DU?r1(O4nGoANd4&E=rI=CgUc6Y48d87#Yue9t`0(2z>IVwEUJsA zAql$*5!#)(HG4hX-aKS3FMa?-*P&h|RWkU+Z~2lu#L5Rb3>)!DX4g$nsz^m(E5!E9 zzLxITz=c0+>MFLvA@&jxbR39of|T`Mh}cV-Mqh^+Su;~XnWr-zC8zg84F|S_VEVy@ z_`^{Kbnuse(JR$WiC%X;EX@}7?X0^kmd7Ci>H&KVqY;-iC`X6Qe0R;z*mau_I?A-S z^l?#4?L~1f^}_;vPe|o3`k>nEZo)|u?5{3Zw+58qQ6vSA$(b_ zDAyEzC=d0x${9Z!H>r~HXk$&J?qwD0ESVIFo*tGSPkoMcla#3~9Hd_h!R#Af$~7Zm zAFeqw+azV!Qp!(2^zBk*wj4Hk#Heq^V$`i$Geb5Q%3HglgmTvn#&?*AEc_L-sD60X z+=w4lhJD2P`2ean%j*{w{dArgk|4Ymu!zIDNy`3<7Sh^7HCtNG<~uU-5|V?@JPFY^ zjdfEoM}o9gTh$s^tPU_C#~c{b&eg0F#)rT3AcfH2*5(==PO;hvybh#onD!r@p8n1k9t+t30000< KMNUMnLSTYqsLfme literal 0 HcmV?d00001 diff --git a/tray-unactive-black@2x.png b/tray-unactive-black@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4d202567115d644634c30ee6e73eab271acbff5 GIT binary patch literal 1414 zcmV;11$p|3P)nKX$gkPhR8s5RE@WCDmjlr3kVqjhk8!(8N zX;PzyqKSF(De9qz7_?6qsAwc32!bJ~)JW-}nL@M=oX8v%zZkVtM6cTKe>mrG?z!jO za}Kp(v-e*6zt;ZWwb$8u?VHGpS=!s%^G8QVQ|Wa2G~ zK1Jui4;M(NuCDIL=H}*2l#2ZnB{K}88{_@%`HG5)uKoS}KDW%aQy=eq?3LN$Tyr*ttv%h>*QeOb*rg0Y zBO@bc0h~hVem?7=T%`Dg^R{tsn`_REWvwo@_(`|SAyividzihKtL>7L6xdQ5=xrh7 z8?auS#*iAQudjD(IfU3Izd#Hmg`q3*px+{KWqdqu+d3v89eVuYr);684I-t}+T2zT zKK76w*HKebb5x2ZAr8J*L#+6b`VAdN9-<#Qy|c4(Q6NKK77WjaYPc5H*OyEtkE1h5 z4J1V@jZ#04U|X?tL0l4S*S)a&HHwmjnS{)Vg@uJ>#gMj5q^NGWNKWwicXE#n5ucIn zvBJW_MgzqYG06O`#YIA7L`vjD#x0LwF9S;GJZj)7r4W${hh#fI{o0(QINc9NGUx%p zrCC9(d?r#M$GOcmyk>y|Nn!X(B!eCh@zx|lO0MFRe=M*r-XKyb3v)*t!~BqA+On)0 zH;NH{%`@OKV#gIzBAdtAc8R#SD~df~;G#RyFqNY!**FOO?HAA@MbJM6P8ae~;%U&< z32U)=Qyv-*1G?wI?^xpomq#)@wYIkQmz5>x$2Pk4L;B+etZsyWoN3OJ5(Ym>z;^UN zE)hh^Iy_r|P6;2Sz~#Du+rNzh7KZJ8XnA>g3dL&-Pm;jB%fVXgBJ~S$Z=gSpEGwTv zmQ}>XXl-qkThm#yJ_0;)PGZ_;AvJ-Q&T-1$B18OwxcPvoBbJ(*)O1jiXJPFoEiPuZ zR$gAN%&o_s32D!hy1p;ZKt@lZGmxvN-N(i>{bAa(jPIj5*GWh^oQGZ?-tRF9DgD6s z32}aIxa{O4B|CV>%*Px;N+UNmHdb9mB6kV)M+C+z-{(*YB!zd% z@y?2L%>+#yy(nQC*+bHaS)4$3zh+qTEt`z&IfOK@UX=an$1QA;@1-wU;Itd)>VM67Vc+(%L!VXEje*b;5)9k+8o!OUt@P9M&&Hwx6 zzq7kD^R}|7q*bfcCPMarLtq~m0NtPpmcRmd4(7m0rBeAtx$%aOPA~=5L8ys433hIn zB9gU(S@5r>9IXutBe)4%4N&nE&P4;&eKrcAQd$^6+rgSA`$Rf1{0UEtx~IYBbZllD z;uf$~os_#lo~W731hu#s;(T@=La`_ax=jzjOVHsFHBumGg!mBCOy%D`I>($WK2iMz zg8H32zUpXZ9-`VZB8x-~WhTN&p1zD+MXvg{5B9B`h&)kC@T1$B7KXp9pxHzY5@^vY zvOH1N? z8}c$`o+usQWG%HK__teveh1T&#M3kr&yMpG`tNs6&DuS1#PvJ%N7UmTKX&VDhitG`*kA2s+D6i*mHhxSqtipe z>@ADEkhIwz1=nL=s$8eNmV&kiA?+78%Rb-~H{6&h-9CL7*l5$Swr(PVl@YABuk4bL zbrJgC*XT*IUN6bCcxpx0!We4e>Lp1odiCk8r|zM)JvkMU>#gVl!$1$Qj=(x~Dp&kT j?-})ZwRt8>ebV~_r{Cbj=6d1800000NkvXXu0mjfy87c+ literal 0 HcmV?d00001