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