home *** CD-ROM | disk | FTP | other *** search
/ Nebula / nebula.bin / SourceCode / Palettes / Clocks / Inspectors.subproj / ClockInspector.m < prev    next >
Text File  |  1992-12-05  |  8KB  |  449 lines

  1. //----------------------------------------------------------------------------------------------------
  2. //
  3. //    ClockInspector
  4. //
  5. //    Inherits From:        IBInspector
  6. //
  7. //    Declared In:        ClockInspector.h
  8. //
  9. //    Disclaimer
  10. //
  11. //        You may freely copy, distribute and reuse this software and its
  12. //        associated documentation. I disclaim any warranty of any kind, 
  13. //        expressed or implied, as to its fitness for any particular use.
  14. //
  15. //----------------------------------------------------------------------------------------------------
  16. #import "ClockInspector.h"
  17. #import "Clock.h"
  18. #import "SoundWell.h"
  19.  
  20.  
  21.  
  22. @implementation ClockInspector
  23.  
  24. //----------------------------------------------------------------------------------------------------
  25. //    Private Methods
  26. //----------------------------------------------------------------------------------------------------
  27. + (const char*) _nib
  28. {
  29.     return "";
  30. }
  31.  
  32.  
  33. //----------------------------------------------------------------------------------------------------
  34. //    Initialization and Freeing
  35. //----------------------------------------------------------------------------------------------------
  36. - init
  37. {
  38.         char     path[MAXPATHLEN+1];
  39.         id         bundle;
  40.         
  41.         [super init];
  42.         if (! (bundle = [NXBundle bundleForClass:[self class]])) return nil;
  43.         if (! ([bundle getPath: path forResource: [[self class] _nib] ofType:"nib"])) return nil;
  44.            [NXApp loadNibFile:path owner:self withNames:NO ]; 
  45.         return self;
  46. }
  47.  
  48.  
  49. //----------------------------------------------------------------------------------------------------
  50. //    IB Inspector Methods
  51. //----------------------------------------------------------------------------------------------------
  52. - ok:sender
  53. {
  54.     [[NXApp activeDocument] touch];
  55.         return [super ok:sender];
  56. }
  57.  
  58.  
  59. - revert: sender
  60. {
  61.     [[self window] disableDisplay];
  62.     sender = [[inspectButton target] itemList];
  63.     
  64.     switch ([[sender selectedCell] tag])
  65.         {
  66.         case 0:
  67.             [inspectorView setContentView: [optionsWindow contentView]];
  68.             [self revertOptions];
  69.             break;
  70.         case 1:
  71.             [inspectorView setContentView: [timeAndDateWindow contentView]];
  72.             [self revertTimeAndDate];
  73.             break;
  74.         case 2:
  75.             [inspectorView setContentView: [displayWindow contentView]];
  76.             [self revertDisplay];
  77.             break;
  78.         }
  79.         
  80.     [[self window] reenableDisplay];
  81.     [inspectorView display];
  82.     return [super revert: sender];
  83. }
  84.  
  85.  
  86. - (BOOL)wantsButtons
  87. {
  88.         return NO;
  89. }
  90.  
  91.  
  92. //----------------------------------------------------------------------------------------------------
  93. //    Reverting Attributes
  94. //----------------------------------------------------------------------------------------------------
  95. - revertOptions
  96. {
  97.     return self;
  98. }
  99.  
  100.  
  101. - revertTimeAndDate
  102. {
  103.     if ([object _displayMode] == 1)
  104.         {
  105.         [clockOrAlarmButton setTitle: "Alarm"]; 
  106.         [[[clockOrAlarmButton target] itemList] selectCellWithTag: 1];
  107.         }
  108.     else
  109.         {
  110.         [clockOrAlarmButton setTitle: "Clock"]; 
  111.         [[[clockOrAlarmButton target] itemList] selectCellWithTag: 0];
  112.         }
  113.  
  114.     [self clockOrAlarm: clockOrAlarmButton];
  115.  
  116.     [alarmOptions setState: [object isAlarmEnabled] at: 0 :0];
  117.     [alarmOptions setState: [object wantsAlarmIndicator] at: 1 :0];
  118.     [alarmMode selectCellWithTag: [object  _alarmMode]];
  119.     [alarmSound sound: [object alarmSound]];
  120.  
  121.     return self;
  122. }
  123.  
  124.  
  125. - revertDisplay
  126. {
  127.     return self;
  128. }
  129.  
  130.  
  131. - revertClockTimeAndDate
  132. {
  133.     [clock clockHour: [object clockHour]];
  134.     [clock clockMinute: [object clockMinute]];
  135.     [clock clockSecond: [object clockSecond]];
  136.     [clock clockMonth: [object clockMonth]];
  137.     [clock clockDay: [object clockDay]];
  138.     [clock clockYear: [object clockYear]];
  139.     [clock update];
  140.     return self;
  141. }
  142.  
  143.  
  144. - revertAlarmTimeAndDate
  145. {
  146.     [clock alarmHour: [object alarmHour]];
  147.     [clock alarmMinute: [object alarmMinute]];
  148.     [clock alarmSecond: [object alarmSecond]];
  149.     [clock alarmMonth: [object alarmMonth]];
  150.     [clock alarmDay: [object alarmDay]];
  151.     [clock alarmYear: [object alarmYear]];
  152.     [clock update];
  153.     return self;
  154. }
  155.  
  156.  
  157. //----------------------------------------------------------------------------------------------------
  158. //    Setting Attributes
  159. //----------------------------------------------------------------------------------------------------
  160. - setClockOptions: sender
  161. {
  162.     return [self ok:nil];
  163. }
  164.  
  165.  
  166. - clockOrAlarm: sender
  167. {
  168.     alarmFlag = [[[[clockOrAlarmButton target] itemList] selectedCell] tag];
  169.  
  170.     if (alarmFlag)
  171.         {
  172.         [self revertAlarmTimeAndDate];
  173.         [clock showAlarmTime: nil];
  174.         [object showAlarmTime: nil];
  175.         }
  176.     else
  177.         {
  178.         [self revertClockTimeAndDate];
  179.         [clock showClockTime: nil];
  180.         [object showClockTime: nil];
  181.         }
  182.  
  183.     [[NXApp activeDocument] redrawObject:object];
  184.     return self;
  185. }
  186.  
  187.  
  188. - decrementHour: sender
  189. {
  190.     if (alarmFlag)
  191.         {
  192.         [object decrementAlarmHour:nil];
  193.         [self revertAlarmTimeAndDate];
  194.         }
  195.     else
  196.         {
  197.         [object decrementClockHour:nil];
  198.         [self revertClockTimeAndDate];
  199.         }
  200.         
  201.     return [self ok:nil];
  202. }
  203.  
  204.  
  205. - decrementMinute: sender
  206. {
  207.     if (alarmFlag)
  208.         {
  209.         [object decrementAlarmMinute:nil];
  210.         [self revertAlarmTimeAndDate];
  211.         }
  212.     else
  213.         {
  214.         [object decrementClockMinute:nil];
  215.         [self revertClockTimeAndDate];
  216.         }
  217.         
  218.     return [self ok:nil];
  219. }
  220.  
  221.  
  222. - decrementSecond: sender
  223. {
  224.     if (alarmFlag)
  225.         {
  226.         [object decrementAlarmSecond:nil];
  227.         [self revertAlarmTimeAndDate];
  228.         }
  229.     else
  230.         {
  231.         [object decrementClockSecond:nil];
  232.         [self revertClockTimeAndDate];
  233.         }
  234.         
  235.     return [self ok: nil];
  236. }
  237.  
  238.  
  239. - decrementMonth: sender
  240. {
  241.     if (alarmFlag)
  242.         {
  243.         [object decrementAlarmMonth:nil];
  244.         [self revertAlarmTimeAndDate];
  245.         }
  246.     else
  247.         {
  248.         [object decrementClockMonth:nil];
  249.         [self revertClockTimeAndDate];
  250.         }
  251.         
  252.     return [self ok: nil];
  253. }
  254.  
  255.  
  256. - decrementDay: sender
  257. {
  258.     if (alarmFlag)
  259.         {
  260.         [object decrementAlarmDay:nil];
  261.         [self revertAlarmTimeAndDate];
  262.         }
  263.     else
  264.         {
  265.         [object decrementClockDay:nil];
  266.         [self revertClockTimeAndDate];
  267.         }
  268.         
  269.     return [self ok: nil];
  270. }
  271.  
  272.  
  273. - decrementYear: sender
  274. {
  275.     if (alarmFlag)
  276.         {
  277.         [object decrementAlarmYear:nil];
  278.         [self revertAlarmTimeAndDate];
  279.         }
  280.     else
  281.         {
  282.         [object decrementClockYear:nil];
  283.         [self revertClockTimeAndDate];
  284.         }
  285.         
  286.     return [self ok: nil];
  287. }
  288.  
  289.  
  290.  
  291. - incrementHour: sender
  292. {
  293.     if (alarmFlag)
  294.         {
  295.         [object incrementAlarmHour:nil];
  296.         [self revertAlarmTimeAndDate];
  297.         }
  298.     else
  299.         {
  300.         [object incrementClockHour:nil];
  301.         [self revertClockTimeAndDate];
  302.         }
  303.         
  304.     return [self ok: nil];
  305. }
  306.  
  307.  
  308. - incrementMinute: sender
  309. {
  310.     if (alarmFlag)
  311.         {
  312.         [object incrementAlarmMinute:nil];
  313.         [self revertAlarmTimeAndDate];
  314.         }
  315.     else
  316.         {
  317.         [object incrementClockMinute:nil];
  318.         [self revertClockTimeAndDate];
  319.         }
  320.         
  321.     return [self ok: nil];
  322. }
  323.  
  324.  
  325. - incrementSecond: sender
  326. {
  327.     if (alarmFlag)
  328.         {
  329.         [object incrementAlarmSecond:nil];
  330.         [self revertAlarmTimeAndDate];
  331.         }
  332.     else
  333.         {
  334.         [object incrementClockSecond:nil];
  335.         [self revertClockTimeAndDate];
  336.         }
  337.         
  338.     return [self ok: nil];
  339. }
  340.  
  341.  
  342. - incrementMonth: sender
  343. {
  344.     if (alarmFlag)
  345.         {
  346.         [object incrementAlarmMonth:nil];
  347.         [self revertAlarmTimeAndDate];
  348.         }
  349.     else
  350.         {
  351.         [object incrementClockMonth:nil];
  352.         [self revertClockTimeAndDate];
  353.         }
  354.         
  355.     return [self ok: nil];
  356. }
  357.  
  358.  
  359. - incrementDay: sender
  360. {
  361.     if (alarmFlag)
  362.         {
  363.         [object incrementAlarmDay:nil];
  364.         [self revertAlarmTimeAndDate];
  365.         }
  366.     else
  367.         {
  368.         [object incrementClockDay:nil];
  369.         [self revertClockTimeAndDate];
  370.         }
  371.         
  372.     return [self ok: nil];
  373. }
  374.  
  375.  
  376. - incrementYear: sender;
  377. {
  378.     if (alarmFlag)
  379.         {
  380.         [object incrementAlarmYear:nil];
  381.         [self revertAlarmTimeAndDate];
  382.         }
  383.     else
  384.         {
  385.         [object incrementClockYear:nil];
  386.         [self revertClockTimeAndDate];
  387.         }
  388.         
  389.     return [self ok: nil];
  390. }
  391.  
  392.  
  393.  
  394. - alarmOptions: sender
  395. {
  396.     [object enableAlarm: [[sender findCellWithTag: 0] state]];
  397.     [object wantsAlarmIndicator: [[sender findCellWithTag: 1] state]];
  398.     return [self ok: nil];
  399. }
  400.  
  401.  
  402. - alarmMode: sender
  403. {
  404.     [object _alarmMode: [[alarmMode selectedCell] tag]];
  405.     return [self ok: nil];
  406. }
  407.     
  408.  
  409. - alarmSound: sender
  410. {
  411.     [object alarmSound: [alarmSound sound]];
  412.     return [self ok: nil];
  413. }
  414.  
  415.  
  416. - playAlarmSound: sender
  417. {
  418.     [alarmSound play: nil];
  419.     return self;
  420. }
  421.  
  422.  
  423. - imageOrColor: sender
  424. {
  425.     if ([[colorOrImage selectedCell] tag] == 1)
  426.         [object backgroundColor: [backgroundColor color]];
  427.     else
  428.         [object backgroundImage: [backgroundImage image]];
  429.     
  430.     return [self ok:nil];
  431. }
  432.  
  433.  
  434. - setClockBackgroundColor: sender
  435. {
  436.     if ([[colorOrImage selectedCell] tag] == 1) [object backgroundColor: [sender color]];
  437.     return [self ok:nil];
  438. }
  439.     
  440.     
  441. - setClockBackgroundImage: sender
  442. {
  443.     if ([[colorOrImage selectedCell] tag] == 0) 
  444.         [object backgroundImage: [backgroundImage image]];
  445.     return [self ok:nil];
  446. }
  447.     
  448.     
  449. @end