home *** CD-ROM | disk | FTP | other *** search
- #import "BezierApp.h"
- #import "Bezier.h"
- #import <appkit/Window.h>
- #import <defaults/defaults.h>
- #import <appkit/Bitmap.h>
- #import <appkit/Control.h>
- #import <stdlib.h>
-
- @implementation BezierApp
-
- + new // create the new application, and make us its delegate.
- {
- self = [super new];
- [self setDelegate:self];
- return self;
- }
- - setBezier:anObject // let me know where the view is.
- {
- bezier=anObject;
- return self;
- }
- - setLineSlider:anObject // let me know where the sliders are.
- {
- lineSlider=anObject;
- return self;
- }
- - setControlSlider:anObject
- {
- controlSlider=anObject;
- return self;
- }
- - appDidInit:sender // set up in the icon, and set the timing.
- {
- const char *t;
- if( t=NXGetDefaultValue( [NXApp appName], "LineSize"))
- [bezier setLineWidth:atof( t)];
- if( t=NXGetDefaultValue( [NXApp appName], "BlockSize"))
- [bezier setBlockSize:atof( t)];
- [lineSlider setDoubleValue:[bezier lineWidth]];
- [controlSlider setDoubleValue:[bezier blockSize]];
- [[bezier window] orderFront:self]; // make the window visible. I didn't
- // set it to come up right away, so that the
- // user wouldn't see me adjust the defaults.
- return self;
- }
- - terminate:sender // store the defaults, and go away.
- {
- char s[ 20];
- sprintf( s, "%f", [bezier lineWidth]);
- NXWriteDefault( [self appName], "LineSize", s);
- sprintf( s, "%f", [bezier blockSize]);
- NXWriteDefault( [self appName], "BlockSize", s);
- return [super terminate:sender];
- }
- - appPowerOffIn:(int)ms andSave:(int)aFlag // catch Workspace logout.
- {
- return [self terminate:self];
- }
-
- - windowWillResize:sender toSize:(NXSize *)s // Just limits a window's size.
- {
- NXRect r;
- [sender getFrame:&r];
- s->height=r.size.height; // kindly change it back.
- return self;
- }
-
- @end
-