home *** CD-ROM | disk | FTP | other *** search
/ Altsys Virtuoso 2.0K / virtuoso_20k.iso / DemoApps / Graphics / PostScript / Bezier / Source / BezierApp.m < prev    next >
Encoding:
Text File  |  1993-06-26  |  1.7 KB  |  69 lines

  1. #import "BezierApp.h"
  2. #import "Bezier.h"
  3. #import <appkit/Window.h>
  4. #import <defaults/defaults.h>
  5. #import <appkit/Bitmap.h>
  6. #import <appkit/Control.h>
  7. #import <stdlib.h>
  8.  
  9. @implementation BezierApp
  10.  
  11. + new            // create the new application, and make us its delegate.
  12. {
  13.   self = [super new];
  14.   [self setDelegate:self];
  15.   return self;
  16. }
  17. - setBezier:anObject        // let me know where the view is.
  18. {
  19.   bezier=anObject;
  20.   return self;
  21. }
  22. - setLineSlider:anObject    // let me know where the sliders are.
  23. {
  24.   lineSlider=anObject;
  25.   return self;
  26. }
  27. - setControlSlider:anObject
  28. {
  29.   controlSlider=anObject;
  30.   return self;
  31. }
  32. - appDidInit:sender            // set up in the icon, and set the timing.
  33. {
  34.   const char *t;
  35.   if( t=NXGetDefaultValue( [NXApp appName], "LineSize"))
  36.     [bezier setLineWidth:atof( t)];
  37.   if( t=NXGetDefaultValue( [NXApp appName], "BlockSize"))
  38.     [bezier setBlockSize:atof( t)];
  39.   [lineSlider setDoubleValue:[bezier lineWidth]];
  40.   [controlSlider setDoubleValue:[bezier blockSize]];
  41.   [[bezier window] orderFront:self];    // make the window visible.  I didn't
  42.                   // set it to come up right away, so that the
  43.                 // user wouldn't see me adjust the defaults.
  44.   return self;
  45. }
  46. - terminate:sender            // store the defaults, and go away.
  47. {
  48.   char s[ 20];
  49.   sprintf( s, "%f", [bezier lineWidth]);
  50.   NXWriteDefault( [self appName], "LineSize", s);
  51.   sprintf( s, "%f", [bezier blockSize]);
  52.   NXWriteDefault( [self appName], "BlockSize", s);
  53.   return [super terminate:sender];
  54. }
  55. - appPowerOffIn:(int)ms andSave:(int)aFlag    // catch Workspace logout.
  56. {
  57.   return [self terminate:self];
  58. }
  59.  
  60. - windowWillResize:sender toSize:(NXSize *)s    // Just limits a window's size.
  61. {
  62.   NXRect r;
  63.   [sender getFrame:&r];
  64.   s->height=r.size.height;            // kindly change it back.
  65.   return self;
  66. }
  67.  
  68. @end
  69.