1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
/*
Copyright (c) 1998-2005 Benhur Stein
This file is part of Paj.
Paj is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
Paj is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
for more details.
You should have received a copy of the GNU Lesser General Public License
along with Paj; if not, write to the Free Software Foundation, Inc.,
59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*/
#include "NSUserDefaults+Additions.h"
#include "NSColor+Additions.h"
#include "UniqueString.h"
@implementation NSUserDefaults (Additions)
- (void)setColor:(NSColor *)color forKey:(NSString *)key
{
[self setObject:[color description] forKey:[key description]];
}
- (NSColor *)colorForKey:(NSString *)key
{
return [NSColor colorFromString:[self objectForKey:key]];
}
- (void)setColorDictionary:(NSDictionary *)dict forKey:(NSString *)key
{
NSMutableDictionary *newdict = [NSMutableDictionary dictionary];
NSEnumerator *en = [dict keyEnumerator];
id colorKey;
while ((colorKey = [en nextObject]) != nil) {
NSColor *c = [dict objectForKey:colorKey];
if ([c isKindOfClass:[NSColor class]]) {
[newdict setObject:[c description] forKey:[colorKey description]];
}
}
[self setObject:newdict forKey:[key description]];
}
- (NSDictionary *)colorDictionaryForKey:(NSString *)key
{
NSDictionary *dict = [self dictionaryForKey:key];
if (dict != nil) {
NSEnumerator *en = [dict keyEnumerator];
id key;
NSColor *c;
NSMutableDictionary *newdict = [NSMutableDictionary dictionary];
while ((key = [en nextObject]) != nil) {
c = [NSColor colorFromString:[dict objectForKey:key]];
if (c != nil) {
[newdict setObject:c forKey:U(key)];
}
}
dict = newdict;
}
return dict;
}
- (void)setRect:(NSRect)rect forKey:(NSString *)key
{
[self setObject:NSStringFromRect(rect) forKey:key];
}
- (NSRect)rectForKey:(NSString *)key
{
NSString *s = [self stringForKey:key];
if (s != nil) {
return NSRectFromString(s);
} else {
return NSZeroRect;
}
}
- (void)setDouble:(double)value forKey:(NSString *)key
{
[self setObject:[NSNumber numberWithDouble:value] forKey:key];
}
- (double)doubleForKey:(NSString *)key
{
id obj;
obj = [self objectForKey:key];
if (obj != nil && ([obj isKindOfClass:[NSString class]]
|| [obj isKindOfClass:[NSNumber class]])) {
return [obj doubleValue];
}
return 0;
}
- (void)setArchivedObject:(id)anObject forKey:(NSString *)aKey
{
NSData *archivedObject;
archivedObject = [NSArchiver archivedDataWithRootObject:anObject];
[self setObject:archivedObject forKey:aKey];
}
- (id)unarchiveObjectForKey:(NSString *)aKey
{
NSData *archivedObject;
archivedObject = [self objectForKey:aKey];
if ([archivedObject isKindOfClass:[NSData class]]) {
return [NSUnarchiver unarchiveObjectWithData:archivedObject];
} else {
return archivedObject;
}
}
@end
|