Plugins/Displays/Nano/GrowlNanoPrefs.m
author Rudy Richter
Sat Aug 01 20:43:39 2009 -0400 (2009-08-01)
changeset 4259 0e9b6b0b1e25
parent 4246 4f52d1d98978
child 4666 59b81a267426
child 4858 ec71a469e0b8
permissions -rw-r--r--
Plugins: clang warnings
     1 //
     2 //  GrowlNanoPrefs.m
     3 //  Display Plugins
     4 //
     5 //  Created by Rudy Richter on 12/12/2005.
     6 //  Copyright 2005-2006, The Growl Project. All rights reserved.
     7 //
     8 
     9 
    10 #import "GrowlNanoPrefs.h"
    11 #import "GrowlDefinesInternal.h"
    12 
    13 @implementation GrowlNanoPrefs
    14 
    15 - (NSString *) mainNibName {
    16 	return @"GrowlNanoPrefs";
    17 }
    18 
    19 - (void) mainViewDidLoad {
    20 	[slider_opacity setAltIncrementValue:5.0];
    21 }
    22 
    23 - (void) didSelect {
    24 	SYNCHRONIZE_GROWL_PREFS();
    25 }
    26 
    27 #pragma mark -
    28 
    29 + (NSColor *) loadColor:(NSString *)key defaultColor:(NSColor *)defaultColor {
    30 	NSData *data = nil;
    31 	NSColor *color;
    32 	READ_GROWL_PREF_VALUE(key, GrowlNanoPrefDomain, NSData *, &data);
    33 	if(data)
    34 		CFMakeCollectable(data);		
    35 	if (data && [data isKindOfClass:[NSData class]]) {
    36 		color = [NSUnarchiver unarchiveObjectWithData:data];
    37 	} else {
    38 		color = defaultColor;
    39 	}
    40 	[data release];
    41 
    42 	return color;
    43 }
    44 
    45 #pragma mark Accessors
    46 
    47 - (CGFloat) duration {
    48 	CGFloat value = GrowlNanoDurationPrefDefault;
    49 	READ_GROWL_PREF_FLOAT(Nano_DURATION_PREF, GrowlNanoPrefDomain, &value);
    50 	return value;
    51 }
    52 - (void) setDuration:(CGFloat)value {
    53 	WRITE_GROWL_PREF_FLOAT(Nano_DURATION_PREF, value, GrowlNanoPrefDomain);
    54 	UPDATE_GROWL_PREFS();
    55 }
    56 
    57 - (unsigned) effect {
    58 	int effect = 0;
    59 	READ_GROWL_PREF_INT(Nano_EFFECT_PREF, GrowlNanoPrefDomain, &effect);
    60 	switch (effect) {
    61 		default:
    62 			effect = Nano_EFFECT_SLIDE;
    63 
    64 		case Nano_EFFECT_SLIDE:
    65 		case Nano_EFFECT_WIPE:
    66 			;
    67 	}
    68 	return (unsigned)effect;
    69 }
    70 - (void) setEffect:(unsigned)newEffect {
    71 	switch (newEffect) {
    72 		default:
    73 			NSLog(@"(Nano) Invalid effect number %u", newEffect);
    74 			break;
    75 
    76 		case Nano_EFFECT_SLIDE:
    77 		case Nano_EFFECT_WIPE:
    78 		case Nano_EFFECT_FADE:
    79 			WRITE_GROWL_PREF_INT(Nano_EFFECT_PREF, newEffect, GrowlNanoPrefDomain);
    80 			UPDATE_GROWL_PREFS();
    81 	}
    82 }
    83 
    84 - (CGFloat) opacity {
    85 	CGFloat value = Nano_DEFAULT_OPACITY;
    86 	READ_GROWL_PREF_FLOAT(Nano_OPACITY_PREF, GrowlNanoPrefDomain, &value);
    87 	return value;
    88 }
    89 - (void) setOpacity:(CGFloat)value {
    90 	WRITE_GROWL_PREF_FLOAT(Nano_OPACITY_PREF, value, GrowlNanoPrefDomain);
    91 	UPDATE_GROWL_PREFS();
    92 }
    93 
    94 - (int) size {
    95 	int value = 0;
    96 	READ_GROWL_PREF_INT(Nano_SIZE_PREF, GrowlNanoPrefDomain, &value);
    97 	return value;
    98 }
    99 - (void) setSize:(int)value {
   100 	WRITE_GROWL_PREF_INT(Nano_SIZE_PREF, value, GrowlNanoPrefDomain);
   101 	UPDATE_GROWL_PREFS();
   102 }
   103 
   104 #pragma mark Combo box support
   105 
   106 - (NSInteger) numberOfItemsInComboBox:(NSComboBox *)aComboBox {
   107 #pragma unused(aComboBox)
   108 	return [[NSScreen screens] count];
   109 }
   110 
   111 - (id) comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)idx {
   112 #pragma unused(aComboBox)
   113 #ifdef __LP64__
   114 	return [NSNumber numberWithInteger:idx];
   115 #else
   116 	return [NSNumber numberWithInt:idx];
   117 #endif
   118 }
   119 
   120 - (int) screen {
   121 	int value = 0;
   122 	READ_GROWL_PREF_INT(Nano_SCREEN_PREF, GrowlNanoPrefDomain, &value);
   123 	return value;
   124 }
   125 - (void) setScreen:(int)value {
   126 	WRITE_GROWL_PREF_INT(Nano_SCREEN_PREF, value, GrowlNanoPrefDomain);
   127 	UPDATE_GROWL_PREFS();
   128 }
   129 
   130 - (NSColor *) textColorVeryLow {
   131 	return [GrowlNanoPrefs loadColor:GrowlNanoVeryLowTextColor
   132 							  defaultColor:[NSColor whiteColor]];
   133 }
   134 
   135 - (void) setTextColorVeryLow:(NSColor *)value {
   136 	NSData *theData = [NSArchiver archivedDataWithRootObject:value];
   137     WRITE_GROWL_PREF_VALUE(GrowlNanoVeryLowTextColor, theData, GrowlNanoPrefDomain);
   138     UPDATE_GROWL_PREFS();
   139 }
   140 
   141 - (NSColor *) textColorModerate {
   142 	return [GrowlNanoPrefs loadColor:GrowlNanoModerateTextColor
   143 							  defaultColor:[NSColor whiteColor]];
   144 }
   145 
   146 - (void) setTextColorModerate:(NSColor *)value {
   147 	NSData *theData = [NSArchiver archivedDataWithRootObject:value];
   148     WRITE_GROWL_PREF_VALUE(GrowlNanoModerateTextColor, theData, GrowlNanoPrefDomain);
   149     UPDATE_GROWL_PREFS();
   150 }
   151 
   152 - (NSColor *) textColorNormal {
   153 	return [GrowlNanoPrefs loadColor:GrowlNanoNormalTextColor
   154 							  defaultColor:[NSColor whiteColor]];
   155 }
   156 
   157 - (void) setTextColorNormal:(NSColor *)value {
   158 	NSData *theData = [NSArchiver archivedDataWithRootObject:value];
   159     WRITE_GROWL_PREF_VALUE(GrowlNanoNormalTextColor, theData, GrowlNanoPrefDomain);
   160     UPDATE_GROWL_PREFS();
   161 }
   162 
   163 - (NSColor *) textColorHigh {
   164 	return [GrowlNanoPrefs loadColor:GrowlNanoHighTextColor
   165 							  defaultColor:[NSColor whiteColor]];
   166 }
   167 
   168 - (void) setTextColorHigh:(NSColor *)value {
   169 	NSData *theData = [NSArchiver archivedDataWithRootObject:value];
   170     WRITE_GROWL_PREF_VALUE(GrowlNanoHighTextColor, theData, GrowlNanoPrefDomain);
   171     UPDATE_GROWL_PREFS();
   172 }
   173 
   174 - (NSColor *) textColorEmergency {
   175 	return [GrowlNanoPrefs loadColor:GrowlNanoEmergencyTextColor
   176 							  defaultColor:[NSColor whiteColor]];
   177 }
   178 
   179 - (void) setTextColorEmergency:(NSColor *)value {
   180 	NSData *theData = [NSArchiver archivedDataWithRootObject:value];
   181     WRITE_GROWL_PREF_VALUE(GrowlNanoEmergencyTextColor, theData, GrowlNanoPrefDomain);
   182     UPDATE_GROWL_PREFS();
   183 }
   184 
   185 - (NSColor *) backgroundColorVeryLow {
   186 	return [GrowlNanoPrefs loadColor:GrowlNanoVeryLowBackgroundColor
   187 							  defaultColor:[NSColor blackColor]];
   188 }
   189 
   190 - (void) setBackgroundColorVeryLow:(NSColor *)value {
   191 	NSData *theData = [NSArchiver archivedDataWithRootObject:value];
   192     WRITE_GROWL_PREF_VALUE(GrowlNanoVeryLowBackgroundColor, theData, GrowlNanoPrefDomain);
   193     UPDATE_GROWL_PREFS();
   194 }
   195 
   196 - (NSColor *) backgroundColorModerate {
   197 	return [GrowlNanoPrefs loadColor:GrowlNanoModerateBackgroundColor
   198 							  defaultColor:[NSColor blackColor]];
   199 }
   200 
   201 - (void) setBackgroundColorModerate:(NSColor *)value {
   202 	NSData *theData = [NSArchiver archivedDataWithRootObject:value];
   203     WRITE_GROWL_PREF_VALUE(GrowlNanoModerateBackgroundColor, theData, GrowlNanoPrefDomain);
   204     UPDATE_GROWL_PREFS();
   205 }
   206 
   207 - (NSColor *) backgroundColorNormal {
   208 	return [GrowlNanoPrefs loadColor:GrowlNanoNormalBackgroundColor
   209 						 defaultColor:[NSColor blackColor]];
   210 }
   211 
   212 - (void) setBackgroundColorNormal:(NSColor *)value {
   213 	NSData *theData = [NSArchiver archivedDataWithRootObject:value];
   214     WRITE_GROWL_PREF_VALUE(GrowlNanoNormalBackgroundColor, theData, GrowlNanoPrefDomain);
   215     UPDATE_GROWL_PREFS();
   216 }
   217 
   218 - (NSColor *) backgroundColorHigh {
   219 	return [GrowlNanoPrefs loadColor:GrowlNanoHighBackgroundColor
   220 							  defaultColor:[NSColor blackColor]];
   221 }
   222 
   223 - (void) setBackgroundColorHigh:(NSColor *)value {
   224 	NSData *theData = [NSArchiver archivedDataWithRootObject:value];
   225     WRITE_GROWL_PREF_VALUE(GrowlNanoHighBackgroundColor, theData, GrowlNanoPrefDomain);
   226     UPDATE_GROWL_PREFS();
   227 }
   228 
   229 - (NSColor *) backgroundColorEmergency {
   230 	return [GrowlNanoPrefs loadColor:GrowlNanoEmergencyBackgroundColor
   231 							  defaultColor:[NSColor blackColor]];
   232 }
   233 
   234 - (void) setBackgroundColorEmergency:(NSColor *)value {
   235 	NSData *theData = [NSArchiver archivedDataWithRootObject:value];
   236     WRITE_GROWL_PREF_VALUE(GrowlNanoEmergencyBackgroundColor, theData, GrowlNanoPrefDomain);
   237     UPDATE_GROWL_PREFS();
   238 }
   239 @end