|
|
1.1 ! root 1: #import "draw.h" ! 2: ! 3: @implementation Rectangle : Graphic ! 4: /* ! 5: * This is the canonical Graphic. ! 6: * It doesn't get much simpler than this. ! 7: * ! 8: * This line is just a stub to get genstrings to generate ! 9: * a .strings file entry for the name of this type of Graphic. ! 10: * The name is used in the Undo New <Whatever> menu item. ! 11: * ! 12: * NXLocalString("Rectangle", NULL, "Name of the tool that draws rectangles, i.e., the %s of the New %s operation.") ! 13: */ ! 14: ! 15: + initialize ! 16: /* ! 17: * This bumps the class version so that we can compatibly read ! 18: * old Graphic objects out of an archive. ! 19: */ ! 20: { ! 21: [Rectangle setVersion:1]; ! 22: return self; ! 23: } ! 24: ! 25: /* Methods overridden from superclass */ ! 26: ! 27: - (float)naturalAspectRatio ! 28: /* ! 29: * The natural aspect ratio of a rectangle is 1.0 (a square). ! 30: */ ! 31: { ! 32: return 1.0; ! 33: } ! 34: ! 35: - (Graphic *)colorAcceptorAt:(const NXPoint *)point ! 36: { ! 37: if ([self hit:point]) return self; ! 38: return nil; ! 39: } ! 40: ! 41: - draw ! 42: { ! 43: if (bounds.size.width < 1.0 || bounds.size.height < 1.0) return self; ! 44: ! 45: if ([self fill]) { ! 46: [self setFillColor]; ! 47: NXRectFill(&bounds); ! 48: } ! 49: if (!gFlags.nooutline) { ! 50: [self setLineColor]; ! 51: PSrectstroke(bounds.origin.x, bounds.origin.y, bounds.size.width, bounds.size.height); ! 52: } ! 53: ! 54: return self; ! 55: } ! 56: ! 57: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.