Plugins/Displays/Bubbles/GrowlBubblesPrefsController.m
author Rudy Richter
Sat Aug 01 20:43:39 2009 -0400 (2009-08-01)
changeset 4259 0e9b6b0b1e25
parent 4246 4f52d1d98978
child 4858 ec71a469e0b8
permissions -rw-r--r--
Plugins: clang warnings
boredzo@2402
     1
//
boredzo@2402
     2
//  GrowlBubblesPrefsController.m
boredzo@2402
     3
//  Growl
boredzo@2402
     4
//
boredzo@2402
     5
//  Created by Kevin Ballard on 9/7/04.
boredzo@2402
     6
//  Copyright 2004 TildeSoft. All rights reserved.
boredzo@2402
     7
//
boredzo@2402
     8
boredzo@2402
     9
#import "GrowlBubblesPrefsController.h"
boredzo@2402
    10
#import "GrowlBubblesDefines.h"
boredzo@2402
    11
#import "GrowlDefinesInternal.h"
boredzo@2402
    12
boredzo@2402
    13
@implementation GrowlBubblesPrefsController
boredzo@2402
    14
- (NSString *) mainNibName {
boredzo@2402
    15
	return @"BubblesPrefs";
boredzo@2402
    16
}
boredzo@2402
    17
boredzo@2402
    18
+ (void) loadColorWell:(NSColorWell *)colorWell fromKey:(NSString *)key defaultColor:(NSColor *)defaultColor {
boredzo@2402
    19
	NSData *data = nil;
boredzo@2402
    20
	NSColor *color;
boredzo@2402
    21
	READ_GROWL_PREF_VALUE(key, GrowlBubblesPrefDomain, NSData *, &data);
Rudy@4259
    22
	if(data)
Rudy@4259
    23
		CFMakeCollectable(data);		
boredzo@2402
    24
	if (data && [data isKindOfClass:[NSData class]]) {
Rudy@4259
    25
			color = [NSUnarchiver unarchiveObjectWithData:data];
boredzo@2402
    26
	} else {
boredzo@2402
    27
		color = defaultColor;
boredzo@2402
    28
	}
boredzo@2402
    29
	[colorWell setColor:color];
boredzo@2402
    30
	[data release];
Rudy@4259
    31
	data = nil;
boredzo@2402
    32
}
boredzo@2402
    33
boredzo@2402
    34
