home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1994 June / NEBULA_SE.ISO / SourceCode / MiscKit / Palettes / MiscArrowButtonPalette / ABInspector.m < prev    next >
Encoding:
Text File  |  1994-01-16  |  3.1 KB  |  172 lines

  1.  
  2. #import "MiscArrowButton.subproj/MiscArrowButton.h"
  3. #import "ABInspector.h"
  4.  
  5. @implementation ABInspector
  6.  
  7. // Load the Inspector
  8.  
  9. - init
  10. {
  11.     char buf[MAXPATHLEN + 1];
  12.     id bundle;
  13.     
  14.     [super init];
  15.     
  16.     bundle = [NXBundle bundleForClass:[MiscArrowButton class]];
  17.  
  18.     [bundle getPath: buf forResource: "MiscABInspector" ofType:"nib"];
  19.  
  20.     [NXApp loadNibFile:buf owner:self withNames:NO fromZone:[self zone]];
  21.            
  22.     return self;
  23. }
  24.  
  25.  
  26. // This method sets all the values in the inspector by getting
  27. // the relevant info from the object. This is called when the
  28. // inspector first appears, so the object's attributes are
  29. // correctly displayed in the inspector.
  30.  
  31. - revert: sender
  32. {    
  33.     // set all the options
  34.     
  35.     if ([object isBordered])
  36.         [ [optionMatrix cellAt: 0 : 0] setState: 1];
  37.     else
  38.         [ [optionMatrix cellAt: 0 : 0] setState: 0];    
  39.  
  40.     if ([object isTransparent])
  41.         [ [optionMatrix cellAt: 1 : 0] setState: 1];
  42.     else
  43.         [ [optionMatrix cellAt: 1 : 0] setState: 0];    
  44.  
  45.     if ([object isContinuous])
  46.         [ [optionMatrix cellAt: 2 : 0] setState: 1];
  47.     else
  48.         [ [optionMatrix cellAt: 2 : 0] setState: 0];    
  49.  
  50.     if ([object isEnabled])
  51.         [ [optionMatrix cellAt: 3 : 0] setState: 0];
  52.     else
  53.         [ [optionMatrix cellAt: 3 : 0] setState: 1];    
  54.  
  55.     if ([object state])
  56.         [ [optionMatrix cellAt: 4 : 0] setState: 1];
  57.     else
  58.         [ [optionMatrix cellAt: 4 : 0] setState: 0];    
  59.  
  60.     // set the title, altTitle, and sound in the inspector
  61.     
  62.     [tagField setIntValue: [object tag] ];
  63.     [titleField setStringValue: [object title] ];
  64.     [altTitleField setStringValue: [object altTitle] ];
  65.     [soundField setStringValue: [ [object sound] name] ];
  66.     
  67.     [optionMatrix display];
  68.  
  69.     [alignButton setState: [object arrowAlignment] ];
  70.         
  71.     return [super revert: sender];
  72. }
  73.  
  74.  
  75.  
  76. // One of the checkbox buttons was clicked, so change the corresponding
  77. // attribute of the object being inspected.
  78.  
  79. - optionsChanged:sender
  80. {
  81.   id  cell = [sender selectedCell];
  82.   BOOL  state = [cell state];
  83.   
  84.       switch ([cell tag])
  85.     {
  86.       case 0:        // bordered
  87.           if (state)
  88.             [object setBordered: YES];
  89.         else
  90.             [object setBordered: NO];
  91.         break;
  92.  
  93.       case 1:        // transparent
  94.           if (state)
  95.             [object setTransparent: YES];
  96.         else
  97.             [object setTransparent: NO];
  98.         break;
  99.  
  100.       case 2:        // continuous
  101.           if (state)
  102.             [object setContinuous: YES];
  103.         else
  104.             [object setContinuous: NO];
  105.         break;
  106.  
  107.       case 3:        // disabled
  108.           if (state)
  109.             [object setEnabled: NO];
  110.         else
  111.             [object setEnabled: YES];
  112.         break;
  113.  
  114.       case 4:        // selected
  115.             [object setState: state];
  116.         break;
  117.      }
  118.         
  119.     return [self ok: sender];
  120. }
  121.  
  122.  
  123.  
  124. - tagChanged: sender
  125. {
  126.       [object setTag: [sender intValue] ];
  127.     
  128.     return [self ok: sender];
  129. }
  130.  
  131.  
  132.  
  133. - titleChanged: sender
  134. {
  135.     [object setTitle: [sender stringValue] ];
  136.     return [self ok: sender];
  137. }
  138.  
  139.  
  140.  
  141. - altTitleChanged: sender
  142. {
  143.     [object setAltTitle: [sender stringValue] ];
  144.     return [self ok: sender];
  145. }        
  146.  
  147.  
  148.  
  149. - soundChanged: sender
  150. {
  151.     [object setSound: [Sound findSoundFor: [sender stringValue] ] ];
  152.     return [self ok: sender];
  153. }
  154.  
  155.  
  156.  
  157. - alignmentChanged: sender
  158. {
  159.     [object setArrowAlignment: [sender state] ];
  160.     return [self ok: sender];
  161. }
  162.  
  163.  
  164.  
  165. - (BOOL)wantsButtons
  166. {
  167.     return NO;
  168. }
  169.  
  170.  
  171. @end
  172.