This is IKFolderInspector.m in view mode; [Download] [Up]
#import <IconKit/IKFolder.h> #import "IKFolderInspector.h" @implementation IKFolderInspector: IBInspector { id look; id options; id browserOptions; } #define NAME 0 #define ICON 1 #define OPENICON 2 #define DRAGGABLE 0 #define DRAGACCEPTING 1 #define EDITABLE 2 #define HIDDEN 0 #define LEAF 1 - init { [super init]; [NSBundle loadNibNamed:@"IKFolderInspector" owner:self]; return self; } /* ========================================================================== */ - updateLook: sender { NSString * name = [[look cellWithTag:NAME] stringValue], * icon = [[look cellWithTag:ICON] stringValue], * openIcon = [[look cellWithTag:OPENICON] stringValue]; [(IKFolder *)[self object] setName:name]; [[self object] setImage: icon ? [NSImage imageNamed:icon] : nil]; [[self object] setAcceptingDragImage: openIcon ? [NSImage imageNamed:openIcon] : nil]; [self ok: sender]; return self; } - updateOptions: sender { [[self object] setEditable: [[sender cellWithTag:EDITABLE] state]]; [[self object] setDraggable: [[sender cellWithTag:DRAGGABLE] state]]; [[self object] setDragAccepting: [[sender cellWithTag:DRAGACCEPTING] state]]; [self ok: sender]; return self; } - updateBrowserOptions: sender { [[self object] setHidden: [[sender cellWithTag:HIDDEN] state]]; [[self object] setLeaf: [[sender cellWithTag:LEAF] state]]; [self ok: sender]; return self; } - (void)ok:(id)sender { [self touch: self]; [super ok: sender]; } - (void)revert:(id)sender { NSString *name = [(IKFolder *)[self object] name]; NSString *icon = [[(IKFolder *)[self object] image] name], *openIcon = [[(IKFolder *)[self object] acceptingDragImage] name]; [[look cellWithTag:NAME] setStringValue: name ? name : @""]; [[look cellWithTag:ICON] setStringValue:icon ? icon : @""]; [[look cellWithTag:OPENICON] setStringValue:openIcon ? openIcon : @""]; [[options cellWithTag:EDITABLE] setIntValue: [[self object] isEditable]]; [[options cellWithTag:DRAGGABLE] setIntValue: [[self object] isDraggable]]; [[options cellWithTag:DRAGACCEPTING] setIntValue:[[self object] isDragAccepting]]; [[browserOptions cellWithTag:HIDDEN] setIntValue: [[self object] isHidden]]; [[browserOptions cellWithTag:LEAF] setIntValue: [[self object] isLeaf]]; [super revert: sender]; } - (BOOL) wantsButtons { return NO; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.