Browse Source

* Fixed menu icon size
* Added icon for dark mode
* Added detection for interface mode changing from light to dark and adjusting the icon accordingly

Grant Limberg 9 years ago
parent
commit
73fd934fec

+ 2 - 0
ZeroTier One/AppDelegate.h

@@ -46,4 +46,6 @@
 - (void)menuWillOpen:(NSMenu*)menu;
 - (void)menuWillOpen:(NSMenu*)menu;
 - (void)menuDidClose:(NSMenu*)menu;
 - (void)menuDidClose:(NSMenu*)menu;
 
 
+- (void)darkModeChanged:(NSNotification*)note;
+
 @end
 @end

+ 27 - 1
ZeroTier One/AppDelegate.m

@@ -44,7 +44,19 @@
                name:StatusUpdateKey
                name:StatusUpdateKey
              object:nil];
              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];
     [self buildMenu];
 
 
@@ -82,6 +94,9 @@
 
 
 - (void)applicationWillTerminate:(NSNotification *)aNotification {
 - (void)applicationWillTerminate:(NSNotification *)aNotification {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
     [[NSNotificationCenter defaultCenter] removeObserver:self];
+    [[NSDistributedNotificationCenter defaultCenter] removeObserver:self
+                                                               name:@"AppleInterfaceThemeChangedNotification"
+                                                             object:nil];
 }
 }
 
 
 - (void)showNetworks {
 - (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
 @end

+ 0 - 1
ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/Contents.json

@@ -7,7 +7,6 @@
     },
     },
     {
     {
       "idiom" : "mac",
       "idiom" : "mac",
-      "filename" : "[email protected]",
       "scale" : "2x"
       "scale" : "2x"
     }
     }
   ],
   ],

BIN
ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/Menubar.png


+ 20 - 0
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"
+  }
+}

BIN
ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/[email protected] → ZeroTier One/Assets.xcassets/MenuBarIconMacWhite.imageset/MenubarWhite.png