home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1994 June / NEBULA_SE.ISO / SourceCode / Tutorial / Cookbook / 30.Shapes / ShapeView.m < prev    next >
Encoding:
Text File  |  1993-01-19  |  1.5 KB  |  83 lines

  1.  
  2. /* Generated by Interface Builder */
  3.  
  4. #import "ShapeView.h"
  5. #import <appkit/Matrix.h>
  6. #import <dpsclient/wraps.h>
  7. #import "shapes.h"
  8.  
  9. #define SQUARE  0
  10. #define HEART   1
  11. #define CIRCLE  2
  12. #define DIAMOND 3
  13. #define FLOWER  4
  14. #define TRIANGLE  5
  15. #define RECTANGLE  6
  16.  
  17. @implementation ShapeView
  18.  
  19. +newFrame:(const NXRect *)tF {
  20.     self = [super newFrame:tF];
  21.     numberTagValue = 5;
  22.     shapeTagValue = CIRCLE;
  23.     return self;
  24. }
  25.  
  26. - shapeMatrix:sender
  27. {
  28.     shapeTagValue = [sender selectedTag];
  29.     printf("shape = %d\n", shapeTagValue);
  30.     [self display];
  31.     return self;
  32. }
  33.  
  34. - numberMatrix:sender
  35. {
  36.     numberTagValue = [sender selectedTag] + 1;
  37.     printf("number = %d\n", numberTagValue);
  38.     [self display];
  39.     return self;
  40. }
  41.  
  42. - drawSelf:(NXRect*)r :(int)c
  43. {
  44. int i;
  45.     NXEraseRect(&bounds);
  46.     PSsetgray(NX_BLACK);
  47.     // PStranslate(bounds.size.width/2.0,  // -60.0*(10.0 - numberTagValue),
  48.     //            bounds.size.height/2.0 -40.0*(10.0 - numberTagValue));
  49.     PSscale(10.0/numberTagValue, 10.0/numberTagValue);
  50.     for (i=0; i<numberTagValue; i++) {
  51.         switch (shapeTagValue) {
  52.             case SQUARE:
  53.                 drawSquare();
  54.                 break;
  55.             case HEART:
  56.                 drawHeart();
  57.                 break;
  58.             case CIRCLE:
  59.                 drawCircle();
  60.                 break;
  61.             case DIAMOND:
  62.                 drawDiamond();
  63.                 break;
  64.             case FLOWER:
  65.                 drawFlower();
  66.                 break;
  67.             case TRIANGLE:
  68.                 drawTriangle();
  69.                 break;
  70.             case RECTANGLE:
  71.                 drawRectangle();
  72.                 break;
  73.             default:
  74.                 printf("Error - no shape for number %d\n", shapeTagValue);
  75.                 break;
  76.         }
  77.         PStranslate(100.0, 0.0);
  78.        }
  79.     return self;
  80. }
  81.  
  82. @end
  83.