This is FolderInsPane.m in view mode; [Download] [Up]
/* Copyright 1993 Jeremy Slade. You are free to use all or any parts of the Locus project however you wish, just give credit where credit is due. The author (Jeremy Slade) shall not be held responsible for any damages that result out of use or misuse of any part of this project. */ /* Project: Locus Class: FolderInsPane Description: See FolderInsPane.h Original Author: Jeremy Slade Revision History: Created V.101 JGS Thu Dec 17 21:58:31 MST 1992 */ #import "FolderInsPane.h" #import "Folder.h" #import "Globals.h" #import "Inspector.h" @implementation FolderInsPane // ------------------------------------------------------------------------- // Creating, Initializing // ------------------------------------------------------------------------- + initialize { [self setVersion:FolderInsPane_VERSION]; return ( self ); } - initContent:(const NXRect *)contentRect style:(int)aStyle backing:(int)bufferingType buttonMask:(int)mask defer:(BOOL)flag { [super initContent:contentRect style:aStyle backing:bufferingType buttonMask:mask defer:flag]; return ( self ); } - awakeFromNib /* Perform final initializations */ { [browser setDoubleAction:@selector(inspectSelectedGroup:)]; return ( self ); } - free { // browser, countField, inspectButton are subviews -- freed automatically return ( [super free] ); } // ------------------------------------------------------------------------- // Folder Inspector stuff // ------------------------------------------------------------------------- - inspect:anObject { if ( ![anObject isKindOf:[Folder class]] ) { NXRunAlertPanel ( "Inspector Error", "The Folder inspector can't inspect objects of class %s!", NULL, NULL, NULL, [[anObject class] name] ); return ( nil ); } else { target = anObject; return ( self ); } } - showCurrent:sender { [[browser window] disableFlushWindow]; [browser loadColumnZero]; // Load the browser with the list of Groups [inspectButton setEnabled:NO]; [[[browser window] reenableFlushWindow] flushWindow]; return ( [super showCurrent:sender] ); } - groupSelected:sender /* This method is the action called when the user selects a group in the browser. Simply enables the inspectButton so they can click on it. */ { [inspectButton setEnabled:YES]; return ( self ); } - inspectSelectedGroup:sender /* This action is called when the inspect button is clicked, or when a group in the browser is double-clicked. */ { const char *groupName = NULL; id group = nil; groupName = [[browser selectedCell] stringValue]; if ( group = [target groupCalled:groupName] ) { [inspector setInspectorMode:INSPECT_GROUP]; [inspector inspect:group]; } return ( self ); } // ------------------------------------------------------------------------- // Browser Delegate Methods // ------------------------------------------------------------------------- - (int)browser:sender fillMatrix:matrix inColumn:(int)col { int i, count; id group; id cell; char buf[31]; count = [target count]; for ( i=0; i<count; i++ ) { group = [target objectAt:i]; [matrix addRow]; cell = [matrix cellAt:[matrix cellCount]-1 :0]; [cell initTextCell:[group groupName]]; [[cell setLoaded:YES] setLeaf:YES]; } sprintf ( buf, "Contains %d groups", count ); [countField setStringValue:buf]; return ( count ); } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.