diff --git a/ChangeLog b/ChangeLog index 96fc9a4ab..77e1dbf43 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-11-03 Fred Kiefer + + * Source/NSColor.m (-colorUsingColorSpace): Support more color spaces. + * Source/NSColorSpace.m (COLORSPACE): Initialize the static variable. + 2009-11-03 Fred Kiefer * Source/GSThemeDrawing.m: Add more includes to apeace Riccardo's compiler. diff --git a/Source/NSColor.m b/Source/NSColor.m index da5ff42ad..355fdbcac 100644 --- a/Source/NSColor.m +++ b/Source/NSColor.m @@ -1166,6 +1166,13 @@ systemColorWithName(NSString *name) count: (int)number { // FIXME + if (space == [NSColorSpace genericRGBColorSpace] && (number == 4)) + { + return [self colorWithCalibratedRed: comp[0] + green: comp[1] + blue: comp[2] + alpha: comp[3]]; + } if (space == [NSColorSpace deviceRGBColorSpace] && (number == 4)) { return [self colorWithDeviceRed: comp[0] @@ -1173,10 +1180,22 @@ systemColorWithName(NSString *name) blue: comp[2] alpha: comp[3]]; } + if (space == [NSColorSpace genericGrayColorSpace] && (number == 2)) + { + return [NSColor colorWithCalibratedWhite: comp[0] alpha: comp[1]]; + } if (space == [NSColorSpace deviceGrayColorSpace] && (number == 2)) { return [NSColor colorWithDeviceWhite: comp[0] alpha: comp[1]]; } + if (space == [NSColorSpace genericCMYKColorSpace] && (number == 5)) + { + return [NSColor colorWithDeviceCyan: comp[0] + magenta: comp[1] + yellow: comp[2] + black: comp[3] + alpha: comp[4]]; + } if (space == [NSColorSpace deviceCMYKColorSpace] && (number == 5)) { return [NSColor colorWithDeviceCyan: comp[0] diff --git a/Source/NSColorSpace.m b/Source/NSColorSpace.m index 7a5b07683..3be6f8c9b 100644 --- a/Source/NSColorSpace.m +++ b/Source/NSColorSpace.m @@ -45,7 +45,7 @@ } #define COLORSPACE(model) \ - static NSColorSpace *csp; \ + static NSColorSpace *csp = nil; \ if (!csp) \ csp = [[self alloc] _initWithColorSpaceModel: model]; \ return csp;