This is OOPSTimerInspector.m in view mode; [Download] [Up]
#import "OOPSTimerInspector.h" #import <appkit/appkit.h> #import "OOPSTimer.h" @implementation OOPSTimerInspector - init { char buf[MAXPATHLEN + 1]; id bundle; [super init]; bundle = [NXBundle bundleForClass:[OOPSTimer class]]; [bundle getPath:buf forResource:"OOPSTimerInspector" ofType:"nib"]; [NXApp loadNibFile:buf owner:self withNames:NO fromZone:[self zone]]; return self; } - (BOOL)wantsButtons { return NO; } - updatePriorityField:sender { int aValue; if ((sender != priorityField) && (sender != priorityMatrix)) return nil; [priorityField setBackgroundGray:0.6666]; [priorityField setEditable:NO]; switch ([[sender selectedCell]tag]) { case 0: [priorityField setIntValue:1]; break; case 1: [priorityField setIntValue:5]; break; case 2: [priorityField setIntValue:10]; break; case 3: [priorityField setBackgroundGray:1.0]; [priorityField setEditable:YES]; break; case 10: aValue = [priorityField intValue]; if (aValue < 2) { [priorityMatrix setState:1 at:0 :0]; [priorityField setIntValue:1]; } else if (aValue == 5) { [priorityMatrix setState:1 at:1 :0]; } else if (aValue == 10) { [priorityMatrix setState:1 at:2 :0]; } else if (aValue < 31) { [priorityMatrix setState:1 at:3 :0]; [priorityField setBackgroundGray:1.0]; [priorityField setEditable:YES]; } else { [priorityMatrix setState:1 at:0 :0]; [priorityField setIntValue:1]; } break; } return self; } - updateRepeatField:sender; { if ((sender != repeatNrField) && (sender != repeatNrSlider)) return nil; if ([sender tag]==0) { [repeatNrSlider setIntValue:[sender intValue]]; } else { [repeatNrField setIntValue:[sender intValue]]; } if ([repeatNrField intValue] == 0 ) { [repeatNrField setStringValue:"Forever"]; } return self; } - updateIntervalField:sender; { if ((sender != intervalField) && (sender != intervalSlider)) return nil; if ([sender tag]==0) { [intervalSlider setFloatValue:[sender floatValue]]; } else { [intervalField setIntValue:[sender intValue]]; } return self; } - revert:sender { [repeatNrField setIntValue:[object numberOfRepeatsLeft]]; [self updateRepeatField:repeatNrField]; [intervalField setFloatValue:[object repeatTimeInterval]]; [self updateIntervalField:intervalField]; [priorityField setIntValue:[object priority]]; [self updatePriorityField:priorityField]; [tagField setIntValue:[object tag]]; [autoStartSwitch setState:[object autoStart]]; return [super revert:sender]; } - ok:sender { [self updateRepeatField:sender]; [object setNumberOfRepeats:[repeatNrField intValue]]; [self updateIntervalField:sender]; [object setRepeatTimeInterval:[intervalField floatValue]]; [self updatePriorityField:sender]; [object setPriority:[priorityField intValue]]; [object setTag:[tagField intValue]]; [object setAutoStart:[autoStartSwitch state]]; return [super ok:sender]; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.