home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1994 June / NEBULA_SE.ISO / SourceCode / OOP_Course / Examples / ExtendDraw / AShape.m < prev    next >
Encoding:
Text File  |  1993-01-19  |  834 b   |  62 lines

  1. #import <appkit/appkit.h>
  2. #import "AShape.h"
  3. #define DEFAULTFILL NO
  4. #define DEFAULTSHADE 0.0
  5. #define NOBBYSIZE 6.0
  6.  
  7. void massageRect(r)
  8. NXRect *r;
  9. {
  10.     if(r->size.width<0){
  11.         r->size.width = fabs(r->size.width);
  12.     r->origin.x -= r->size.width;
  13.     }
  14.     if(r->size.height<0){
  15.         r->size.height = fabs(r->size.height);
  16.     r->origin.y -= r->size.height;
  17.     }
  18.     return;
  19. }
  20.  
  21. @implementation AShape
  22.  
  23. -initShapeWithBBox:(NXRect *)r;
  24. {
  25.     [super init];
  26.     bbox = *r;
  27.     fill = DEFAULTFILL;
  28.     shade = DEFAULTSHADE;
  29.     return self;
  30. }
  31.  
  32. -setFill:(int)i
  33. {
  34.        fill = i;
  35.     return self;
  36. }
  37.  
  38. -(int)fill {return fill;}
  39.  
  40. -setShade:(float)s
  41. {
  42.     shade = s;
  43.     return self;
  44. }
  45.  
  46. -(float)shade{return shade;}
  47.  
  48. -setBbox:(NXRect *)r
  49. {
  50.     bbox = *r;
  51.     massageRect(&bbox);
  52.     return self;
  53. }
  54.  
  55. -(NXRect *)bbox {return &bbox;}
  56.  
  57. -drawShape
  58. {
  59.     return self;
  60. }
  61.  
  62. @end