This is NObject.m in view mode; [Download] [Up]
#pragma .h #import <objc/Object.h> #pragma .h #import <appkit/Application.h> #import "NObject.h" #import <appkit/Panel.h> /** ** NObjects are just like Objects, ** except that they do not kill off ** the application when they receive ** a message they can't understand. ** Instead, they pop up an alert panel. **/ @implementation NObject: Object { } + doesNotRecognize: (SEL)aSelector ; { int rval ; rval = NXRunAlertPanel("CB", "Error\n%s doesNotRecognize: %s","Continue","Abort CB",NULL, [self name], sel_getName(aSelector)) ; if(rval == 1) // i.e. continue return self ; else // i.e. abort [self error: "CB aborted by user\n"] ; return self ; } - doesNotRecognize: (SEL)aSelector ; { int rval ; rval = NXRunAlertPanel("CB", "Error\n%s doesNotRecognize: %s","Continue","Abort CB",NULL, [self name], sel_getName(aSelector)) ; if(rval == 1) // i.e. continue return self ; else // i.e. abort [self error: "CB aborted by user\n"] ; return self ; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.