Changeset 102 for trunk/Cocoa/Pester/Source/PSAlarmSetController.m
- Timestamp:
- 02/23/03 04:55:07 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cocoa/Pester/Source/PSAlarmSetController.m
r61 r102 9 9 #import "PSAlarmSetController.h" 10 10 #import "PSAlarmAlertController.h" 11 #import "PSCalendarController.h" 11 12 #import "PSPowerManager.h" 13 #import "PSTimeDateEditor.h" 12 14 #import "NJRDateFormatter.h" 13 15 #import "NJRFSObjectSelector.h" … … 71 73 alarm = [[PSAlarm alloc] init]; 72 74 [[self window] center]; 73 // XXX excessive retention of formatters? check later... 74 [timeOfDay setFormatter: [[NJRDateFormatter alloc] initWithDateFormat: [NJRDateFormatter localizedTimeFormatIncludingSeconds: NO] allowNaturalLanguage: YES]]; 75 [timeDate setFormatter: [[NJRDateFormatter alloc] initWithDateFormat: [NJRDateFormatter localizedDateFormatIncludingWeekday: NO] allowNaturalLanguage: YES]]; 76 { 77 NSArray *dayNames = [defaults arrayForKey: 78 NSWeekDayNameArray]; 79 NSArray *completions = [timeDateCompletions itemTitles]; 80 NSEnumerator *e = [completions objectEnumerator]; 81 NSString *title; 82 int itemIndex = 0; 83 NSRange matchingRange; 84 while ( (title = [e nextObject]) != nil) { 85 matchingRange = [title rangeOfString: @"ÇdayÈ"]; 86 if (matchingRange.location != NSNotFound) { 87 NSMutableString *format = [title mutableCopy]; 88 NSEnumerator *we = [dayNames objectEnumerator]; 89 NSString *dayName; 90 [format deleteCharactersInRange: matchingRange]; 91 [format insertString: @"%@" atIndex: matchingRange.location]; 92 [timeDateCompletions removeItemAtIndex: itemIndex]; 93 while ( (dayName = [we nextObject]) != nil) { 94 [timeDateCompletions insertItemWithTitle: [NSString stringWithFormat: format, dayName] atIndex: itemIndex]; 95 itemIndex++; 96 } 97 } else itemIndex++; 98 } 99 } 75 [PSTimeDateEditor setUpTimeField: timeOfDay dateField: timeDate completions: timeDateCompletions]; 100 76 [editAlert setIntValue: [defaults boolForKey: PSAlertsEditing]]; 101 77 { … … 114 90 [self _readAlerts: alerts]; 115 91 } 116 [timeDate setObjectValue: [NSDate date]];117 92 [self inAtChanged: nil]; // by convention, if sender is nil, we're initializing 118 93 [self playSoundChanged: nil]; … … 175 150 } 176 151 177 // XXX use OACalendar in popup like Palm Desktop?178 179 152 - (IBAction)updateDateDisplay:(id)sender; 180 153 { … … 226 199 [timeDate setEnabled: !isInterval]; 227 200 [timeDateCompletions setEnabled: !isInterval]; 201 [timeCalendarButton setEnabled: !isInterval]; 228 202 if (sender != nil) 229 203 [[self window] makeFirstResponder: isInterval ? (NSTextField *)timeInterval : timeOfDay]; 204 if (!isInterval) { // need to do this every time the controls are enabled 205 [timeOfDay setNextKeyView: timeDate]; 206 } 230 207 // NSLog(@"UPDATING FROM inAtChanged"); 231 208 [self update: nil]; … … 238 215 } 239 216 217 #pragma mark calendar 218 219 - (IBAction)showCalendar:(NSButton *)sender; 220 { 221 [PSCalendarController controllerWithDate: [NSCalendarDate dateForDay: [timeDate objectValue]] delegate: self]; 222 } 223 224 - (void)calendarController:(PSCalendarController *)calendar didSetDate:(NSCalendarDate *)date; 225 { 226 [timeDate setObjectValue: date]; 227 [self update: self]; 228 } 229 230 - (NSView *)calendarControllerLaunchingView:(PSCalendarController *)controller; 231 { 232 return timeCalendarButton; 233 } 234 240 235 #pragma mark alert editing 236 237 - (IBAction)toggleAlertEditor:(id)sender; 238 { 239 [editAlert performClick: self]; 240 } 241 241 242 242 - (IBAction)editAlertChanged:(id)sender; … … 293 293 } 294 294 295 296 295 - (IBAction)playSoundChanged:(id)sender; 297 296 { … … 459 458 [alarm setMessage: [messageField stringValue]]; 460 459 if (![alarm setTimer]) { 461 [self setStatus: [@"Unable to set alarm. 460 [self setStatus: [@"Unable to set alarm. " stringByAppendingString: [alarm invalidMessage]]]; 462 461 return; 463 462 } … … 475 474 } 476 475 476 - (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem; 477 { 478 if ([anItem action] == @selector(toggleAlertEditor:)) { 479 if ([NSApp keyWindow] != [self window]) 480 return NO; 481 [(NSMenuItem *)anItem setState: [editAlert intValue] ? NSOnState : NSOffState]; 482 } 483 return YES; 484 } 485 477 486 @end 478 487
Note:
See TracChangeset
for help on using the changeset viewer.