2 // GrowlBrushedPrefsController.m
5 // Created by Ingmar Stein on 12/01/2004.
6 // Copyright 2004-2006 The Growl Project. All rights reserved.
9 #import "GrowlBrushedPrefsController.h"
10 #import "GrowlBrushedDefines.h"
11 #import "GrowlDefinesInternal.h"
14 @implementation GrowlBrushedPrefsController
16 - (NSString *) mainNibName {
17 return @"BrushedPrefs";
20 + (NSColor *) loadColor:(NSString *)key defaultColor:(NSColor *)defaultColor {
23 READ_GROWL_PREF_VALUE(key, GrowlBrushedPrefDomain, NSData *, &data);
25 CFMakeCollectable(data);
26 if (data && [data isKindOfClass:[NSData class]]) {
27 color = [NSUnarchiver unarchiveObjectWithData:data];
39 - (NSInteger) numberOfItemsInComboBox:(NSComboBox *)aComboBox {
40 #pragma unused(aComboBox)
41 return [[NSScreen screens] count];
44 - (id) comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)idx {
45 #pragma unused(aComboBox)
47 return [NSNumber numberWithInteger:idx];
49 return [NSNumber numberWithInt:idx];
55 - (CGFloat) duration {
56 CGFloat value = GrowlBrushedDurationPrefDefault;
57 READ_GROWL_PREF_FLOAT(GrowlBrushedDurationPref, GrowlBrushedPrefDomain, &value);
61 - (void) setDuration:(CGFloat)value {
62 WRITE_GROWL_PREF_FLOAT(GrowlBrushedDurationPref, value, GrowlBrushedPrefDomain);
66 #pragma mark priority color settings
68 - (NSColor *) textColorVeryLow {
69 return [GrowlBrushedPrefsController loadColor:GrowlBrushedVeryLowTextColor
70 defaultColor:[NSColor colorWithCalibratedWhite:0.1 alpha:1.0]];
73 - (void) setTextColorVeryLow:(NSColor *)value {
74 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
75 WRITE_GROWL_PREF_VALUE(GrowlBrushedVeryLowTextColor, theData, GrowlBrushedPrefDomain);
79 - (NSColor *) textColorModerate {
80 return [GrowlBrushedPrefsController loadColor:GrowlBrushedModerateTextColor
81 defaultColor:[NSColor colorWithCalibratedWhite:0.1 alpha:1.0]];
84 - (void) setTextColorModerate:(NSColor *)value {
85 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
86 WRITE_GROWL_PREF_VALUE(GrowlBrushedModerateTextColor, theData, GrowlBrushedPrefDomain);
90 - (NSColor *) textColorNormal {
91 return [GrowlBrushedPrefsController loadColor:GrowlBrushedNormalTextColor
92 defaultColor:[NSColor colorWithCalibratedWhite:0.1 alpha:1.0]];
95 - (void) setTextColorNormal:(NSColor *)value {
96 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
97 WRITE_GROWL_PREF_VALUE(GrowlBrushedNormalTextColor, theData, GrowlBrushedPrefDomain);
101 - (NSColor *) textColorHigh {
102 return [GrowlBrushedPrefsController loadColor:GrowlBrushedHighTextColor
103 defaultColor:[NSColor colorWithCalibratedWhite:0.1 alpha:1.0]];
106 - (void) setTextColorHigh:(NSColor *)value {
107 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
108 WRITE_GROWL_PREF_VALUE(GrowlBrushedHighTextColor, theData, GrowlBrushedPrefDomain);
109 UPDATE_GROWL_PREFS();
112 - (NSColor *) textColorEmergency {
113 return [GrowlBrushedPrefsController loadColor:GrowlBrushedEmergencyTextColor
114 defaultColor:[NSColor colorWithCalibratedWhite:0.1 alpha:1.0]];
117 - (void) setTextColorEmergency:(NSColor *)value {
118 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
119 WRITE_GROWL_PREF_VALUE(GrowlBrushedEmergencyTextColor, theData, GrowlBrushedPrefDomain);
120 UPDATE_GROWL_PREFS();
127 READ_GROWL_PREF_INT(GrowlBrushedScreenPref, GrowlBrushedPrefDomain, &value);
131 - (void) setScreen:(int)value {
132 WRITE_GROWL_PREF_INT(GrowlBrushedScreenPref, value, GrowlBrushedPrefDomain);
133 UPDATE_GROWL_PREFS();
138 - (BOOL) isFloatingIcon {
139 BOOL value = GrowlBrushedFloatIconPrefDefault;
140 READ_GROWL_PREF_BOOL(GrowlBrushedFloatIconPref, GrowlBrushedPrefDomain, &value);
144 - (void) setFloatingIcon:(BOOL)value {
145 WRITE_GROWL_PREF_BOOL(GrowlBrushedFloatIconPref, value, GrowlBrushedPrefDomain);
146 UPDATE_GROWL_PREFS();
152 BOOL value = GrowlBrushedLimitPrefDefault;
153 READ_GROWL_PREF_BOOL(GrowlBrushedLimitPref, GrowlBrushedPrefDomain, &value);
157 - (void) setLimit:(BOOL)value {
158 WRITE_GROWL_PREF_BOOL(GrowlBrushedLimitPref, value, GrowlBrushedPrefDomain);
159 UPDATE_GROWL_PREFS();
165 BOOL value = GrowlBrushedAquaPrefDefault;
166 READ_GROWL_PREF_BOOL(GrowlBrushedAquaPref, GrowlBrushedPrefDomain, &value);
170 - (void) setAqua:(BOOL)value {
171 WRITE_GROWL_PREF_BOOL(GrowlBrushedAquaPref, value, GrowlBrushedPrefDomain);
172 UPDATE_GROWL_PREFS();
177 READ_GROWL_PREF_INT(GrowlBrushedSizePref, GrowlBrushedPrefDomain, &value);
181 - (void) setSize:(int)value {
182 WRITE_GROWL_PREF_INT(GrowlBrushedSizePref, value, GrowlBrushedPrefDomain);
183 UPDATE_GROWL_PREFS();