home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1995 August / NEBULA.bin / SourceCode / Palettes / CircularSlider / CircularSliderInspector.m < prev    next >
Encoding:
Text File  |  1992-11-15  |  4.8 KB  |  194 lines

  1. /*
  2.  *    Filename:    CircularSliderInspector.m 
  3.  *    Created :    Thu Oct 22 00:46:47 1992 
  4.  *    Author  :    Vince DeMarco
  5.  *        <vince@whatnxt.cuc.ab.ca>
  6.  *    LastEditDate was "Sun Nov 15 21:05:03 1992"
  7.  */
  8.  
  9.  
  10. #import "CircularSliderInspector.h"
  11. #import "CircularSlider.subproj/CircularSlider.h"
  12.  
  13. @implementation CircularSliderInspector
  14.  
  15. - init
  16. {
  17.     char buf[MAXPATHLEN + 1];
  18.     id bundle = [NXBundle bundleForClass:[CircularSlider class]];
  19.  
  20.     [bundle getPath:buf forResource:"CircularSliderInspector" ofType:"nib"];
  21.     [NXApp loadNibFile:buf owner:self withNames:NO fromZone:[self zone]];
  22.     return self;
  23. }
  24.  
  25. - ok:sender
  26. {
  27.     [(CircularSlider*)object display];
  28.     return [super ok:sender];
  29. }
  30.  
  31. - update
  32. {
  33.     if ([(CircularSlider*)object drawAsPieChart] == YES){
  34.     [typeMatrix selectCellAt:0:1];
  35.      }else{
  36.     [typeMatrix selectCellAt:0:0];
  37.      }
  38.  
  39.     [tagField setIntValue: (int)[(CircularSlider*)object tag]];
  40.     [minValueField setFloatValue: (float)[(CircularSlider*)object minValue]];
  41.     [maxValueField setFloatValue: (float)[(CircularSlider*)object maxValue]];
  42.     [currentValueField setFloatValue: (float)[(CircularSlider*)object floatValue]];
  43.  
  44.     if ([(CircularSlider*)object isContinuous] == YES)
  45.     [[optionMatrix cellAt:0:0] setState: 1];
  46.     else
  47.     [[optionMatrix cellAt:0:0] setState: 0];
  48.  
  49.     if ([(CircularSlider*)object isEnabled] == YES)
  50.     [[optionMatrix cellAt:1:0] setState: 0];
  51.     else
  52.     [[optionMatrix cellAt:1:0] setState: 1];
  53.  
  54.     if ([(CircularSlider*)object hidden] == YES){
  55.     [[optionMatrix cellAt:2:0] setState: 1];     /* If object is hidden it is then disabled */
  56.     [[optionMatrix cellAt:1:0] setEnabled:NO];
  57.     }else{
  58.     [[optionMatrix cellAt:2:0] setState: 0];
  59.     [[optionMatrix cellAt:1:0] setEnabled:YES];
  60.     }
  61.  
  62.     if ([(CircularSlider*)object isBezeled] == YES){
  63.     [[boarderMatrix cellAt:0:2] setState:1];
  64.     [[boarderMatrix cellAt:0:1] setState:0];
  65.     [[boarderMatrix cellAt:0:0] setState:0];
  66.     }else
  67.     if ([(CircularSlider*)object isBordered] == YES){
  68.         [[boarderMatrix cellAt:0:1] setState:1];
  69.         [[boarderMatrix cellAt:0:2] setState:0];
  70.         [[boarderMatrix cellAt:0:0] setState:0];
  71.     }else{
  72.         [[boarderMatrix cellAt:0:0] setState:1];
  73.         [[boarderMatrix cellAt:0:1] setState:0];
  74.         [[boarderMatrix cellAt:0:2] setState:0];
  75.     }
  76.  
  77.     [optionMatrix display]; /* This is necessary to tell the matrix
  78.                  * to update its contents (uuuuggggggggggggggg)
  79.                  */
  80.     [boarderMatrix display];
  81.     return self;
  82. }
  83.  
  84. - revert:sender
  85. {
  86.     [self update];
  87.     return [super revert:sender];
  88. }
  89.  
  90. - (BOOL)wantsButtons
  91. {
  92.     return NO;
  93. }
  94.  
  95. - setType:sender
  96. {
  97.     switch ([[sender selectedCell] tag]){
  98.     case 1: [(CircularSlider*)object setDrawAsPieChart: NO];
  99.         break;
  100.     case 2: [(CircularSlider*)object setDrawAsPieChart: YES];
  101.         break;
  102.     }
  103.     [self touch:self];
  104.     return [self ok:sender];
  105. }
  106.  
  107. - setMaximum:sender
  108. {
  109.     [(CircularSlider*)object setMaxValue:(float)[sender floatValue]];
  110.     [self touch:self];
  111.     [self update];
  112.     return [self ok:sender];
  113. }
  114.  
  115. - setMinimum:sender
  116. {
  117.     [(CircularSlider*)object setMinValue:(float)[sender floatValue]];
  118.     [self touch:self];
  119.     [self update];
  120.     return [self ok:sender];
  121. }
  122.  
  123. - setCurrent:sender
  124. {
  125.     [(CircularSlider*)object setFloatValue:(float)[sender floatValue]];
  126.     [self touch:self];
  127.     [self update];
  128.     return [self ok:sender];
  129. }
  130.  
  131. - setOptions:sender
  132. {
  133.     int state = [[sender selectedCell] state];
  134.     switch ([[sender selectedCell] tag]){
  135.     case 1: /* Cont */
  136.         if (state)
  137.         [(CircularSlider*)object setContinuous:YES];
  138.         else
  139.         [(CircularSlider*)object setContinuous:NO];
  140.         break;
  141.     case 2:  /* Disabled */
  142.         if (state)
  143.         [(CircularSlider*)object setEnabled:NO];
  144.         else
  145.         [(CircularSlider*)object setEnabled:YES];
  146.         break;
  147.     case 3:  /* Hidden */
  148.         if (state){
  149.         [(CircularSlider*)object setHidden:YES];   /* If an Object is Hidden it is also
  150.                                 * disabled 
  151.                                 */
  152.         [[optionMatrix cellAt:1:0] setEnabled:NO];
  153.         }else{
  154.         [(CircularSlider*)object setHidden:NO];
  155.         [[optionMatrix cellAt:1:0] setEnabled:YES];
  156.         }
  157.         [optionMatrix display];
  158.         break;
  159.  
  160.     }    
  161.     [self touch:self];
  162.     return [self ok:sender];
  163. }
  164.  
  165. - setBoarder:sender
  166. {
  167.     int state = [[sender selectedCell] state];
  168.     switch ([[sender selectedCell] tag]){
  169.     case 1: /* NONE */
  170.              [(CircularSlider*)object setBezeled:NO];
  171.              [(CircularSlider*)object setBordered:NO];
  172.          break;
  173.     case 2: /* Bordered */
  174.              [(CircularSlider*)object setBezeled:NO];
  175.              [(CircularSlider*)object setBordered:YES];
  176.          break;
  177.     case 3: /* Bezeled */
  178.              [(CircularSlider*)object setBordered:NO];
  179.              [(CircularSlider*)object setBezeled:YES];
  180.          break;
  181.     }
  182.     [self touch:self];
  183.     return [self ok:sender];
  184. }
  185.  
  186. - setTag:sender
  187. {
  188.     [(CircularSlider*)object setTag:[sender intValue]];
  189.     [self touch:self];
  190.     return [self ok:sender];
  191. }
  192.  
  193. @end
  194.