- (void) mainViewDidLoad {
boredzo@2402
    35
	[slider_opacity setAltIncrementValue:0.05];
boredzo@2402
    36
boredzo@2402
    37
	// priority colour settings
Rudy@4246
    38
	NSColor *defaultColor = [NSColor colorWithCalibratedRed:0.69412 green:0.83147 blue:0.96078 alpha:1.0];
boredzo@2402
    39
boredzo@2402
    40
	[GrowlBubblesPrefsController loadColorWell:color_veryLow fromKey:GrowlBubblesVeryLowColor defaultColor:defaultColor];
boredzo@2402
    41
	[GrowlBubblesPrefsController loadColorWell:color_moderate fromKey:GrowlBubblesModerateColor defaultColor:defaultColor];
boredzo@2402
    42
	[GrowlBubblesPrefsController loadColorWell:color_normal fromKey:GrowlBubblesNormalColor defaultColor:defaultColor];
boredzo@2402
    43
	[GrowlBubblesPrefsController loadColorWell:color_high fromKey:GrowlBubblesHighColor defaultColor:defaultColor];
boredzo@2402
    44
	[GrowlBubblesPrefsController loadColorWell:color_emergency fromKey:GrowlBubblesEmergencyColor defaultColor:defaultColor];
boredzo@2402
    45
boredzo@2402
    46
	defaultColor = [[NSColor controlTextColor] colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
boredzo@2402
    47
boredzo@2402
    48
	[GrowlBubblesPrefsController loadColorWell:text_veryLow fromKey:GrowlBubblesVeryLowTextColor defaultColor:defaultColor];
boredzo@2402
    49
	[GrowlBubblesPrefsController loadColorWell:text_moderate fromKey:GrowlBubblesModerateTextColor defaultColor:defaultColor];
boredzo@2402
    50
	[GrowlBubblesPrefsController loadColorWell:text_normal fromKey:GrowlBubblesNormalTextColor defaultColor:defaultColor];
boredzo@2402
    51
	[GrowlBubblesPrefsController loadColorWell:text_high fromKey:GrowlBubblesHighTextColor defaultColor:defaultColor];
boredzo@2402
    52
	[GrowlBubblesPrefsController loadColorWell:text_emergency fromKey:GrowlBubblesEmergencyTextColor defaultColor:defaultColor];
boredzo@2402
    53
Rudy@4246
    54
	defaultColor = [NSColor colorWithCalibratedRed:0.93725 green:0.96863 blue:0.99216 alpha:0.95];
boredzo@2402
    55
boredzo@2402
    56
	[GrowlBubblesPrefsController loadColorWell:top_veryLow fromKey:GrowlBubblesVeryLowTopColor defaultColor:defaultColor];
boredzo@2402
    57
	[GrowlBubblesPrefsController loadColorWell:top_moderate fromKey:GrowlBubblesModerateTopColor defaultColor:defaultColor];
boredzo@2402
    58
	[GrowlBubblesPrefsController loadColorWell:top_normal fromKey:GrowlBubblesNormalTopColor defaultColor:defaultColor];
boredzo@2402
    59
	[GrowlBubblesPrefsController loadColorWell:top_high fromKey:GrowlBubblesHighTopColor defaultColor:defaultColor];
boredzo@2402
    60
	[GrowlBubblesPrefsController loadColorWell:top_emergency fromKey:GrowlBubblesEmergencyTopColor defaultColor:defaultColor];
boredzo@2402
    61
}
boredzo@2402
    62
boredzo@2402
    63
#pragma mark -
boredzo@2402
    64
boredzo@2402
    65
- (BOOL) isLimit {
boredzo@2402
    66
	BOOL value = YES;
boredzo@2402
    67
	READ_GROWL_PREF_BOOL(GrowlBubblesLimitPref, GrowlBubblesPrefDomain, &value);
boredzo@2402
    68
	return value;
boredzo@2402
    69
}
boredzo@2402
    70
boredzo@2402
    71
- (void) setLimit:(BOOL)value {
boredzo@2402
    72
	WRITE_GROWL_PREF_BOOL(GrowlBubblesLimitPref, value, GrowlBubblesPrefDomain);
boredzo@2402
    73
	UPDATE_GROWL_PREFS();
boredzo@2402
    74
}
boredzo@2402
    75
boredzo@2402
    76
#pragma mark -
boredzo@2402
    77
Rudy@4246
    78
- (CGFloat) opacity {
Rudy@4246
    79
	CGFloat value = 95.0;
boredzo@2402
    80
	READ_GROWL_PREF_FLOAT(GrowlBubblesOpacity, GrowlBubblesPrefDomain, &value);
boredzo@2402
    81
	return value;
boredzo@2402
    82
}
boredzo@2402
    83
Rudy@4246
    84
- (void) setOpacity:(CGFloat)value {
boredzo@2402
    85
	WRITE_GROWL_PREF_FLOAT(GrowlBubblesOpacity, value, GrowlBubblesPrefDomain);
boredzo@2402
    86
	UPDATE_GROWL_PREFS();
boredzo@2402
    87
}
boredzo@2402
    88
boredzo@2402
    89
#pragma mark -
boredzo@2402
    90
Rudy@4246
    91
- (CGFloat) duration {
Rudy@4246
    92
	CGFloat value = 4.0;
boredzo@2402
    93
	READ_GROWL_PREF_FLOAT(GrowlBubblesDuration, GrowlBubblesPrefDomain, &value);
boredzo@2402
    94
	return value;
boredzo@2402
    95
}
boredzo@2402
    96
Rudy@4246
    97
- (void) setDuration:(CGFloat)value {
boredzo@2402
    98
	WRITE_GROWL_PREF_FLOAT(GrowlBubblesDuration, value, GrowlBubblesPrefDomain);
boredzo@2402
    99
	UPDATE_GROWL_PREFS();
boredzo@2402
   100
}
boredzo@2402
   101
boredzo@2402
   102
#pragma mark -
boredzo@2402
   103
boredzo@2402
   104
- (IBAction) topColorChanged:(id)sender {
boredzo@2402
   105
	NSColor *color;
boredzo@2402
   106
	NSString *key;
boredzo@2402
   107
	switch ([sender tag]) {
boredzo@2402
   108
		case -2:
boredzo@2402
   109
			key = GrowlBubblesVeryLowTopColor;
boredzo@2402
   110
			break;
boredzo@2402
   111
		case -1:
boredzo@2402
   112
			key = GrowlBubblesModerateTopColor;
boredzo@2402
   113
			break;
boredzo@2402
   114
		case 1:
boredzo@2402
   115
			key = GrowlBubblesHighTopColor;
boredzo@2402
   116
			break;
boredzo@2402
   117
		case 2:
boredzo@2402
   118
			key = GrowlBubblesEmergencyTopColor;
boredzo@2402
   119
			break;
boredzo@2402
   120
		case 0:
boredzo@2402
   121
		default:
boredzo@2402
   122
			key = GrowlBubblesNormalTopColor;
boredzo@2402
   123
			break;
boredzo@2402
   124
	}
boredzo@2402
   125
boredzo@2402
   126
	color = [[sender color] colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
boredzo@2402
   127
	NSData *theData = [NSArchiver archivedDataWithRootObject:color];
boredzo@2402
   128
	WRITE_GROWL_PREF_VALUE(key, theData, GrowlBubblesPrefDomain);
boredzo@2402
   129
	UPDATE_GROWL_PREFS();
boredzo@2402
   130
}
boredzo@2402
   131
boredzo@2402
   132
- (IBAction) colorChanged:(id)sender {
boredzo@2402
   133
	NSColor *color;
boredzo@2402
   134
	NSString *key;
boredzo@2402
   135
	switch ([sender tag]) {
boredzo@2402
   136
		case -2:
boredzo@2402
   137
			key = GrowlBubblesVeryLowColor;
boredzo@2402
   138
			break;
boredzo@2402
   139
		case -1:
boredzo@2402
   140
			key = GrowlBubblesModerateColor;
boredzo@2402
   141
			break;
boredzo@2402
   142
		case 1:
boredzo@2402
   143
			key = GrowlBubblesHighColor;
boredzo@2402
   144
			break;
boredzo@2402
   145
		case 2:
boredzo@2402
   146
			key = GrowlBubblesEmergencyColor;
boredzo@2402
   147
			break;
boredzo@2402
   148
		case 0:
boredzo@2402
   149
		default:
boredzo@2402
   150
			key = GrowlBubblesNormalColor;
boredzo@2402
   151
			break;
boredzo@2402
   152
	}
boredzo@2402
   153
boredzo@2402
   154
	color = [[sender color] colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
boredzo@2402
   155
	NSData *theData = [NSArchiver archivedDataWithRootObject:color];
boredzo@2402
   156
	WRITE_GROWL_PREF_VALUE(key, theData, GrowlBubblesPrefDomain);
boredzo@2402
   157
	UPDATE_GROWL_PREFS();
boredzo@2402
   158
}
boredzo@2402
   159
boredzo@2402
   160
- (IBAction) textColorChanged:(id)sender {
boredzo@2402
   161
	NSString *key;
boredzo@2402
   162
	switch ([sender tag]) {
boredzo@2402
   163
		case -2:
boredzo@2402
   164
			key = GrowlBubblesVeryLowTextColor;
boredzo@2402
   165
			break;
boredzo@2402
   166
		case -1:
boredzo@2402
   167
			key = GrowlBubblesModerateTextColor;
boredzo@2402
   168
			break;
boredzo@2402
   169
		case 1:
boredzo@2402
   170
			key = GrowlBubblesHighTextColor;
boredzo@2402
   171
			break;
boredzo@2402
   172
		case 2:
boredzo@2402
   173
			key = GrowlBubblesEmergencyTextColor;
boredzo@2402
   174
			break;
boredzo@2402
   175
		case 0:
boredzo@2402
   176
		default:
boredzo@2402
   177
			key = GrowlBubblesNormalTextColor;
boredzo@2402
   178
			break;
boredzo@2402
   179
	}
boredzo@2402
   180
boredzo@2402
   181
	NSData *theData = [NSArchiver archivedDataWithRootObject:[sender color]];
boredzo@2402
   182
	WRITE_GROWL_PREF_VALUE(key, theData, GrowlBubblesPrefDomain);
boredzo@2402
   183
	UPDATE_GROWL_PREFS();
boredzo@2402
   184
}
boredzo@2402
   185
boredzo@2402
   186
#pragma mark -
boredzo@2402
   187
Rudy@4246
   188
- (NSInteger) numberOfItemsInComboBox:(NSComboBox *)aComboBox {
boredzo@2402
   189
#pragma unused(aComboBox)
boredzo@2402
   190
	return [[NSScreen screens] count];
boredzo@2402
   191
}
boredzo@2402
   192
Rudy@4246
   193
- (id) comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)idx {
boredzo@2402
   194
#pragma unused(aComboBox)
Rudy@4246
   195
#ifdef __LP64__
Rudy@4246
   196
	return [NSNumber numberWithInteger:idx];
Rudy@4246
   197
#else
boredzo@2402
   198
	return [NSNumber numberWithInt:idx];
Rudy@4246
   199
#endif
boredzo@2402
   200
}
boredzo@2402
   201
boredzo@2402
   202
- (int) screen {
boredzo@2402
   203
	int value = 0;
boredzo@2402
   204
	READ_GROWL_PREF_INT(GrowlBubblesScreen, GrowlBubblesPrefDomain, &value);
boredzo@2402
   205
	return value;
boredzo@2402
   206
}
boredzo@2402
   207
boredzo@2402
   208
- (void) setScreen:(int)value {
boredzo@2402
   209
	WRITE_GROWL_PREF_INT(GrowlBubblesScreen, value, GrowlBubblesPrefDomain);
boredzo@2402
   210
	UPDATE_GROWL_PREFS();
boredzo@2402
   211
}
boredzo@2402
   212
boredzo@2402
   213
- (int) size {
boredzo@2402
   214
	int value = 0;
boredzo@2402
   215
	READ_GROWL_PREF_INT(GrowlBubblesSizePref, GrowlBubblesPrefDomain, &value);
boredzo@2402
   216
	return value;
boredzo@2402
   217
}
boredzo@2402
   218
boredzo@2402
   219
- (void) setSize:(int)value {
boredzo@2402
   220
	WRITE_GROWL_PREF_INT(GrowlBubblesSizePref, value, GrowlBubblesPrefDomain);
boredzo@2402
   221
	UPDATE_GROWL_PREFS();
boredzo@2402
   222
}
boredzo@2402
   223
@end