This is NSImage_MiscExtensions.m in view mode; [Download] [Up]
/*************************************************************************
* File Name: NSImage_MiscExtensions.m
* Version : 0.0 alpha
* Date : Sun 17-Aug-1997
*************************************************************************
* COPYWHAT (C) 1997 by Tomi Engel
*
* This notice may not be removed from this source code.
* The use and distribution of this software is governed by the
* terms of the MiscKit license agreement. Refer to the license
* document included with the MiscKit distribution for the terms.
* ALL RIGHTS RESERVED
*
*************************************************************************
* Notes :
* Bugs :
* Author(s) : tsengel
* Last update: $Date: 1997/08/17 13:50:37 $
* History : $Log: NSImage_MiscExtensions.m,v $
* History : Revision 1.1 1997/07/23 13:50:37 tsengel
* History : Create classes to handle other image creation
* History :
*************************************************************************/
#import "NSImage_MiscExtensions.h"
@implementation NSImage (MiscExtensions)
+ (id)imageNamed:(NSString *)name inContext:(id)object
/*"
Just calls imageNamed:inContext:searchAllBundles: with a search applied to all bundles.
"*/
{
return [self imageNamed:(NSString *)name inContext:(id)object searchAllBundles:YES];
}
+ (id)imageNamed:(NSString *)name inContext:(id)object searchAllBundles:(BOOL)flag
/*"
First searches in the context of object. If object is a normal instance the it checks the bundle where object came from. If object is a instance of NSBundle we first check that bundle.
If we were not successful we will try the regular imageNAmed method.
<<HACK..not yet implemented>> If that still doesn't help we will go out and try to check with all bundles which have been registered up to now.
<<HACK>> We currently on check for tiff images ! This will change so taht we will accept all valid image formats !
"*/
{
id ourImage = nil;
id aPath;
id aBundle;
// So first check in the context bundle
if( [object isKindOfClass:[NSBundle class]] )
aBundle = object;
else
aBundle = [NSBundle bundleForClass:[object class]];
aPath = [aBundle pathForResource:name ofType:@"tiff"];
if( aPath )
{
// <<NOTE>> Setting the name could be a little smarter.
ourImage = [[NSImage alloc] initWithContentsOfFile:aPath];
[ourImage setName:name];
return [ourImage autorelease];
}
// Since we were not succesful yet...try the regular access
ourImage = [self imageNamed:name];
if( ourImage ) return [ourImage autorelease];
// Seems like we really need to check all bundles :-(
// <<HACK>> Code missing here...we nned to find a smooth way to learn about all loaded bundles.
// Maybe the MiscBundle class could help here isnce the following only works on 4.x not 4.0 etc.
// + (NSArray *)allBundles;
// + (NSArray *)allFrameworks;
// Maybe we should use the MiscBundle and add these methopds on platforms where they are not supported ??
return nil;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.