Revision: 24112
          http://sourceforge.net/p/bibdesk/svn/24112
Author:   hofman
Date:     2019-08-02 20:55:12 +0000 (Fri, 02 Aug 2019)
Log Message:
-----------
use system red with dark and light appearance for red paperclip

Modified Paths:
--------------
    trunk/bibdesk/NSColor_BDSKExtensions.h
    trunk/bibdesk/NSColor_BDSKExtensions.m
    trunk/bibdesk/NSImage_BDSKExtensions.m

Modified: trunk/bibdesk/NSColor_BDSKExtensions.h
===================================================================
--- trunk/bibdesk/NSColor_BDSKExtensions.h      2019-08-02 09:51:32 UTC (rev 
24111)
+++ trunk/bibdesk/NSColor_BDSKExtensions.h      2019-08-02 20:55:12 UTC (rev 
24112)
@@ -43,6 +43,8 @@
 extern void BDSKSetHasDarkAppearance(id object);
 extern void BDSKSetHasLightAppearance(id object);
 extern void BDSKRunWithAppearance(id object, void (^code)(void));
+extern void BDSKRunWithLightAppearance(void (^code)(void));
+extern void BDSKRunWithDarkAppearance(void (^code)(void));
 
 @interface NSColor (BDSKExtensions)
 

Modified: trunk/bibdesk/NSColor_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/NSColor_BDSKExtensions.m      2019-08-02 09:51:32 UTC (rev 
24111)
+++ trunk/bibdesk/NSColor_BDSKExtensions.m      2019-08-02 20:55:12 UTC (rev 
24112)
@@ -114,10 +114,39 @@
     }
 }
 
+void BDSKRunWithLightAppearance(void (^code)(void)) {
+    if (RUNNING_AFTER(10_13)) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpartial-availability"
+        NSAppearance *appearance = [[[NSAppearance currentAppearance] retain] 
autorelease];
+        [NSAppearance setCurrentAppearance:[NSAppearance 
appearanceNamed:@"NSAppearanceNameAqua"]];
+        code();
+        [NSAppearance setCurrentAppearance:appearance];
+#pragma clang diagnostic pop
+    } else {
+        code();
+    }
+}
+
+void BDSKRunWithDarkAppearance(void (^code)(void)) {
+    if (RUNNING_AFTER(10_13)) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpartial-availability"
+        NSAppearance *appearance = [[[NSAppearance currentAppearance] retain] 
autorelease];
+        [NSAppearance setCurrentAppearance:[NSAppearance 
appearanceNamed:@"NSAppearanceNameDarkAqua"]];
+        code();
+        [NSAppearance setCurrentAppearance:appearance];
+#pragma clang diagnostic pop
+    } else {
+        code();
+    }
+}
+
 @interface BDSKDynamicColor : NSColor {
     NSColor *aquaColor;
     NSColor *darkAquaColor;
 }
+
 - (id)initWithAquaColor:(NSColor *)aAquaColor darkAquaColor:(NSColor 
*)aDarkAquaColor;
 @end
 

Modified: trunk/bibdesk/NSImage_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/NSImage_BDSKExtensions.m      2019-08-02 09:51:32 UTC (rev 
24111)
+++ trunk/bibdesk/NSImage_BDSKExtensions.m      2019-08-02 20:55:12 UTC (rev 
24112)
@@ -486,18 +486,52 @@
 
 + (NSImage *)redPaperclipImage;
 {
-    static NSImage *image = nil;
-    if(image == nil)
-        image = createPaperclipImageWithColor([NSColor redColor], NO);
-    return image;
+    if (BDSKHasDarkAppearance(NSApp)) {
+        static NSImage *image = nil;
+        if(image == nil){
+            __block NSImage *img = nil;
+            BDSKRunWithDarkAppearance(^{
+                img = createPaperclipImageWithColor([NSColor systemRedColor], 
NO);
+            });
+            image = img;
+        }
+        return image;
+    } else {
+        static NSImage *image = nil;
+        if(image == nil){
+            __block NSImage *img = nil;
+            BDSKRunWithLightAppearance(^{
+                img = createPaperclipImageWithColor([NSColor systemRedColor], 
NO);
+            });
+            image = img;
+        }
+        return image;
+    }
 }
 
 + (NSImage *)redAnnotatedPaperclipImage;
 {
-    static NSImage *image = nil;
-    if(image == nil)
-        image = createPaperclipImageWithColor([NSColor redColor], YES);
-    return image;
+    if (BDSKHasDarkAppearance(NSApp)) {
+        static NSImage *image = nil;
+        if(image == nil){
+            __block NSImage *img = nil;
+            BDSKRunWithDarkAppearance(^{
+                img = createPaperclipImageWithColor([NSColor systemRedColor], 
YES);
+            });
+            image = img;
+        }
+        return image;
+    } else {
+        static NSImage *image = nil;
+        if(image == nil){
+            __block NSImage *img = nil;
+            BDSKRunWithLightAppearance(^{
+                img = createPaperclipImageWithColor([NSColor systemRedColor], 
YES);
+            });
+            image = img;
+        }
+        return image;
+    }
 }
 
 + (NSImage *)annotatedPaperclipImage;

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to