Plugins/Displays/Smoke/GrowlSmokePrefsController.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 //  GrowlSmokePrefsController.m
     3 //  Display Plugins
     4 //
     5 //  Created by Matthew Walton on 11/09/2004.
     6 //  Copyright 2004-2006 The Growl Project. All rights reserved.
     7 //
     8 
     9 #import "GrowlSmokePrefsController.h"
    10 #import "GrowlSmokeDefines.h"
    11 #import "GrowlDefinesInternal.h"
    12 
    13 @implementation GrowlSmokePrefsController
    14 
    15 - (NSString *) mainNibName {
    16 	return @"SmokePrefs";
    17 }
    18 
    19 + (void) loadColorWell:(NSColorWell *)colorWell fromKey:(NSString *)key defaultColor:(NSColor *)defaultColor {
    20 	NSData *data = nil;
    21 	NSColor *color;
    22 	READ_GROWL_PREF_VALUE(key, GrowlSmokePrefDomain, NSData *, &data);
    23 	if(data)
    24 		CFMakeCollectable(data);		
    25 	if (data && [data isKindOfClass:[NSData class]]) {
    26 			color = [NSUnarchiver unarchiveObjectWithData:data];
    27 	} else {
    28 		color = defaultColor;
    29 	}
    30 	[colorWell setColor:color];
    31 	[data release];
    32 	data = nil;
    33 }
    34 
    35 - (void) mainViewDidLoad {
    36 	[slider_opacity setAltIncrementValue:0.05];
    37 
    38 	// priority colour settings
    39 	NSColor *defaultColor = [NSColor colorWithCalibratedWhite:0.1 alpha:1.0];
    40 
    41 	[GrowlSmokePrefsController loadColorWell:color_veryLow fromKey:GrowlSmokeVeryLowColor defaultColor:defaultColor];
    42 	[GrowlSmokePrefsController loadColorWell:color_moderate fromKey:GrowlSmokeModerateColor defaultColor:defaultColor];
    43 	[GrowlSmokePrefsController loadColorWell:color_normal fromKey:GrowlSmokeNormalColor defaultColor:defaultColor];
    44 	[GrowlSmokePrefsController loadColorWell:color_high fromKey:GrowlSmokeHighColor defaultColor:defaultColor];
    45 	[GrowlSmokePrefsController loadColorWell:color_emergency fromKey:GrowlSmokeEmergencyColor defaultColor:defaultColor];
    46 
    47 	defaultColor = [NSColor whiteColor];
    48 
    49 	[GrowlSmokePrefsController loadColorWell:text_veryLow fromKey:GrowlSmokeVeryLowTextColor defaultColor:defaultColor];
    50 	[GrowlSmokePrefsController loadColorWell:text_moderate fromKey:GrowlSmokeModerateTextColor defaultColor:defaultColor];
    51 	[GrowlSmokePrefsController loadColorWell:text_normal fromKey:GrowlSmokeNormalTextColor defaultColor:defaultColor];
    52 	[GrowlSmokePrefsController loadColorWell:text_high fromKey:GrowlSmokeHighTextColor defaultColor:defaultColor];
    53 	[GrowlSmokePrefsController loadColorWell:text_emergency fromKey:GrowlSmokeEmergencyTextColor defaultColor:defaultColor];
    54 }
    55 
    56 - (CGFloat) opacity {
    57 	CGFloat value = GrowlSmokeAlphaPrefDefault;
    58 	READ_GROWL_PREF_FLOAT(GrowlSmokeAlphaPref, GrowlSmokePrefDomain, &value);
    59 	return value;
    60 }
    61 
    62 - (void) setOpacity:(CGFloat)value {
    63 	WRITE_GROWL_PREF_FLOAT(GrowlSmokeAlphaPref, value, GrowlSmokePrefDomain);
    64 	UPDATE_GROWL_PREFS();
    65 }
    66 
    67 - (CGFloat) duration {
    68 	CGFloat value = GrowlSmokeDurationPrefDefault;
    69 	READ_GROWL_PREF_FLOAT(GrowlSmokeDurationPref, GrowlSmokePrefDomain, &value);
    70 	return value;
    71 }
    72 
    73 - (void) setDuration:(CGFloat)value {
    74 	WRITE_GROWL_PREF_FLOAT(GrowlSmokeDurationPref, value, GrowlSmokePrefDomain);
    75 	UPDATE_GROWL_PREFS();
    76 }
    77 
    78 - (IBAction) colorChanged:(id)sender {
    79 	NSString *key;
    80 	switch ([sender tag]) {
    81 		case -2:
    82 			key = GrowlSmokeVeryLowColor;
    83 			break;
    84 		case -1:
    85 			key = GrowlSmokeModerateColor;
    86 			break;
    87 		case 1:
    88 			key = GrowlSmokeHighColor;
    89 			break;
    90 		case 2:
    91 			key = GrowlSmokeEmergencyColor;
    92 			break;
    93 		case 0:
    94 		default:
    95 			key = GrowlSmokeNormalColor;
    96 			break;
    97 	}
    98 
    99 	NSData *theData = [NSArchiver archivedDataWithRootObject:[sender color]];
   100 	WRITE_GROWL_PREF_VALUE(key, theData, GrowlSmokePrefDomain);
   101 	UPDATE_GROWL_PREFS();
   102 }
   103 
   104 - (IBAction) textColorChanged:(id)sender {
   105 	NSString *key;
   106 	switch ([sender tag]) {
   107 		case -2:
   108 			key = GrowlSmokeVeryLowTextColor;
   109 			break;
   110 		case -1:
   111 			key = GrowlSmokeModerateTextColor;
   112 			break;
   113 		case 1:
   114 			key = GrowlSmokeHighTextColor;
   115 			break;
   116 		case 2:
   117 			key = GrowlSmokeEmergencyTextColor;
   118 			break;
   119 		case 0:
   120 		default:
   121 			key = GrowlSmokeNormalTextColor;
   122 			break;
   123 	}
   124 
   125 	NSData *theData = [NSArchiver archivedDataWithRootObject:[sender color]];
   126 	WRITE_GROWL_PREF_VALUE(key, theData, GrowlSmokePrefDomain);
   127 	UPDATE_GROWL_PREFS();
   128 }
   129 
   130 - (BOOL) isFloatingIcon {
   131 	BOOL value = GrowlSmokeFloatIconPrefDefault;
   132 	READ_GROWL_PREF_BOOL(GrowlSmokeFloatIconPref, GrowlSmokePrefDomain, &value);
   133 	return value;
   134 }
   135 
   136 - (void) setFloatingIcon:(BOOL)value {
   137 	WRITE_GROWL_PREF_BOOL(GrowlSmokeFloatIconPref, value, GrowlSmokePrefDomain);
   138 	UPDATE_GROWL_PREFS();
   139 }
   140 
   141 - (BOOL) isLimit {
   142 	BOOL value = GrowlSmokeLimitPrefDefault;
   143 	READ_GROWL_PREF_BOOL(GrowlSmokeLimitPref, GrowlSmokePrefDomain, &value);
   144 	return value;
   145 }
   146 
   147 - (void) setLimit:(BOOL)value {
   148 	WRITE_GROWL_PREF_BOOL(GrowlSmokeLimitPref, value, GrowlSmokePrefDomain);
   149 	UPDATE_GROWL_PREFS();
   150 }
   151 
   152 - (NSInteger) numberOfItemsInComboBox:(NSComboBox *)aComboBox {
   153 #pragma unused(aComboBox)
   154 	return [[NSScreen screens] count];
   155 }
   156 
   157 - (id) comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)idx {
   158 #pragma unused(aComboBox)
   159 #ifdef __LP64__
   160 	return [NSNumber numberWithInteger:idx];
   161 #else
   162 	return [NSNumber numberWithInt:idx];
   163 #endif
   164 }
   165 
   166 - (int) screen {
   167 	int value = 0;
   168 	READ_GROWL_PREF_INT(GrowlSmokeScreenPref, GrowlSmokePrefDomain, &value);
   169 	return value;
   170 }
   171 
   172 - (void) setScreen:(int)value {
   173 	WRITE_GROWL_PREF_INT(GrowlSmokeScreenPref, value, GrowlSmokePrefDomain);
   174 	UPDATE_GROWL_PREFS();
   175 }
   176 
   177 - (int) size {
   178 	int value = 0;
   179 	READ_GROWL_PREF_INT(GrowlSmokeSizePref, GrowlSmokePrefDomain, &value);
   180 	return value;
   181 }
   182 
   183 - (void) setSize:(int)value {
   184 	WRITE_GROWL_PREF_INT(GrowlSmokeSizePref, value, GrowlSmokePrefDomain);
   185 	UPDATE_GROWL_PREFS();
   186 }
   187 
   188 @end