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