Author: rmottola
Date: Sun Mar 22 23:41:10 2015
New Revision: 38424
URL: http://svn.gna.org/viewcvs/gnustep?rev=38424&view=rev
Log:
Direct preferences method for setting and getting colors
Modified:
apps/projectcenter/trunk/ChangeLog
apps/projectcenter/trunk/Headers/Protocols/Preferences.h
apps/projectcenter/trunk/PCPrefController.m
Modified: apps/projectcenter/trunk/ChangeLog
URL:
http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/ChangeLog?rev=38424&r1=38423&r2=38424&view=diff
==============================================================================
--- apps/projectcenter/trunk/ChangeLog (original)
+++ apps/projectcenter/trunk/ChangeLog Sun Mar 22 23:41:10 2015
@@ -1,3 +1,9 @@
+2015-03-22 Riccardo Mottola <[email protected]>
+
+ * Headers/Protocols/Preferences.h
+ * PCPrefController.m
+ Direct preferences method for setting and getting colors.
+
2015-03-22 Riccardo Mottola <[email protected]>
* Modules/Preferences/EditorFSC/PCEditorFSCPrefs.m
Modified: apps/projectcenter/trunk/Headers/Protocols/Preferences.h
URL:
http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/Headers/Protocols/Preferences.h?rev=38424&r1=38423&r2=38424&view=diff
==============================================================================
--- apps/projectcenter/trunk/Headers/Protocols/Preferences.h (original)
+++ apps/projectcenter/trunk/Headers/Protocols/Preferences.h Sun Mar 22
23:41:10 2015
@@ -34,6 +34,7 @@
@protocol PCPreferences <NSObject>
- (NSColor *)colorFromString:(NSString *)colorString;
+- (NSString *)stringFromColor:(NSColor *)color;
- (NSString *)stringForKey:(NSString *)key;
- (NSString *)stringForKey:(NSString *)key
@@ -47,6 +48,10 @@
- (float)floatForKey:(NSString *)key
defaultValue:(float)defaultValue;
+- (NSColor *)colorForKey:(NSString *)key;
+- (NSColor *)colorForKey:(NSString *)key
+ defaultValue:(NSColor *)defaultValue;
+
- (void)setString:(NSString *)stringValue
forKey:(NSString *)aKey
notify:(BOOL)notify;
@@ -56,7 +61,9 @@
- (void)setFloat:(float)floatValue
forKey:(NSString *)aKey
notify:(BOOL)notify;
-
+- (void)setColor:(NSColor *)color
+ forKey:(NSString *)aKey
+ notify:(BOOL)notify;
@end
@protocol PCPrefsSection <NSObject>
Modified: apps/projectcenter/trunk/PCPrefController.m
URL:
http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/PCPrefController.m?rev=38424&r1=38423&r2=38424&view=diff
==============================================================================
--- apps/projectcenter/trunk/PCPrefController.m (original)
+++ apps/projectcenter/trunk/PCPrefController.m Sun Mar 22 23:41:10 2015
@@ -103,6 +103,30 @@
return color;
}
+- (NSString *)stringFromColor:(NSColor *)color
+{
+ NSString *colorString;
+
+ colorString = nil;
+ if ([[color colorSpaceName] isEqualToString:NSCalibratedWhiteColorSpace])
+ {
+ colorString = [NSString stringWithFormat:@"White %0.1f",
+ [color whiteComponent]];
+ }
+ else
+ {
+ if (![[color colorSpaceName] isEqualToString:NSCalibratedRGBColorSpace])
+ color = [color colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
+ colorString = [NSString stringWithFormat:@"RGB %0.1f %0.1f %0.1f",
+ [color redComponent],
+ [color greenComponent],
+ [color blueComponent]];
+ }
+
+ NSLog(@"serialized color: '%@'", colorString);
+ return colorString;
+}
+
// ----------------------------------------------------------------------------
// --- Accessors
// ----------------------------------------------------------------------------
@@ -176,6 +200,33 @@
}
}
+- (NSColor *)colorForKey:(NSString *)key
+{
+ return [self colorForKey:key defaultValue:nil];
+}
+
+- (NSColor *)colorForKey:(NSString *)key
+ defaultValue:(NSColor *)defaultValue
+{
+ NSString *stringValue = [[NSUserDefaults standardUserDefaults]
+ objectForKey:key];
+
+ if (stringValue)
+ {
+ NSColor *color;
+
+ color = [self colorFromString:stringValue];
+ return color;
+ }
+ else if (defaultValue)
+ {
+ [self setColor:defaultValue forKey:key notify:NO];
+ return defaultValue;
+ }
+
+ return defaultValue; // returns nil
+}
+
- (void)setString:(NSString *)stringValue
forKey:(NSString *)aKey
notify:(BOOL)notify
@@ -214,6 +265,24 @@
{
NSString *stringValue = [NSString stringWithFormat:@"%0.1f", floatValue];
+ [[NSUserDefaults standardUserDefaults] setObject:stringValue
+ forKey:aKey];
+
+ if (notify)
+ {
+ [[NSNotificationCenter defaultCenter]
+ postNotificationName:PCPreferencesDidChangeNotification
+ object:self];
+ }
+}
+
+- (void)setColor:(NSColor *)color
+ forKey:(NSString *)aKey
+ notify:(BOOL)notify
+{
+ NSString *stringValue;
+
+ stringValue = [self stringFromColor:color];
[[NSUserDefaults standardUserDefaults] setObject:stringValue
forKey:aKey];
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs