This is DragTester.m in view mode; [Download] [Up]
#import "DemoDiagram.h" #import "DiagramCell.h" #import "DragTester.h" /* DragTester - This is just a test object to fit between the user interface and the diagram objects. */ @implementation DragTester /* Just set up a gray background for the view. However, in other situations this could be a more complicated background. */ - appDidInit:sender { NXRect rect; [diagram getBounds:&rect]; diagramBg=[[NXImage alloc] initSize:&rect.size]; [diagramBg lockFocus]; PSsetgray(0.5); NXRectFill(&rect); [diagramBg unlockFocus]; [diagram setBackground:diagramBg]; [diagram display]; return self; } /* Creates an image as requested, instantiates a new diagram item, gives the image to the new item, then adds the item to the diagram. */ - addItem:sender { id image,item; NXRect r; /* Get an image for the new item */ NXSetRect(&r,0.0,0.0,(float)[sideInput intValue],(float)[sideInput intValue]); image = [[NXImage alloc] initSize:&r.size]; [self drawImage:image :&r]; /* Get an item and set the image */ item=[[DiagramCell alloc] init]; [item setImage:image]; /* Give the new item to the diagram */ [diagram addItem:item]; return self; } /* Draws the image for the new item as specified at the user interface. */ - drawImage:(NXImage *)image :(NXRect *)r { [image lockFocus]; [image composite:NX_CLEAR fromRect:r toPoint:&(r->origin)]; PSsetgray([grayInput floatValue]); if ([filledSwitch intValue]) NXRectFill(r); else NXFrameRectWithWidth(r,5.0); [image unlockFocus]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.