This is GUI_view.m in view mode; [Download] [Up]
#import <appkit/appkit.h> #import "GUI_view.h" #import "GUI.h" extern NXEvent GUI_lastmousedown; // for dragging @implementation GUI_view - drawSelf: (const NXRect *)re: (int)co { [myGUIObject doDrawSelf:self:re:&bounds:name]; return self; } - mouseDown: (NXEvent *)te { if(dragsource) GUI_lastmousedown=*te; [myGUIObject doMouseDown:self:te:name]; return self; } - setTheObject: (id)to { myGUIObject=to; return self; } - setVarName:(char *)myname { name=(char *)malloc(sizeof(char)*(strlen(myname)+1)); strcpy(name, myname); return self; } - setDragging:(int)flag { dragging=flag; if(dragging) { const char *mytype[2] = {NXAsciiPboardType, NXFilenamePboardType}; [self registerForDraggedTypes:mytype count:2]; } else [self unregisterDraggedTypes]; return self; } - setDragSource:(int)flag { dragsource=flag; return self; } - (NXDragOperation)draggingSourceOperationMaskForLocal:(BOOL)isLocal { return NX_DragOperationCopy; } - (BOOL)prepareForDragOperation:(id <NXDraggingInfo>)sender { if(dragging) return YES; else return NO; } - (BOOL)performDragOperation:(id <NXDraggingInfo>)sender { Pasteboard *pboard; NXPoint loc; if(dragging) { pboard=[sender draggingPasteboard]; loc=[sender draggedImageLocation]; [self convertPoint: &loc fromView: nil]; [myGUIObject takeDrag: pboard: &loc: name]; return YES; } else return NO; } - (NXDragOperation)draggingEntered:(id <NXDraggingInfo>)sender { if(dragging) return NX_DragOperationCopy|NX_DragOperationGeneric; else return NX_DragOperationNone; } - free { if(name) free(name); return [super free]; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.