home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1995 August / NEBULA.bin / SourceCode / Palettes / TTools / TToolsPalette / Timer.subproj / TimerInspector.m < prev   
Encoding:
Text File  |  1993-11-09  |  2.3 KB  |  99 lines

  1. /* TimerInspector.m
  2.  * Written By:  Thomas Burkholder
  3.  *
  4.  * You may freely copy, distribute, and reuse the code in this example.
  5.  * NeXT disclaims any warranty of any kind, expressed or  implied, as to its
  6.  * fitness for any particular use.
  7.  */
  8.  
  9.  
  10. #import "TimerInspector.h"
  11.  
  12. @implementation Timer (AttributesInspector)
  13.  
  14. - (const char *)getInspectorClassName
  15. {
  16.     return "TimerInspector";
  17. }
  18.  
  19. - (NXImage *)getIBImage
  20. {
  21.     return [NXImage findImageNamed:"TimerIcon"];
  22. }
  23.  
  24. @end
  25.  
  26. @implementation TimerInspector
  27.  
  28. static int thresholds[] = {NX_BASETHRESHOLD, 
  29.                             NX_RUNMODALTHRESHOLD, 
  30.                             NX_MODALRESPTHRESHOLD};
  31. - init
  32. {
  33.     char buf[MAXPATHLEN+1];
  34.     NXBundle *bundle;
  35.     [super init];
  36.     bundle = [NXBundle bundleForClass:[Timer class]];
  37.     [bundle getPath:buf forResource:"TimerInspector" ofType:"nib"];
  38.     [NXApp loadNibFile:buf owner:self withNames:NO fromZone:[self zone]];
  39.     return self;
  40. }
  41.  
  42. - ok:sender
  43. {
  44.     [window disableFlushWindow];
  45.     [object setPeriod:[periodField doubleValue]];
  46.     [object setPriority:[priorityField intValue]];
  47.     [object setVisibleDebug:[visibleDebugSwitch state]];
  48.     [object setWrap:[wrapSwitch state]];
  49.     [object setSync:[syncSwitch state]];
  50.     [object setSyncValue:[syncValueField intValue]];
  51.     [object setStartValue:[startValueField floatValue]];
  52.     [object setWrapValue:[wrapValueField floatValue]];
  53.     [object setIncrementBy:[incrementByField floatValue]];
  54.     [self revertInspector:sender];
  55.     [window reenableFlushWindow];
  56.     [window flushWindow];
  57.     return [super ok:sender];
  58. }
  59.  
  60. - revertInspector:sender
  61. {
  62.     [periodField setDoubleValue:[object period]];
  63.     [priorityField setIntValue:[object priority]];
  64.     [visibleDebugSwitch setState:[object visibleDebug]];
  65.     [wrapSwitch setState:[object wrap]];
  66.     [syncSwitch setState:[object sync]];
  67.     [syncValueField setIntValue:[object syncValue]];
  68.     [startValueField setFloatValue:[object startValue]];
  69.     [wrapValueField setFloatValue:[object wrapValue]];
  70.     [incrementByField setFloatValue:[object incrementBy]];
  71.     return self;
  72. }
  73.  
  74. - revert:sender
  75. {
  76.     [window disableFlushWindow];
  77.     [self revertInspector:sender];
  78.     [window reenableFlushWindow];
  79.     [window flushWindow];
  80.     return [super revert:sender];
  81. }
  82.  
  83. - thresholdPopped:sender
  84. {
  85.     int val;
  86.     val = [[sender selectedCell] tag];
  87.     if (val < 0)
  88.         return self;
  89.     [priorityField setIntValue:thresholds[val]];
  90.     return [self ok:self];
  91. }
  92.  
  93. - (BOOL)wantsButtons
  94. {
  95.     return NO;
  96. }
  97.  
  98. @end
  99.