diff --git a/ChangeLog b/ChangeLog index 4c3a815..1bc4214 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2015-03-22 Riccardo Mottola + + * Headers/Protocols/Preferences.h + * Modules/Preferences/EditorFSC/PCEditorFSCPrefs.m + * PCPrefController.m + Move colorFromString from PCEditorFSCPrefs to PCPrefsController and make it thus generally available. + 2015-03-12 Riccardo Mottola * Modules/Projects/Framework/PCFrameworkProject.m diff --git a/Headers/Protocols/Preferences.h b/Headers/Protocols/Preferences.h index fa9d11c..938495f 100644 --- a/Headers/Protocols/Preferences.h +++ b/Headers/Protocols/Preferences.h @@ -1,9 +1,10 @@ /* GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html - Copyright (C) 2005 Free Software Foundation + Copyright (C) 2005-2015 Free Software Foundation Authors: Serg Stoyan + Riccardo Mottola This file is part of GNUstep. @@ -32,6 +33,8 @@ @protocol PCPreferences +- (NSColor *)colorFromString:(NSString *)colorString; + - (NSString *)stringForKey:(NSString *)key; - (NSString *)stringForKey:(NSString *)key defaultValue:(NSString *)defaultValue; diff --git a/Modules/Preferences/EditorFSC/PCEditorFSCPrefs.m b/Modules/Preferences/EditorFSC/PCEditorFSCPrefs.m index f8b9174..4094447 100644 --- a/Modules/Preferences/EditorFSC/PCEditorFSCPrefs.m +++ b/Modules/Preferences/EditorFSC/PCEditorFSCPrefs.m @@ -147,32 +147,7 @@ } } -- (NSColor *)colorFromString:(NSString *)colorString -{ - NSArray *colorComponents; - NSString *colorSpaceName; - NSColor *color; - colorComponents = [colorString componentsSeparatedByString:@" "]; - colorSpaceName = [colorComponents objectAtIndex:0]; - - if ([colorSpaceName isEqualToString:@"White"]) // Treat as WhiteColorSpace - { - color = [NSColor - colorWithCalibratedWhite:[[colorComponents objectAtIndex:1] floatValue] - alpha:1.0]; - } - else // Treat as RGBColorSpace - { - color = [NSColor - colorWithCalibratedRed:[[colorComponents objectAtIndex:1] floatValue] - green:[[colorComponents objectAtIndex:2] floatValue] - blue:[[colorComponents objectAtIndex:3] floatValue] - alpha:1.0]; - } - - return color; -} // ---------------------------------------------------------------------------- // --- Protocol @@ -213,15 +188,15 @@ // Colors val = [prefs stringForKey:EditorForegroundColor defaultValue:@"White 0.0"]; - currentForegroundColor = [self colorFromString:val]; + currentForegroundColor = [prefs colorFromString:val]; [foregroundColorWell setColor:currentForegroundColor]; val = [prefs stringForKey:EditorBackgroundColor defaultValue:@"White 1.0"]; - currentBackgroundColor = [self colorFromString:val]; + currentBackgroundColor = [prefs colorFromString:val]; [backgroundColorWell setColor:currentBackgroundColor]; val = [prefs stringForKey:EditorSelectionColor defaultValue:@"White 0.66"]; - currentSelectionColor = [self colorFromString:val]; + currentSelectionColor = [prefs colorFromString:val]; [selectionColorWell setColor:currentSelectionColor]; } diff --git a/PCPrefController.m b/PCPrefController.m index ad04462..8920166 100644 --- a/PCPrefController.m +++ b/PCPrefController.m @@ -1,7 +1,7 @@ /* GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html - Copyright (C) 2001-2008 Free Software Foundation + Copyright (C) 2001-2015 Free Software Foundation This file is part of GNUstep. @@ -29,6 +29,7 @@ @implementation PCPrefController + // =========================================================================== // ==== Class methods // =========================================================================== @@ -72,7 +73,40 @@ static PCPrefController *_prefCtrllr = nil; { } -// Accessory +// ---------------------------------------------------------------------------- +// --- color utility method +// ---------------------------------------------------------------------------- +- (NSColor *)colorFromString:(NSString *)colorString +{ + NSArray *colorComponents; + NSString *colorSpaceName; + NSColor *color; + + colorComponents = [colorString componentsSeparatedByString:@" "]; + colorSpaceName = [colorComponents objectAtIndex:0]; + + if ([colorSpaceName isEqualToString:@"White"]) // Treat as WhiteColorSpace + { + color = [NSColor + colorWithCalibratedWhite:[[colorComponents objectAtIndex:1] floatValue] + alpha:1.0]; + } + else // Treat as RGBColorSpace + { + color = [NSColor + colorWithCalibratedRed:[[colorComponents objectAtIndex:1] floatValue] + green:[[colorComponents objectAtIndex:2] floatValue] + blue:[[colorComponents objectAtIndex:3] floatValue] + alpha:1.0]; + } + + return color; +} + +// ---------------------------------------------------------------------------- +// --- Accessors +// ---------------------------------------------------------------------------- + - (NSString *)stringForKey:(NSString *)key { return [self stringForKey:key defaultValue:nil];