This is CircularSliderInspector.m in view mode; [Download] [Up]
/* * Filename: CircularSliderInspector.m * Created : Thu Oct 22 00:46:47 1992 * Author : Vince DeMarco * <vince@whatnxt.cuc.ab.ca> * LastEditDate was "Sun Nov 15 21:05:03 1992" */ #import "CircularSliderInspector.h" #import "CircularSlider.subproj/CircularSlider.h" @implementation CircularSliderInspector - init { char buf[MAXPATHLEN + 1]; id bundle = [NXBundle bundleForClass:[CircularSlider class]]; [bundle getPath:buf forResource:"CircularSliderInspector" ofType:"nib"]; [NXApp loadNibFile:buf owner:self withNames:NO fromZone:[self zone]]; return self; } - ok:sender { [(CircularSlider*)object display]; return [super ok:sender]; } - update { if ([(CircularSlider*)object drawAsPieChart] == YES){ [typeMatrix selectCellAt:0:1]; }else{ [typeMatrix selectCellAt:0:0]; } [tagField setIntValue: (int)[(CircularSlider*)object tag]]; [minValueField setFloatValue: (float)[(CircularSlider*)object minValue]]; [maxValueField setFloatValue: (float)[(CircularSlider*)object maxValue]]; [currentValueField setFloatValue: (float)[(CircularSlider*)object floatValue]]; if ([(CircularSlider*)object isContinuous] == YES) [[optionMatrix cellAt:0:0] setState: 1]; else [[optionMatrix cellAt:0:0] setState: 0]; if ([(CircularSlider*)object isEnabled] == YES) [[optionMatrix cellAt:1:0] setState: 0]; else [[optionMatrix cellAt:1:0] setState: 1]; if ([(CircularSlider*)object hidden] == YES){ [[optionMatrix cellAt:2:0] setState: 1]; /* If object is hidden it is then disabled */ [[optionMatrix cellAt:1:0] setEnabled:NO]; }else{ [[optionMatrix cellAt:2:0] setState: 0]; [[optionMatrix cellAt:1:0] setEnabled:YES]; } if ([(CircularSlider*)object isBezeled] == YES){ [[boarderMatrix cellAt:0:2] setState:1]; [[boarderMatrix cellAt:0:1] setState:0]; [[boarderMatrix cellAt:0:0] setState:0]; }else if ([(CircularSlider*)object isBordered] == YES){ [[boarderMatrix cellAt:0:1] setState:1]; [[boarderMatrix cellAt:0:2] setState:0]; [[boarderMatrix cellAt:0:0] setState:0]; }else{ [[boarderMatrix cellAt:0:0] setState:1]; [[boarderMatrix cellAt:0:1] setState:0]; [[boarderMatrix cellAt:0:2] setState:0]; } [optionMatrix display]; /* This is necessary to tell the matrix * to update its contents (uuuuggggggggggggggg) */ [boarderMatrix display]; return self; } - revert:sender { [self update]; return [super revert:sender]; } - (BOOL)wantsButtons { return NO; } - setType:sender { switch ([[sender selectedCell] tag]){ case 1: [(CircularSlider*)object setDrawAsPieChart: NO]; break; case 2: [(CircularSlider*)object setDrawAsPieChart: YES]; break; } [self touch:self]; return [self ok:sender]; } - setMaximum:sender { [(CircularSlider*)object setMaxValue:(float)[sender floatValue]]; [self touch:self]; [self update]; return [self ok:sender]; } - setMinimum:sender { [(CircularSlider*)object setMinValue:(float)[sender floatValue]]; [self touch:self]; [self update]; return [self ok:sender]; } - setCurrent:sender { [(CircularSlider*)object setFloatValue:(float)[sender floatValue]]; [self touch:self]; [self update]; return [self ok:sender]; } - setOptions:sender { int state = [[sender selectedCell] state]; switch ([[sender selectedCell] tag]){ case 1: /* Cont */ if (state) [(CircularSlider*)object setContinuous:YES]; else [(CircularSlider*)object setContinuous:NO]; break; case 2: /* Disabled */ if (state) [(CircularSlider*)object setEnabled:NO]; else [(CircularSlider*)object setEnabled:YES]; break; case 3: /* Hidden */ if (state){ [(CircularSlider*)object setHidden:YES]; /* If an Object is Hidden it is also * disabled */ [[optionMatrix cellAt:1:0] setEnabled:NO]; }else{ [(CircularSlider*)object setHidden:NO]; [[optionMatrix cellAt:1:0] setEnabled:YES]; } [optionMatrix display]; break; } [self touch:self]; return [self ok:sender]; } - setBoarder:sender { int state = [[sender selectedCell] state]; switch ([[sender selectedCell] tag]){ case 1: /* NONE */ [(CircularSlider*)object setBezeled:NO]; [(CircularSlider*)object setBordered:NO]; break; case 2: /* Bordered */ [(CircularSlider*)object setBezeled:NO]; [(CircularSlider*)object setBordered:YES]; break; case 3: /* Bezeled */ [(CircularSlider*)object setBordered:NO]; [(CircularSlider*)object setBezeled:YES]; break; } [self touch:self]; return [self ok:sender]; } - setTag:sender { [(CircularSlider*)object setTag:[sender intValue]]; [self touch:self]; return [self ok:sender]; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.