Revision: 26467
          http://sourceforge.net/p/bibdesk/svn/26467
Author:   hofman
Date:     2021-07-22 18:36:42 +0000 (Thu, 22 Jul 2021)
Log Message:
-----------
Use some custom color names for color field groups

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

Modified: trunk/bibdesk/BDSKCategoryGroup.m
===================================================================
--- trunk/bibdesk/BDSKCategoryGroup.m   2021-07-22 17:59:14 UTC (rev 26466)
+++ trunk/bibdesk/BDSKCategoryGroup.m   2021-07-22 18:36:42 UTC (rev 26467)
@@ -41,6 +41,7 @@
 #import "BibAuthor.h"
 #import "BDSKTypeManager.h"
 #import "NSImage_BDSKExtensions.h"
+#import "NSColor_BDSKExtensions.h"
 #import <QuartzCore/QuartzCore.h>
 
 
@@ -173,6 +174,13 @@
 
 - (BDSKGroupType)groupType { return BDSKCategoryGroupType; }
 
+- (NSString *)displayName {
+    if ([key isEqualToString:BDSKColorLabelString] || [key 
isEqualToString:BDSKColorString])
+        return [NSColor nameForFourByteString:name];
+    else
+        return [super displayName];
+}
+
 - (BOOL)isNameEditable { return [key isEqualToString:BDSKColorLabelString] == 
NO && [key isEqualToString:BDSKColorString] == NO; }
 
 - (BOOL)isEditable {
@@ -210,10 +218,6 @@
     return [NSString stringWithFormat:NSLocalizedString(@"Empty %@", @""), 
key];
 }
 
-- (NSString *)stringValue {
-    return [NSString stringWithFormat:NSLocalizedString(@"Empty %@", @""), 
key];
-}
-
 - (BOOL)containsItem:(BibItem *)item {
        if (key == nil)
                return YES;

Modified: trunk/bibdesk/NSColor_BDSKExtensions.h
===================================================================
--- trunk/bibdesk/NSColor_BDSKExtensions.h      2021-07-22 17:59:14 UTC (rev 
26466)
+++ trunk/bibdesk/NSColor_BDSKExtensions.h      2021-07-22 18:36:42 UTC (rev 
26467)
@@ -78,6 +78,8 @@
 + (NSColor *)colorWithFourByteString:(NSString *)string;
 - (id)fourByteStringValue;
 
++ (NSString *)nameForFourByteString:(NSString *)string;
+
 - (BOOL)isBlackOrWhiteOrTransparentForMargin:(CGFloat)margin;
 
 - (NSComparisonResult)colorCompare:(id)other;

Modified: trunk/bibdesk/NSColor_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/NSColor_BDSKExtensions.m      2021-07-22 17:59:14 UTC (rev 
26466)
+++ trunk/bibdesk/NSColor_BDSKExtensions.m      2021-07-22 18:36:42 UTC (rev 
26467)
@@ -322,6 +322,21 @@
     return string;
 }
 
++ (NSString *)nameForFourByteString:(NSString *)string {
+    NSString *name = @"";
+    if ([NSString isEmptyString:string] == NO) {
+        uint32_t label = strtoul([string UTF8String], NULL, 10);
+        if (label > 0 && label <= [[self labelNames] count]) {
+            name = [[NSColor labelNames] objectAtIndex:label - 1];
+        } else if (label > 0) {
+            BDSKRGBAInt u;
+            u.uintValue = CFSwapInt32BigToHost(label);
+            name = [NSString stringWithFormat:@"rgb %c %c %c", u.rgba.r, 
u.rgba.g, u.rgba.b];
+        }
+    }
+    return name;
+}
+
 - (BOOL)isBlackOrWhiteOrTransparentForMargin:(CGFloat)margin {
     CGFloat l = 0.0, s = 0.0, b = 0.0, a = 0.0;
     [[self colorUsingColorSpaceName:NSCalibratedRGBColorSpace] getHue:NULL 
saturation:&s brightness:&b alpha:&a];

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



_______________________________________________
Bibdesk-commit mailing list
Bibdesk-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to