2 // GrowlMusicVideoPrefs.m
5 // Created by Jorge Salvador Caffarena on 14/09/04.
6 // Copyright 2004 Jorge Salvador Caffarena. All rights reserved.
9 #import "GrowlMusicVideoPrefs.h"
10 #import "GrowlDefinesInternal.h"
12 @implementation GrowlMusicVideoPrefs
14 - (NSString *) mainNibName {
15 return @"GrowlMusicVideoPrefs";
18 - (void) mainViewDidLoad {
19 [slider_opacity setAltIncrementValue:5.0];
23 SYNCHRONIZE_GROWL_PREFS();
28 + (NSColor *) loadColor:(NSString *)key defaultColor:(NSColor *)defaultColor {
31 READ_GROWL_PREF_VALUE(key, GrowlMusicVideoPrefDomain, NSData *, &data);
33 CFMakeCollectable(data);
35 if (data && [data isKindOfClass:[NSData class]]) {
36 color = [NSUnarchiver unarchiveObjectWithData:data];
45 #pragma mark Accessors
47 - (CGFloat) duration {
48 CGFloat value = GrowlMusicVideoDurationPrefDefault;
49 READ_GROWL_PREF_FLOAT(MUSICVIDEO_DURATION_PREF, GrowlMusicVideoPrefDomain, &value);
52 - (void) setDuration:(CGFloat)value {
53 WRITE_GROWL_PREF_FLOAT(MUSICVIDEO_DURATION_PREF, value, GrowlMusicVideoPrefDomain);
59 READ_GROWL_PREF_INT(MUSICVIDEO_EFFECT_PREF, GrowlMusicVideoPrefDomain, &effect);
62 effect = MUSICVIDEO_EFFECT_SLIDE;
64 case MUSICVIDEO_EFFECT_SLIDE:
65 case MUSICVIDEO_EFFECT_WIPE:
66 case MUSICVIDEO_EFFECT_FADING:
70 return (unsigned)effect;
72 - (void) setEffect:(unsigned)newEffect {
75 NSLog(@"(Music Video) Invalid effect number %u (slide is %u; wipe is %u)", newEffect, MUSICVIDEO_EFFECT_SLIDE, MUSICVIDEO_EFFECT_WIPE);
78 case MUSICVIDEO_EFFECT_SLIDE:
79 case MUSICVIDEO_EFFECT_WIPE:
80 case MUSICVIDEO_EFFECT_FADING:
81 WRITE_GROWL_PREF_INT(MUSICVIDEO_EFFECT_PREF, newEffect, GrowlMusicVideoPrefDomain);
87 CGFloat value = MUSICVIDEO_DEFAULT_OPACITY;
88 READ_GROWL_PREF_FLOAT(MUSICVIDEO_OPACITY_PREF, GrowlMusicVideoPrefDomain, &value);
91 - (void) setOpacity:(CGFloat)value {
92 WRITE_GROWL_PREF_FLOAT(MUSICVIDEO_OPACITY_PREF, value, GrowlMusicVideoPrefDomain);
98 READ_GROWL_PREF_INT(MUSICVIDEO_SIZE_PREF, GrowlMusicVideoPrefDomain, &value);
101 - (void) setSize:(int)value {
102 WRITE_GROWL_PREF_INT(MUSICVIDEO_SIZE_PREF, value, GrowlMusicVideoPrefDomain);
103 UPDATE_GROWL_PREFS();
106 #pragma mark Combo box support
108 - (NSInteger) numberOfItemsInComboBox:(NSComboBox *)aComboBox {
109 #pragma unused(aComboBox)
110 return [[NSScreen screens] count];
113 - (id) comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)idx {
114 #pragma unused(aComboBox)
116 return [NSNumber numberWithInteger:idx];
118 return [NSNumber numberWithInt:idx];
124 READ_GROWL_PREF_INT(MUSICVIDEO_SCREEN_PREF, GrowlMusicVideoPrefDomain, &value);
127 - (void) setScreen:(int)value {
128 WRITE_GROWL_PREF_INT(MUSICVIDEO_SCREEN_PREF, value, GrowlMusicVideoPrefDomain);
129 UPDATE_GROWL_PREFS();
132 - (NSColor *) textColorVeryLow {
133 return [GrowlMusicVideoPrefs loadColor:GrowlMusicVideoVeryLowTextColor
134 defaultColor:[NSColor whiteColor]];
137 - (void) setTextColorVeryLow:(NSColor *)value {
138 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
139 WRITE_GROWL_PREF_VALUE(GrowlMusicVideoVeryLowTextColor, theData, GrowlMusicVideoPrefDomain);
140 UPDATE_GROWL_PREFS();
143 - (NSColor *) textColorModerate {
144 return [GrowlMusicVideoPrefs loadColor:GrowlMusicVideoModerateTextColor
145 defaultColor:[NSColor whiteColor]];
148 - (void) setTextColorModerate:(NSColor *)value {
149 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
150 WRITE_GROWL_PREF_VALUE(GrowlMusicVideoModerateTextColor, theData, GrowlMusicVideoPrefDomain);
151 UPDATE_GROWL_PREFS();
154 - (NSColor *) textColorNormal {
155 return [GrowlMusicVideoPrefs loadColor:GrowlMusicVideoNormalTextColor
156 defaultColor:[NSColor whiteColor]];
159 - (void) setTextColorNormal:(NSColor *)value {
160 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
161 WRITE_GROWL_PREF_VALUE(GrowlMusicVideoNormalTextColor, theData, GrowlMusicVideoPrefDomain);
162 UPDATE_GROWL_PREFS();
165 - (NSColor *) textColorHigh {
166 return [GrowlMusicVideoPrefs loadColor:GrowlMusicVideoHighTextColor
167 defaultColor:[NSColor whiteColor]];
170 - (void) setTextColorHigh:(NSColor *)value {
171 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
172 WRITE_GROWL_PREF_VALUE(GrowlMusicVideoHighTextColor, theData, GrowlMusicVideoPrefDomain);
173 UPDATE_GROWL_PREFS();
176 - (NSColor *) textColorEmergency {
177 return [GrowlMusicVideoPrefs loadColor:GrowlMusicVideoEmergencyTextColor
178 defaultColor:[NSColor whiteColor]];
181 - (void) setTextColorEmergency:(NSColor *)value {
182 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
183 WRITE_GROWL_PREF_VALUE(GrowlMusicVideoEmergencyTextColor, theData, GrowlMusicVideoPrefDomain);
184 UPDATE_GROWL_PREFS();
187 - (NSColor *) backgroundColorVeryLow {
188 return [GrowlMusicVideoPrefs loadColor:GrowlMusicVideoVeryLowBackgroundColor
189 defaultColor:[NSColor blackColor]];
192 - (void) setBackgroundColorVeryLow:(NSColor *)value {
193 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
194 WRITE_GROWL_PREF_VALUE(GrowlMusicVideoVeryLowBackgroundColor, theData, GrowlMusicVideoPrefDomain);
195 UPDATE_GROWL_PREFS();
198 - (NSColor *) backgroundColorModerate {
199 return [GrowlMusicVideoPrefs loadColor:GrowlMusicVideoModerateBackgroundColor
200 defaultColor:[NSColor blackColor]];
203 - (void) setBackgroundColorModerate:(NSColor *)value {
204 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
205 WRITE_GROWL_PREF_VALUE(GrowlMusicVideoModerateBackgroundColor, theData, GrowlMusicVideoPrefDomain);
206 UPDATE_GROWL_PREFS();
209 - (NSColor *) backgroundColorNormal {
210 return [GrowlMusicVideoPrefs loadColor:GrowlMusicVideoNormalBackgroundColor
211 defaultColor:[NSColor blackColor]];
214 - (void) setBackgroundColorNormal:(NSColor *)value {
215 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
216 WRITE_GROWL_PREF_VALUE(GrowlMusicVideoNormalBackgroundColor, theData, GrowlMusicVideoPrefDomain);
217 UPDATE_GROWL_PREFS();
220 - (NSColor *) backgroundColorHigh {
221 return [GrowlMusicVideoPrefs loadColor:GrowlMusicVideoHighBackgroundColor
222 defaultColor:[NSColor blackColor]];
225 - (void) setBackgroundColorHigh:(NSColor *)value {
226 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
227 WRITE_GROWL_PREF_VALUE(GrowlMusicVideoHighBackgroundColor, theData, GrowlMusicVideoPrefDomain);
228 UPDATE_GROWL_PREFS();
231 - (NSColor *) backgroundColorEmergency {
232 return [GrowlMusicVideoPrefs loadColor:GrowlMusicVideoEmergencyBackgroundColor
233 defaultColor:[NSColor blackColor]];
236 - (void) setBackgroundColorEmergency:(NSColor *)value {
237 NSData *theData = [NSArchiver archivedDataWithRootObject:value];
238 WRITE_GROWL_PREF_VALUE(GrowlMusicVideoEmergencyBackgroundColor, theData, GrowlMusicVideoPrefDomain);
239 UPDATE_GROWL_PREFS();