From 73fd934fecba8caca04215be86c6604068bbfd4c Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Tue, 9 Aug 2016 20:02:12 -0700 Subject: [PATCH] * Fixed menu icon size * Added icon for dark mode * Added detection for interface mode changing from light to dark and adjusting the icon accordingly --- ZeroTier One/AppDelegate.h | 2 ++ ZeroTier One/AppDelegate.m | 28 +++++++++++++++++- .../MenuBarIconMac.imageset/Contents.json | 1 - .../MenuBarIconMac.imageset/Menubar.png | Bin 14843 -> 17234 bytes .../Contents.json | 20 +++++++++++++ .../MenubarWhite.png} | Bin 15769 -> 17234 bytes 6 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 ZeroTier One/Assets.xcassets/MenuBarIconMacWhite.imageset/Contents.json rename ZeroTier One/Assets.xcassets/{MenuBarIconMac.imageset/MenuBar@2x.png => MenuBarIconMacWhite.imageset/MenubarWhite.png} (81%) diff --git a/ZeroTier One/AppDelegate.h b/ZeroTier One/AppDelegate.h index b180261c4..d77797279 100644 --- a/ZeroTier One/AppDelegate.h +++ b/ZeroTier One/AppDelegate.h @@ -46,4 +46,6 @@ - (void)menuWillOpen:(NSMenu*)menu; - (void)menuDidClose:(NSMenu*)menu; +- (void)darkModeChanged:(NSNotification*)note; + @end diff --git a/ZeroTier One/AppDelegate.m b/ZeroTier One/AppDelegate.m index 6acac165e..f60ccb6b6 100644 --- a/ZeroTier One/AppDelegate.m +++ b/ZeroTier One/AppDelegate.m @@ -44,7 +44,19 @@ name:StatusUpdateKey object:nil]; - self.statusItem.image = [NSImage imageNamed:@"MenuBarIconMac"]; + NSString *osxMode = [defaults stringForKey:@"AppleInterfaceStyle"]; + + if(osxMode != nil && [osxMode isEqualToString:@"Dark"]) { + self.statusItem.image = [NSImage imageNamed:@"MenuBarIconMacWhite"]; + } + else { + self.statusItem.image = [NSImage imageNamed:@"MenuBarIconMac"]; + } + + [[NSDistributedNotificationCenter defaultCenter] addObserver:self + selector:@selector(darkModeChanged:) + name:@"AppleInterfaceThemeChangedNotification" + object:nil]; [self buildMenu]; @@ -82,6 +94,9 @@ - (void)applicationWillTerminate:(NSNotification *)aNotification { [[NSNotificationCenter defaultCenter] removeObserver:self]; + [[NSDistributedNotificationCenter defaultCenter] removeObserver:self + name:@"AppleInterfaceThemeChangedNotification" + object:nil]; } - (void)showNetworks { @@ -277,4 +292,15 @@ } +- (void)darkModeChanged:(NSNotification*)note { + NSString *osxMode = [[NSUserDefaults standardUserDefaults] stringForKey:@"AppleInterfaceStyle"]; + + if(osxMode != nil && [osxMode isEqualToString:@"Dark"]) { + self.statusItem.image = [NSImage imageNamed:@"MenuBarIconMacWhite"]; + } + else { + self.statusItem.image = [NSImage imageNamed:@"MenuBarIconMac"]; + } +} + @end diff --git a/ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/Contents.json b/ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/Contents.json index a680b58b8..84b363863 100644 --- a/ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/Contents.json +++ b/ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/Contents.json @@ -7,7 +7,6 @@ }, { "idiom" : "mac", - "filename" : "MenuBar@2x.png", "scale" : "2x" } ], diff --git a/ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/Menubar.png b/ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/Menubar.png index 84ca66261e68244259d44ef4c8d87ccc3b525303..ee0d7e3fdf8da51765ea0e17fe32201b7252661c 100644 GIT binary patch literal 17234 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 B=A{4t diff --git a/ZeroTier One/Assets.xcassets/MenuBarIconMacWhite.imageset/Contents.json b/ZeroTier One/Assets.xcassets/MenuBarIconMacWhite.imageset/Contents.json new file mode 100644 index 000000000..cd55e6eb4 --- /dev/null +++ b/ZeroTier One/Assets.xcassets/MenuBarIconMacWhite.imageset/Contents.json @@ -0,0 +1,20 @@ +{ + "images" : [ + { + "idiom" : "mac", + "filename" : "MenubarWhite.png", + "scale" : "1x" + }, + { + "idiom" : "mac", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" + } +} \ No newline at end of file diff --git a/ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/MenuBar@2x.png b/ZeroTier One/Assets.xcassets/MenuBarIconMacWhite.imageset/MenubarWhite.png similarity index 81% rename from ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/MenuBar@2x.png rename to ZeroTier One/Assets.xcassets/MenuBarIconMacWhite.imageset/MenubarWhite.png index ce46c151fb1b6b0a325a6e4a618f97121177740c..7049ae55000a88568d1da6cb72f76c9577cd835e 100644 GIT binary patch literal 17234 zcmeHOONb*y81C`4?&u;SK2X7sWktbGcjw)0COS@bodL6sv!l*sOubq*F=CfV&5!ihSMuKdb7i zzbbv{hnM%?x@-2zSxJ(1EiG17aKDV={PS>q|Fy=Axb18&u6vSn!6g(k(vweJAxSr0 z=B%#yYt`Ef%WbAi+ub0kZnF(}Z4#5WV&W~1d9-MM6t*T6GXE6GIQ;vb$%&eIMP zYt`k%g4-d9Tq-YHS|*(+=qW9yr;FJe5@}V-D{5BJbXm(7_+`~Z*plU0Je4|j%~+}I z3%i3fm)!LIwxKB7+uNz_Ov>%l5w7csnpVh-Y=2w(q#D z1kG!1xLf{QGD$n?w{Tv~cE6*R7jg#{m9E)Vw3Mn$2&z{3Va?{)NYCGU1S1J&Hnu}= z^=O+YE5viRIu_Y`gtYwK;|9^*bbZ&`bSI3zZ=N^{+v*Rbz13+11lyKE8l;InJ;Z5a z=iocF!Qu=}fm$YZN4n00Flyjn0v}`Y{S+!YH5q4<#fi{kTo-#lZz&? zWUH97i#aQoE!eqWlEdL6sVlCvMJoZRdt2XjEu`-kmZ59;G^yoHIY&%Q)-;lrH}pJ_ zbvr|9c9xK0rWkb;OE%Kc?Hvavli7&*(7D*?%-YCi)LK@PYedf=F&0VBl8mhBmTl*2 zHBBq_yBL#Zq^m{8Lp>dh)fuWSIC~C|`-ZiVq2UB)NZagqgl^5bWVAQ?hfe=Yp)tW0 zH%yD3K4ps*FtJO@kajSveqs#=V!E~Kt?2OX ziVlU*-B=o&F41W)kJF8AT5q@}f=zpiSs&KYVTTno{>&;AwVGNWHqI=)Hu22j7h!PH z($mS-?X;b@bUABosB%%u61ivcJY7Y|E&*ou=uRou*kQO1o7rDFbE9lm3kxI8Cv$&EOQnBt~?s{~A3N8(V>Y zA+4e*8oh?0aWfmb&JT^7+0a4coh`>Nr^DVDbu5a$YZw7P2k=@<%K2O_gMUL-%|G%IlPUpj5 zMyE3?lS_2M5W*J)U3`8RtDuV^gf9xZ`1~+dK^H>^Ulerl`C+VrE`|`kDCpwz!&n7f z3?Y0`(8cG6u?o5vLinPfi_Z^Z6?8F#@I^rvpC865=wb-ri-ImbKa5q-#Sp?51zmi8 z7^|R*A%rgqy7>GsRzVj-2wxO*@%dq_f-Z&-z9{J8^TSvLT?`?7QP9Qbhp`H}7()1> zpo`BBV-<8Ugz!Z{7oQ)-D(GSe;fsPUK0l0A(8UnK7X@8>ei*Buiy?$B3cC3GFjheq zLkM3Kbn*FNtb#6v5WdKzYj*IlD{0{i*KK^tTL1W&d3*+&uohRUl5}j3B;Eg@B>jF0 z_irR=OO>RPha|~(T#_z#A3bXkDd$fBl(R#?&j9^?`!V1%fB=&_m@u{Lp#K^;30x0c z3Q#Iu1L#!i0Bx@V7Xu@7jws+nlY9XD02Bf0Gmc{idfFZV&H;vU4GE!f5qH`i0wVjk z#MJgSbws1HihP4R%Q0P`gTQydi@-m%0Ph2zApXyxJajdq7F$^p&$K-Q&{e($h;QkgkUs)w3raG| zLGRFomrzR;G2DgcUx4?3dw?&1SAZ4Z%Me-Idx>J1scuLaImPaDWCwwF0NQ>6jsyFE z_#k3w|9Qmmz)2gV?-S2VJB`lcKp$JcxF3D~lsePK@d@nF<-hlzhvLQ3uk3#A=?`bt Q=`@!1?ytOb%b^GU22B~BI{*Lx delta 1135 zcmccA#yGQDu`|HWotI0Bi-CcG*VDr#2uN#yFb5lu?D@ANccP*=lhu-qR(Xt*^O!6q z>oPe`UcuNpc^T6gUNc=I;}AnjD`P_|1Cz=1%<7ZhF$-`3Ma@GDEkHutEUJ^2FpD4y z9c5OT9LuFOS)I#lGBc-_PDO5kUP@+)m0?nfd9s1Afo_snvZbztxk(C;Fih1oG&M0# zO-fEOPfRkIypKa>@&``y$+|3(D&}b^=0=9b=DMktDQ3DBi6*JK78WKz{i&uY28kv> z^Ab}hXR+v$X2WF`do^O5VxvF#Ba7tZXDot~lUO&a5Tj+XC7T6mkZrDGQ(z>{BS5{# zp;*V(GC78gYw}c%yv^-g%8X1V29wutn**uMPr38;SuO{3#Z8W|)~jdA_jGX#skrrK zhIK}$qd?pKV&PtiqZ&Ky95^FRMEe@ zG-_m`TK}W9s5^Hx40Z!`hj7#Oi2z) zRfE)+BB%;Y`b-CNIOWy{FtS^rT# zA)Zg}4Z|_hbf>;4(R?#n{VfE(hFSVCjXsl^wqnHhBCE zwyKvay7%JMX=lyFn?C6p+_x0t&w3|r`LL(FU@o8ODW83o#?HQPnG(Xq8m6sgQ~L1A zz+hRODYt|7p?;-_^|5bf=`h^B!q&Q4;!}N8t|j+@^~WM-DKY9SeW>Ak*s9^_M22aX zgMQaD)@1#f%JCrTjAi`<)(5_>f(?fS8NO*)*QvxY8SHc~5#Q3n&lF zH7+?=nt1x~Hm4yK+X< zhj|){S3i{avZ~`t?0q>c#=LoJC!LIY!1lpzX-k=RpV{)KlYM!oujXE*vPE>|xzGFm zgn4*&#XT)A{;A^mjB)l?D=8<5?-zboGo1MOGDrGY)&>R!V6o!q>gTe~DWM4f