Removal of the ObjC++ files and merging their differences into the ObjC versions.

This commit is contained in:
Nicholas Shanks 2010-08-31 10:01:42 +00:00
parent 8093fe18eb
commit 972ca4dde4
23 changed files with 120 additions and 1605 deletions

View File

@ -208,11 +208,21 @@
}
- (NSArray *)selectedItems;
{
NSNumber *row;
NSMutableArray *items = [NSMutableArray array];
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
NSIndexSet *indicies = [self selectedRowIndexes];
unsigned int rowIndex = [indicies firstIndex];
while (rowIndex != NSNotFound)
{
[items addObject:[self itemAtRow:rowIndex]];
rowIndex = [indicies indexGreaterThanIndex:rowIndex];
}
#else
NSNumber *row;
NSEnumerator *enumerator = [self selectedRowEnumerator];
while(row = [enumerator nextObject])
[items addObject:[self itemAtRow:[row intValue]]];
#endif
return items;
}
@end

View File

@ -31,7 +31,7 @@
/*!
@method awakeFromNib
@change 2003-10-24 NGS: moved icon caching into method called by timer (to speed up app launch time)
@updated 2003-10-24 NGS: moved icon caching into method called by timer (to speed up app launch time)
*/
- (void)awakeFromNib

View File

@ -8,8 +8,8 @@
/*!
@method controlTextDidChange:
@abstract Handles updating of the 'Create' button when valid values are present in the sheet's fields.
@change 2003-08-01 UK: Changed to use data source's resourceOfType instead of directly messing with the resource list's enumerator.
@change 2003-08-01 UK: Removed ID > 0 check -- negative IDs are allowed as well.<br/><small>Note from Nick: IIRC this was there as a workaround for another bug which prohibited negative IDs from being used. Not sure if that got fixed though :)</small>
@updated 2003-08-01 UK: Changed to use data source's resourceOfType instead of directly messing with the resource list's enumerator.
@updated 2003-08-01 UK: Removed ID > 0 check -- negative IDs are allowed as well.<br/><small>Note from Nick: IIRC this was there as a workaround for another bug which prohibited negative IDs from being used. Not sure if that got fixed though :)</small>
@description Someone changed the control ID edit field. Check whether this is a unique ID and appropriately enable the "create" button.</p><p>Check "notification" against being nil, which is how we call it when we need to explicitly update the enabled state of the "create" button.
*/
@ -32,8 +32,8 @@
/*!
@method showCreateResourceSheet:
@abstract Shows the sheet allowing the user to define the properties of a new resource.
@change 2003-08-01 UK: Made it "fake" a popup selection so type field and popup match.
@change 2003-08-01 UK: Made it suggest an unused resource ID.
@updated 2003-08-01 UK: Made it "fake" a popup selection so type field and popup match.
@updated 2003-08-01 UK: Made it suggest an unused resource ID.
*/
- (void)showCreateResourceSheet:(ResourceDocument *)sheetDoc

View File

@ -48,8 +48,6 @@
if(selectedResource)
{
NSLog(@"selected resource data: %@", [selectedResource data]);
// set UI values
[[self window] setTitle:NSLocalizedString(@"Resource Info",nil)];
[nameView setStringValue:[selectedResource name]];

View File

@ -56,7 +56,7 @@
/*!
@function compareResourcesAscending
@change 2003-10-25 NGS: now uses KVC methods to obtain the strings to compare
@updated 2003-10-25 NGS: now uses KVC methods to obtain the strings to compare
*/
int compareResourcesAscending(Resource *r1, Resource *r2, void *context)
@ -71,7 +71,7 @@ int compareResourcesAscending(Resource *r1, Resource *r2, void *context)
/*!
@function compareResourcesDescending
@change 2003-10-25 NGS: now uses KVC methods to obtain the strings to compare
@updated 2003-10-25 NGS: now uses KVC methods to obtain the strings to compare
*/
int compareResourcesDescending(Resource *r1, Resource *r2, void *context)
@ -93,13 +93,13 @@ int compareResourcesDescending(Resource *r1, Resource *r2, void *context)
/*!
@method outlineView:willDisplayCell:forTableColumn:item:
@change 2003-10-25 NGS: Moved functionality of NameFormatter into this method, removed NameFormatter class.
@change 2003-10-24 NGS: Swapped row colours so first row is white (as per 10.3), conditionalised drawing line background colours to system versions < 10.3, since in 10.3 it is handled by the nib file.
@change 2003-10-24 NGS: Added iconForResourceType method to app delegate instead of interrogating the cache here.
@updated 2003-10-25 NGS: Moved functionality of NameFormatter into this method, removed NameFormatter class.
@updated 2003-10-24 NGS: Swapped row colours so first row is white (as per 10.3), conditionalised drawing line background colours to system versions < 10.3, since in 10.3 it is handled by the nib file.
@updated 2003-10-24 NGS: Added iconForResourceType method to app delegate instead of interrogating the cache here.
@pending remove setting of the cell formatter when that capability is in interface builder
*/
- (void)outlineView:(NSOutlineView *)olView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item
- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
Resource *resource = (Resource *)item;
NSString *identifier = [tableColumn identifier];
@ -161,7 +161,7 @@ int compareResourcesDescending(Resource *r1, Resource *r2, void *context)
// draw alternating blue/white backgrounds (if pre-10.3)
if(NSAppKitVersionNumber < 700.0)
{
int row = [olView rowForItem:item];
int row = [outlineView rowForItem:item];
if(row % 2) [cell setBackgroundColor:[NSColor colorWithCalibratedRed:0.93 green:0.95 blue:1.0 alpha:1.0]];
else [cell setBackgroundColor:[NSColor whiteColor]];
[cell setDrawsBackground:YES];

View File

@ -44,7 +44,7 @@
@method +defaultRegistry
@author Uli Kusterer
@created 2003-07-31
@change 2003-10-28 NS: Changed method name from +mainRegistry (so it more closly matchs +defaultCenter) and moved global var inside method, making it a static.
@updated 2003-10-28 NGS: Changed method name from +mainRegistry (so it more closly matchs +defaultCenter) and moved global var inside method, making it a static.
@description Returns the default plugin registry of this application, instantiating it first if there is none yet. As soon as this is instantiated, the plugins are loaded.
*/
+ (RKEditorRegistry *)defaultRegistry
@ -74,7 +74,7 @@
@abstract (Re)loads our list of plugins. You can use this as an action for a menu item, if you want.
@author Uli Kusterer
@created 2003-07-31
@change 2003-10-28 NGS: Updated to look for more sophisticated RKSupportedTypes key in addition to (the now deprecated) RKEditedTypes.
@updated 2003-10-28 NGS: Updated to look for more sophisticated RKSupportedTypes key in addition to (the now deprecated) RKEditedTypes.
@pending Use NSSearchPathForDirectoriesInDomains() or equivalent to get folder paths instead of hard coding them.
@pending Currently, Cocoa classes can't be unloaded, which means we're
not leaking the NSBundles we load here. However, if this one

View File

@ -1,14 +1,14 @@
#import "RKSupportResourceRegistry.h"
#import "NGSCategories.h"
#import "../Categories/NGSCategories.h"
@implementation RKSupportResourceRegistry
+ (void)scanForSupportResources
{
// TODO: Instead of hard-coding sysPath we should use some FindFolder-like API!
#if MAC_OS_X_VERSION_10_4 <= MAC_OS_X_VERSION_MAX_ALLOWED
NSArray *dirsArray = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSAllDomainsMask, YES);
dirsArray = [dirsArray arrayByMakingObjectsPerformSelector:@selector(stringByAppendingPathComponent:) withObject:@"ResKnife/Support Resources"];
// FIXME: log content of dirsArray and merge with the following:
#endif
[RKSupportResourceRegistry scanForSupportResourcesInFolder:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Support Resources"]];
[RKSupportResourceRegistry scanForSupportResourcesInFolder:[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/ResKnife/Support Resources"]];
@ -25,7 +25,7 @@
{
// NSLog(@"Examining %@", name);
if([[name pathExtension] isEqualToString:@"rsrc"])
// FIXME: this method was deprecate in 10.4 in favour of - (id)openDocumentWithContentsOfURL:(NSURL *)absoluteURL display:(BOOL)displayDocument error:(NSError **)outError;
// FIXME: this method was deprecated in 10.4 in favour of - (id)openDocumentWithContentsOfURL:(NSURL *)absoluteURL display:(BOOL)displayDocument error:(NSError **)outError;
[[NSDocumentController sharedDocumentController] openDocumentWithContentsOfFile:[path stringByAppendingPathComponent:name] display:YES];
}
}

View File

@ -1,25 +0,0 @@
#import "RKSupportResourceRegistry.h"
@implementation RKSupportResourceRegistry
+ (void)scanForSupportResources
{
// TODO: Instead of hard-coding sysPath we should use some FindFolder-like API!
[RKSupportResourceRegistry scanForSupportResourcesInFolder:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Support Resources"]];
[RKSupportResourceRegistry scanForSupportResourcesInFolder:[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/ResKnife/Support Resources/"]];
[RKSupportResourceRegistry scanForSupportResourcesInFolder:[@"/" stringByAppendingPathComponent:@"Library/Application Support/ResKnife/Support Resources/"]];
}
+ (void)scanForSupportResourcesInFolder:(NSString *)path
{
// NSLog(@"Looking for resources in %@", path);
NSEnumerator *enumerator = [[[NSFileManager defaultManager] directoryContentsAtPath:path] objectEnumerator];
while(NSString *name = [enumerator nextObject])
{
// NSLog(@"Examining %@", name);
if([[name pathExtension] isEqualToString:@"rsrc"])
[[NSDocumentController sharedDocumentController] openDocumentWithContentsOfFile:[path stringByAppendingPathComponent:name] display:YES];
}
}
@end

View File

@ -8,7 +8,6 @@
@description The Resource class fully complies with key-value coding, with the keys @"name", @"type", @"resID", @"attributes", @"data", @"dirty" and @"representedFork" available.
*/
@class ResourceDocument;
@interface Resource : NSObject <NSCopying, NSCoding, ResKnifeResourceProtocol>
{
@private

View File

@ -90,7 +90,7 @@ NSString *RKResourcePboardType = @"RKResourcePboardType";
return [NSArray arrayWithArray:array];
}
+ (id)resourceOfType:(NSString *)typeValue withName:(NSString *)nameValue inDocument:(NSDocument *)searchDoc
+ (Resource *)resourceOfType:(NSString *)typeValue withName:(NSString *)nameValue inDocument:(NSDocument *)searchDoc
{
NSDocument *doc;
NSEnumerator *enumerator = [[[NSDocumentController sharedDocumentController] documents] objectEnumerator];
@ -106,7 +106,7 @@ NSString *RKResourcePboardType = @"RKResourcePboardType";
return nil;
}
+ (id)resourceOfType:(NSString *)typeValue andID:(NSNumber *)resIDValue inDocument:(NSDocument *)searchDoc
+ (Resource *)resourceOfType:(NSString *)typeValue andID:(NSNumber *)resIDValue inDocument:(NSDocument *)searchDoc
{
NSDocument *doc;
NSEnumerator *enumerator = [[[NSDocumentController sharedDocumentController] documents] objectEnumerator];

View File

@ -1,247 +0,0 @@
#import "ResourceDataSource.h"
#import "ResourceDocument.h"
#import "Resource.h"
#import <limits.h>
NSString *DataSourceWillAddResourceNotification = @"DataSourceWillAddResource";
NSString *DataSourceDidAddResourceNotification = @"DataSourceDidAddResource";
NSString *DataSourceWillRemoveResourceNotification = @"DataSourceWillRemoveResource";
NSString *DataSourceDidRemoveResourceNotification = @"DataSourceDidRemoveResource";
extern NSString *RKResourcePboardType;
@implementation ResourceDataSource
- (id)init
{
self = [super init];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resourceDidChange:) name:ResourceDidChangeNotification object:nil];
return self;
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
- (NSWindow *)window
{
return window;
}
- (NSArray *)resources
{
return resources;
}
- (void)setResources:(NSMutableArray *)newResources
{
id old = resources;
resources = [newResources retain];
[old release];
[outlineView reloadData];
}
- (void)addResource:(Resource *)resource
{
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:self, @"DataSource", resource, @"Resource", nil];
[[NSNotificationCenter defaultCenter] postNotificationName:DataSourceWillAddResourceNotification object:dictionary];
// it seems very inefficient to reload the entire data source when just adding/removing one item
// for large resource files, the data source gets reloaded hundreds of times upon load
[resources addObject:resource];
[outlineView reloadData];
[[NSNotificationCenter defaultCenter] postNotificationName:DataSourceDidAddResourceNotification object:dictionary];
[[document undoManager] registerUndoWithTarget:self selector:@selector(removeResource:) object:resource]; // undo action name set by calling function
}
- (void)removeResource:(Resource *)resource
{
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:self, @"DataSource", resource, @"Resource", nil];
[[NSNotificationCenter defaultCenter] postNotificationName:DataSourceWillRemoveResourceNotification object:dictionary];
// see comments in addResource: about inefficiency of reloadData
[resources removeObjectIdenticalTo:resource];
[outlineView reloadData];
[[NSNotificationCenter defaultCenter] postNotificationName:DataSourceDidRemoveResourceNotification object:dictionary];
[[document undoManager] registerUndoWithTarget:self selector:@selector(addResource:) object:resource]; // NB: I hope the undo manager retains the resource, because it just got deleted :) - undo action name set by calling function
}
- (void)resourceDidChange:(NSNotification *)notification
{
// reload the data for the changed resource
[outlineView reloadItem:[notification object]];
}
/* Data source protocol implementation */
- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item
{
#pragma unused(outlineView, item)
return [resources objectAtIndex:index];
}
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item
{
#pragma unused(outlineView, item)
return NO;
}
- (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item
{
#pragma unused(outlineView, item)
return [resources count];
}
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item
{
#pragma unused(outlineView)
return [item valueForKey:[tableColumn identifier]];
}
- (void)outlineView:(NSOutlineView *)outlineView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn byItem:(id)item
{
#pragma unused(outlineView)
NSString *identifier = [tableColumn identifier];
if([identifier isEqualToString:@"resID"])
[item setValue:[NSNumber numberWithInt:[object intValue]] forKey:identifier];
else [item setValue:object forKey:identifier];
}
#pragma mark -
/* ACCESSORS */
- (Resource *)resourceOfType:(NSString *)type andID:(NSNumber *)resID
{
Resource *resource;
NSEnumerator *enumerator = [resources objectEnumerator];
while(resource = [enumerator nextObject])
{
if(resID && [[resource resID] isEqualToNumber:resID] && type && [[resource type] isEqualToString:type])
return resource;
}
return nil;
}
- (Resource *)resourceOfType:(NSString *)type withName:(NSString *)name
{
Resource *resource;
NSEnumerator *enumerator = [resources objectEnumerator];
while(resource = [enumerator nextObject])
{
if([[resource name] isEqualToString:name] && [[resource type] isEqualToString:type])
return resource;
}
return nil;
}
- (NSArray *)allResourcesOfType:(NSString *)type
{
Resource *resource;
NSMutableArray *array = [NSMutableArray array];
NSEnumerator *enumerator = [resources objectEnumerator];
while(resource = [enumerator nextObject])
{
if([[resource type] isEqualToString:type])
[array addObject:resource];
}
return [NSArray arrayWithArray:array];
}
/*!
@method allResourceIDsOfType:
@discussion Returns an NSArray full of NSNumber* objects containing the IDs of all resources of specified type. Used by uniqueIDForType:.
@change 2003-08-01 UK Created based on allResourcesOfType:
*/
- (NSArray*)allResourceIDsOfType:(NSString *)type
{
if(!type || [type isEqualToString:@""])
return [NSArray array];
Resource *resource;
NSMutableArray *array = [NSMutableArray array];
NSEnumerator *enumerator = [resources objectEnumerator];
while(resource = [enumerator nextObject])
{
if([[resource type] isEqualToString:type])
[array addObject:[resource resID]];
}
return [NSArray arrayWithArray:array];
}
/*!
@method uniqueIDForType:
@discussion Tries to return an unused resource ID for a new resource of specified type. If all IDs are used up (can't really happen, because the resource manager can't take more than 2727 resources per file without crashing, but just in theory...), this will return 128 no matter whether it's used or not.
@change 2003-08-01 UK Created.
@change 2003-10-21 NS Changed to obtain initial ID from -[resource defaultIDForType:], so we can vary it on a pre-resource-type basis (like Resourcerer can)
*/
- (NSNumber *)uniqueIDForType:(NSString *)type
{
short theID = [[self defaultIDForType:type] shortValue];
NSArray *array = [self allResourceIDsOfType:type];
if([array count] <= USHRT_MAX)
{
while([array containsObject:[NSNumber numberWithShort:theID]])
theID++;
}
return [NSNumber numberWithShort: theID];
}
/*!
@method defaultIDForType:
@pending Method should look for resources specifying what the initial ID is for this resource type (e.g. 'vers' resources start at 0)
*/
- (NSNumber *)defaultIDForType:(NSString *)type
{
short defaultID = 128;
return [NSNumber numberWithShort:defaultID];
}
#pragma mark -
/*!
@method outlineView:writeItems:toPasteboard:
@abstract Called at the start of a drag event.
*/
- (BOOL)outlineView:(NSOutlineView *)outlineView writeItems:(NSArray *)items toPasteboard:(NSPasteboard *)pb
{
[pb declareTypes:[NSArray arrayWithObject:RKResourcePboardType] owner:self];
[pb setData:[NSArchiver archivedDataWithRootObject:items] forType:RKResourcePboardType];
return YES;
}
/*!
@method outlineView:validateDrop:proposedItem:proposedChildIndex:
@abstract Called when the user is hovering with a drop over our outline view.
*/
- (NSDragOperation)outlineView:(NSOutlineView *)olView validateDrop:(id <NSDraggingInfo>)info proposedItem:(id)item proposedChildIndex:(int)childIndex
{
if([info draggingSource] != olView)
{
[olView setDropItem:nil dropChildIndex:NSOutlineViewDropOnItemIndex];
return NSDragOperationCopy;
}
else return NSDragOperationNone;
}
/*!
@method outlineView:acceptDrop:item:childIndex:
@abstract Called when the user drops something on our outline view.
*/
- (BOOL)outlineView:(NSOutlineView *)outlineView acceptDrop:(id <NSDraggingInfo>)info item:(id)targetItem childIndex:(int)childIndex
{
NSPasteboard *pb = [info draggingPasteboard];
if([pb availableTypeFromArray:[NSArray arrayWithObject:RKResourcePboardType]])
[document pasteResources:[NSUnarchiver unarchiveObjectWithData:[pb dataForType:RKResourcePboardType]]];
return YES;
}
@end

View File

@ -8,7 +8,7 @@
#import "InfoWindowController.h"
#import "PrefsWindowController.h"
#import "CreateResourceSheetController.h"
#import "NGSCategories.h"
#import "../Categories/NGSCategories.h"
#import "../Categories/NSString-FSSpec.h"
#import "../Categories/NSOutlineView-SelectedItems.h"
@ -82,7 +82,7 @@ extern NSString *RKResourcePboardType;
{
// get selected fork from open panel, 10.3+
int row = [[openPanelDelegate forkTableView] selectedRow];
NSString *selectedFork = [(NSDictionary *)[[openPanelDelegate forks] objectAtIndex:row] valueForKey:@"forkname"];
NSString *selectedFork = [(NSDictionary *)[[openPanelDelegate forks] objectAtIndex:row] objectForKey:@"forkname"];
fork = (HFSUniStr255 *) NewPtrClear(sizeof(HFSUniStr255));
fork->length = ([selectedFork length] < 255)? [selectedFork length]:255;
if(fork->length > 0)
@ -125,13 +125,13 @@ extern NSString *RKResourcePboardType;
if(error || !fileRefNum)
{
// bug: should check fork the user selected is empty before trying data fork
NSNumber *fAlloc = [[forks firstObjectReturningValue:[NSString stringWithCharacters:fork->unicode length:fork->length] forKey:@"forkname"] valueForKey:@"forkallocation"];
NSNumber *fAlloc = [[forks firstObjectReturningValue:[NSString stringWithCharacters:fork->unicode length:fork->length] forKey:@"forkname"] objectForKey:@"forkallocation"];
if([fAlloc unsignedLongLongValue] > 0)
{
// data fork is not empty, check resource fork
error = FSGetResourceForkName(fork);
if(error) return NO;
fAlloc = [[forks firstObjectReturningValue:[NSString stringWithCharacters:fork->unicode length:fork->length] forKey:@"forkname"] valueForKey:@"forkallocation"];
fAlloc = [[forks firstObjectReturningValue:[NSString stringWithCharacters:fork->unicode length:fork->length] forKey:@"forkname"] objectForKey:@"forkallocation"];
if([fAlloc unsignedLongLongValue] > 0)
{
// resource fork is not empty either, give up (ask user for a fork?)
@ -173,7 +173,7 @@ extern NSString *RKResourcePboardType;
NSString *forkName;
NSEnumerator *forkEnumerator = [forks objectEnumerator];
NSString *selectedFork = [NSString stringWithCharacters:fork->unicode length:fork->length];
while(forkName = [[forkEnumerator nextObject] valueForKey:@"forkname"])
while(forkName = [[forkEnumerator nextObject] objectForKey:@"forkname"])
{
// check current fork is not the fork we're going to parse
if(![forkName isEqualToString:selectedFork])
@ -181,7 +181,7 @@ extern NSString *RKResourcePboardType;
}
// tidy up loose ends
if(fileRefNum) FSClose(fileRefNum);
if(fileRefNum) FSCloseFork(fileRefNum);
DisposePtr((Ptr) fileRef);
return succeeded;
}
@ -212,7 +212,7 @@ extern NSString *RKResourcePboardType;
else uniForkName.unicode[0] = 0;
// get fork length and create empty buffer, bug: only sizeof(size_t) bytes long
ByteCount forkLength = (ByteCount) [[[[(ApplicationDelegate *)[NSApp delegate] forksForFile:fileRef] firstObjectReturningValue:forkName forKey:@"forkname"] valueForKey:@"forksize"] unsignedLongValue];
ByteCount forkLength = (ByteCount) [[[[(ApplicationDelegate *)[NSApp delegate] forksForFile:fileRef] firstObjectReturningValue:forkName forKey:@"forkname"] objectForKey:@"forksize"] unsignedLongValue];
void *buffer = malloc(forkLength);
if(!buffer) return NO;
@ -251,13 +251,12 @@ extern NSString *RKResourcePboardType;
for(unsigned short i = 1; i <= Count1Types(); i++)
{
ResType resType;
Get1IndType(&resType, i);
ResType swappedType = EndianS32_NtoB(resType); // Swapped type for use as string (types are treated as numbers by the resource manager and swapped on Intel).
unsigned short n = Count1Resources(resType);
ResType resTypeCode;
Get1IndType(&resTypeCode, i);
unsigned short n = Count1Resources(resTypeCode);
for(unsigned short j = 1; j <= n; j++)
{
Handle resourceHandle = Get1IndResource(resType, j);
Handle resourceHandle = Get1IndResource(resTypeCode, j);
error = ResError();
if(error != noErr)
{
@ -268,22 +267,34 @@ extern NSString *RKResourcePboardType;
Str255 nameStr;
short resIDShort;
GetResInfo(resourceHandle, &resIDShort, &resType, nameStr);
long sizeLong = GetResourceSizeOnDisk(resourceHandle);
GetResInfo(resourceHandle, &resIDShort, &resTypeCode, nameStr);
long sizeLong = GetResourceSizeOnDisk(resourceHandle), badSize = 0;
if (sizeLong < 0 || sizeLong > 16777215) // the max size of resource manager file is ~12 MB; I am rounding up to three bytes
{
// this only happens when opening ResEdit using the x86 binary (not under Rosetta, for example)
badSize = sizeLong;
sizeLong = EndianS32_BtoL(sizeLong);
}
short attrsShort = GetResAttrs(resourceHandle);
HLockHi(resourceHandle);
#if __LITTLE_ENDIAN__
CoreEndianFlipData(kCoreEndianResourceManagerDomain, resTypeCode, resIDShort, *resourceHandle, sizeLong, true);
#endif
// cool: "The advantage of obtaining a methodÕs implementation and calling it as a function is that you can invoke the implementation multiple times within a loop, or similar C construct, without the overhead of Objective-C messaging."
// create the resource & add it to the array
ResType logicalType = EndianS32_NtoB(resTypeCode); // swapped type for use as string (types are treated as numbers by the resource manager and swapped on Intel).
NSString *name = [[NSString alloc] initWithBytes:&nameStr[1] length:nameStr[0] encoding:NSMacOSRomanStringEncoding];
NSString *resType = [[NSString alloc] initWithBytes:(char *) &swappedType length:4 encoding:NSMacOSRomanStringEncoding];
NSString *resType = [[NSString alloc] initWithBytes:(char *) &logicalType length:4 encoding:NSMacOSRomanStringEncoding];
NSNumber *resID = [NSNumber numberWithShort:resIDShort];
NSNumber *attributes = [NSNumber numberWithShort:attrsShort];
NSData *data = [NSData dataWithBytes:*resourceHandle length:sizeLong];
Resource *resource = [Resource resourceOfType:resType andID:resID withName:name andAttributes:attributes data:data];
[resource setDocumentName:[self displayName]];
[resources addObject:resource]; // array retains resource
if (badSize != 0)
NSLog(@"GetResourceSizeOnDisk() reported incorrect size for %@ resource %@ in %@: %li should be %li", resType, resID, [self displayName], badSize, sizeLong);
[name release];
[resType release];
@ -298,8 +309,8 @@ extern NSString *RKResourcePboardType;
}
/*!
@pending Uli's changed this routine - see what I had and unify the two
@pending Doesn't write correct type/creator info - always ResKnife's!
@pending Uli has changed this routine - see what I had and unify the two
@pending Doesn't write correct type/creator info - always ResKnife's!
*/
- (BOOL)writeToFile:(NSString *)fileName ofType:(NSString *)type
@ -348,7 +359,7 @@ extern NSString *RKResourcePboardType;
succeeded = [self writeResourceMap:fileRefNum];
// tidy up loose ends
if(fileRefNum) FSClose(fileRefNum);
if(fileRefNum) FSCloseFork(fileRefNum);
DisposePtr((Ptr) fileRef);
// update info window
@ -386,7 +397,7 @@ extern NSString *RKResourcePboardType;
error = FSOpenFork(fileRef, [[resource representedFork] length], (UniChar *) uniname, fsWrPerm, &forkRefNum);
if(!error && forkRefNum)
error = FSWriteFork(forkRefNum, fsFromStart, 0, [[resource data] length], [[resource data] bytes], NULL);
if(forkRefNum) FSClose(forkRefNum);
if(forkRefNum) FSCloseFork(forkRefNum);
}
DisposePtr((Ptr) fileRef);
return YES;
@ -410,32 +421,39 @@ extern NSString *RKResourcePboardType;
while(resource = [enumerator nextObject])
{
Str255 nameStr;
char resType[5]; // includes null char for getCString:
ResType resTypeCode;
char resTypeStr[5]; // includes null char for getCString:
short resIDShort;
short attrsShort;
long sizeLong;
Handle resourceHandle;
// if the resource represents another fork in the file, skip it
if([resource representedFork] != nil) continue;
sizeLong = [[resource data] length];
resIDShort = [[resource resID] shortValue];
attrsShort = [[resource attributes] shortValue];
resourceHandle = NewHandleClear([[resource data] length]);
resourceHandle = NewHandleClear(sizeLong);
// convert unicode name to pascal string
nameStr[0] = [[resource name] lengthOfBytesUsingEncoding:NSMacOSRomanStringEncoding];
BlockMoveData([[resource name] cStringUsingEncoding:NSMacOSRomanStringEncoding], &nameStr[1], nameStr[0]);
// convert type string to ResType
[[resource type] getCString:resType maxLength:4];
[[resource type] getCString:resTypeStr maxLength:4];
resTypeCode = CFSwapInt32HostToBig(*(ResType *)resTypeStr);
// convert NSData to resource handle
HLockHi(resourceHandle);
[[resource data] getBytes:*resourceHandle];
#if __LITTLE_ENDIAN__
CoreEndianFlipData(kCoreEndianResourceManagerDomain, resTypeCode, resIDShort, *resourceHandle, sizeLong, false);
#endif
HUnlock(resourceHandle);
// now that everything's converted, tell the resource manager we want to create this resource
AddResource(resourceHandle, *(ResType *)resType, resIDShort, nameStr);
AddResource(resourceHandle, resTypeCode, resIDShort, nameStr);
if(ResError() == addResFailed)
{
NSLog(@"*Saving failed*; could not add resource ID %@ of type %@ to file.", [resource resID], [resource type]);
@ -494,7 +512,6 @@ extern NSString *RKResourcePboardType;
@method exportResources:
@author Nicholas Shanks
@created 24 October 2003
@pending note that this method will cause a cascade of sheets to be displayed for each resource being exported! v.bad needs fixing
*/
- (IBAction)exportResources:(id)sender
@ -530,7 +547,7 @@ extern NSString *RKResourcePboardType;
// basic overrides for file name extensions (assume no plug-ins installed)
NSString *newExtension;
NSDictionary *adjustments = [NSDictionary dictionaryWithObjectsAndKeys: @"ttf", @"sfnt", nil];
if(newExtension = [adjustments valueForKey:extension])
if(newExtension = [adjustments objectForKey:extension])
extension = newExtension;
// ask for data
@ -560,7 +577,7 @@ extern NSString *RKResourcePboardType;
{
if(returnCode == NSOKButton)
{
NSUInteger i = 1;
unsigned int i = 1;
Resource *resource;
NSString *path, *filename, *extension;
NSDictionary *adjustments = [NSDictionary dictionaryWithObjectsAndKeys: @"ttf", @"sfnt", @"png", @"PNGf", nil];
@ -591,7 +608,7 @@ extern NSString *RKResourcePboardType;
}
else
{
NSUInteger j = 1;
unsigned int j = 1;
NSString *tempname = [filename stringByAppendingPathExtension:extension];
while ([[NSFileManager defaultManager] fileExistsAtPath:tempname])
{
@ -850,12 +867,12 @@ static NSString *RKExportItemIdentifier = @"com.nickshanks.resknife.toolbar.exp
[sheetController showCreateResourceSheet:self];
}
/*- (IBAction)showSelectTemplateSheet:(id)sender
- (IBAction)showSelectTemplateSheet:(id)sender
{
// bug: ResourceDocument allocs a sheet controller, but it's never disposed of
// SelectTemplateSheetController *sheetController = [[CreateResourceSheetController alloc] initWithWindowNibName:@"SelectTemplateSheet"];
// [sheetController showSelectTemplateSheet:self];
}*/
}
- (IBAction)openResources:(id)sender
{

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
#import "FontWindowController.h"
#import "Categories.h"
#import "NGSCategories.h"
#import <stdarg.h>
UInt32 TableChecksum(UInt32 *table, UInt32 length)

View File

@ -486,7 +486,7 @@ static NSRange draggedRange;
@method selectionRangeForProposedRange:granularity:
@abstract Puts insertion pointer between bytes during drag operation
@author Nicholas Shanks
@change 2003-11-10 NS: Changed algorithm.
@updated 2003-11-10 NGS: Changed algorithm.
*/
- (unsigned int)_insertionGlyphIndexForDrag:(id <NSDraggingInfo>)sender

View File

@ -6,16 +6,18 @@
#import <Foundation/Foundation.h>
NSString *ResourceWillChangeNotification = @"ResourceWillChange";
NSString *ResourceNameWillChangeNotification = @"ResourceNameWillChange";
NSString *ResourceTypeWillChangeNotification = @"ResourceTypeWillChange";
NSString *ResourceIDWillChangeNotification = @"ResourceIDWillChange";
NSString *ResourceAttributesWillChangeNotification = @"ResourceAttributesWillChange";
NSString *ResourceDataWillChangeNotification = @"ResourceDataWillChange";
NSString *ResourceWillChangeNotification = @"ResourceWillChangeNotification";
NSString *ResourceNameWillChangeNotification = @"ResourceNameWillChangeNotification";
NSString *ResourceTypeWillChangeNotification = @"ResourceTypeWillChangeNotification";
NSString *ResourceIDWillChangeNotification = @"ResourceIDWillChangeNotification";
NSString *ResourceAttributesWillChangeNotification = @"ResourceAttributesWillChangeNotification";
NSString *ResourceDataWillChangeNotification = @"ResourceDataWillChangeNotification";
NSString *ResourceWillBeSavedNotification = @"ResourceWillBeSavedNotification";
NSString *ResourceNameDidChangeNotification = @"ResourceNameDidChange";
NSString *ResourceTypeDidChangeNotification = @"ResourceTypeDidChange";
NSString *ResourceIDDidChangeNotification = @"ResourceIDDidChange";
NSString *ResourceAttributesDidChangeNotification = @"ResourceAttributesDidChange";
NSString *ResourceDataDidChangeNotification = @"ResourceDataDidChange";
NSString *ResourceDidChangeNotification = @"ResourceDidChange";
NSString *ResourceNameDidChangeNotification = @"ResourceNameDidChangeNotification";
NSString *ResourceTypeDidChangeNotification = @"ResourceTypeDidChangeNotification";
NSString *ResourceIDDidChangeNotification = @"ResourceIDDidChangeNotification";
NSString *ResourceAttributesDidChangeNotification = @"ResourceAttributesDidChangeNotification";
NSString *ResourceDataDidChangeNotification = @"ResourceDataDidChangeNotification";
NSString *ResourceDidChangeNotification = @"ResourceDidChangeNotification";
NSString *ResourceWasSavedNotification = @"ResourceWasSavedNotification";

View File

@ -64,6 +64,7 @@ extern NSString *ResourceTypeWillChangeNotification;
extern NSString *ResourceIDWillChangeNotification;
extern NSString *ResourceAttributesWillChangeNotification;
extern NSString *ResourceDataWillChangeNotification;
extern NSString *ResourceWillBeSavedNotification;
extern NSString *ResourceNameDidChangeNotification;
extern NSString *ResourceTypeDidChangeNotification;
@ -71,3 +72,4 @@ extern NSString *ResourceIDDidChangeNotification;
extern NSString *ResourceAttributesDidChangeNotification;
extern NSString *ResourceDataDidChangeNotification;
extern NSString *ResourceDidChangeNotification;
extern NSString *ResourceWasSavedNotification;

View File

@ -2179,6 +2179,7 @@ PBUnlockRangeSync:
return ( result );
}
#endif
/*****************************************************************************/

View File

@ -35,7 +35,7 @@ enum // boom defaults
- (void)update;
- (void)controlTextDidChange:(NSNotification *)notification;
- (IBAction)setSilent:(id)sender;
- (IBAction)toggleSilence:(id)sender;
- (IBAction)playSound:(id)sender;
@end

View File

@ -111,9 +111,11 @@
[self setDocumentEdited:[resource isDirty]];
}
- (IBAction)setSilent:(id)sender
- (IBAction)toggleSilence:(id)sender
{
silent = ![soundButton state];
[soundField setEnabled:!silent];
[playButton setEnabled:!silent];
[resource touch];
[self setDocumentEdited:YES];
}

View File

@ -82,6 +82,6 @@ ResKnife methods, functions, headers, classes, ivars and practically anything el
3) The pertinent keywords or their equivalents in the above item should retain the specified order wherever reasonably applicable (e.g. for @class and @protocol comments)
4) The value for the @created keyword should take the following form: YYYY-MM-DD
5) The value for the @change keyword should take the following form: YYYY-MM-DD Author: Description
5) The value for the @updated keyword should take the following form: YYYY-MM-DD Author: Description
where Author is an identifier for the person who made the change, not necessarilly the value in @author. Convention is that it simply contains the initials of the person.
*/

View File

@ -7,10 +7,10 @@
objects = {
/* Begin PBXBuildFile section */
0EBA8666122CF49800FEC1AC /* NGSCategories.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EBA8664122CF49800FEC1AC /* NGSCategories.h */; };
0EBA8667122CF49800FEC1AC /* NGSCategories.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EBA8665122CF49800FEC1AC /* NGSCategories.m */; };
0EF71540122BD0D0005DF94E /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0EF7153F122BD0D0005DF94E /* Localizable.strings */; };
E1193609099830D300A3A6EA /* FontDocument.nib in Resources */ = {isa = PBXBuildFile; fileRef = E1193607099830D200A3A6EA /* FontDocument.nib */; };
E119363A099833AE00A3A6EA /* Categories.h in Headers */ = {isa = PBXBuildFile; fileRef = E1193638099833AE00A3A6EA /* Categories.h */; };
E119363B099833AE00A3A6EA /* Categories.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1193639099833AE00A3A6EA /* Categories.mm */; };
E11936660998552900A3A6EA /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E11936650998552900A3A6EA /* Localizable.strings */; };
E1193683099864AD00A3A6EA /* ElementUBYT.h in Headers */ = {isa = PBXBuildFile; fileRef = E119367D099864AD00A3A6EA /* ElementUBYT.h */; };
E1193684099864AD00A3A6EA /* ElementUBYT.m in Sources */ = {isa = PBXBuildFile; fileRef = E119367E099864AD00A3A6EA /* ElementUBYT.m */; };
@ -89,8 +89,8 @@
E18BF574069FEA1300F076B8 /* OutlineViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B5882A0156D40B01000001 /* OutlineViewDelegate.m */; };
E18BF575069FEA1300F076B8 /* PrefsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B5882C0156D40B01000001 /* PrefsWindowController.m */; };
E18BF576069FEA1300F076B8 /* Resource.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B5882E0156D40B01000001 /* Resource.m */; };
E18BF577069FEA1300F076B8 /* ResourceDataSource.mm in Sources */ = {isa = PBXBuildFile; fileRef = F5B588300156D40B01000001 /* ResourceDataSource.mm */; };
E18BF578069FEA1300F076B8 /* ResourceDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = F5B588320156D40B01000001 /* ResourceDocument.mm */; };
E18BF577069FEA1300F076B8 /* ResourceDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588300156D40B01000001 /* ResourceDataSource.m */; };
E18BF578069FEA1300F076B8 /* ResourceDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588320156D40B01000001 /* ResourceDocument.m */; };
E18BF579069FEA1300F076B8 /* ResourceNameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F577A901021215C801A80001 /* ResourceNameCell.m */; };
E18BF57A069FEA1300F076B8 /* SizeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588340156D40B01000001 /* SizeFormatter.m */; };
E18BF57B069FEA1300F076B8 /* NSOutlineView-SelectedItems.m in Sources */ = {isa = PBXBuildFile; fileRef = F5D0CBD0022744C701A80001 /* NSOutlineView-SelectedItems.m */; };
@ -103,7 +103,7 @@
E18BF582069FEA1300F076B8 /* OpenPanelDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F59481B203D077DC01A8010A /* OpenPanelDelegate.m */; };
E18BF583069FEA1300F076B8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D35755A04DAEB4300B8225B /* main.m */; };
E18BF584069FEA1300F076B8 /* RKEditorRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D35755D04DAEB6200B8225B /* RKEditorRegistry.m */; };
E18BF585069FEA1300F076B8 /* RKSupportResourceRegistry.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3D53A9FE04F171DC006651FA /* RKSupportResourceRegistry.mm */; };
E18BF585069FEA1300F076B8 /* RKSupportResourceRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D53A9FE04F171DC006651FA /* RKSupportResourceRegistry.m */; };
E18BF587069FEA1300F076B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; };
E18BF588069FEA1300F076B8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; };
E18BF590069FEA1400F076B8 /* ResKnifeResourceProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F5CDEBAB01FC893201A80001 /* ResKnifeResourceProtocol.h */; };
@ -414,6 +414,8 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
0EBA8664122CF49800FEC1AC /* NGSCategories.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NGSCategories.h; sourceTree = "<group>"; };
0EBA8665122CF49800FEC1AC /* NGSCategories.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NGSCategories.m; sourceTree = "<group>"; };
3D0933A604DEFEE600DD74B1 /* Element.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Element.h; sourceTree = "<group>"; };
3D0933A704DEFEE600DD74B1 /* Element.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Element.m; sourceTree = "<group>"; };
3D0933BE04DF151C00DD74B1 /* TemplateStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TemplateStream.h; sourceTree = "<group>"; };
@ -449,10 +451,8 @@
3D50047304EF122000F3B64D /* ElementLSTC.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ElementLSTC.mm; sourceTree = "<group>"; };
3D50047404EF122000F3B64D /* ElementLSTC.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementLSTC.h; sourceTree = "<group>"; };
3D53A9FD04F171DC006651FA /* RKSupportResourceRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RKSupportResourceRegistry.h; sourceTree = "<group>"; };
3D53A9FE04F171DC006651FA /* RKSupportResourceRegistry.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RKSupportResourceRegistry.mm; sourceTree = "<group>"; };
3D53A9FE04F171DC006651FA /* RKSupportResourceRegistry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RKSupportResourceRegistry.m; sourceTree = "<group>"; };
E1193608099830D300A3A6EA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/FontDocument.nib; sourceTree = "<group>"; };
E1193638099833AE00A3A6EA /* Categories.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Categories.h; path = ../Categories.h; sourceTree = SOURCE_ROOT; };
E1193639099833AE00A3A6EA /* Categories.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = Categories.mm; path = ../Categories.mm; sourceTree = SOURCE_ROOT; };
E11936620998551200A3A6EA /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = "<group>"; };
E119367D099864AD00A3A6EA /* ElementUBYT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementUBYT.h; sourceTree = "<group>"; };
E119367E099864AD00A3A6EA /* ElementUBYT.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementUBYT.m; sourceTree = "<group>"; };
@ -597,9 +597,9 @@
F5B5882D0156D40B01000001 /* Resource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Resource.h; sourceTree = "<group>"; };
F5B5882E0156D40B01000001 /* Resource.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Resource.m; sourceTree = "<group>"; };
F5B5882F0156D40B01000001 /* ResourceDataSource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceDataSource.h; sourceTree = "<group>"; };
F5B588300156D40B01000001 /* ResourceDataSource.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceDataSource.mm; sourceTree = "<group>"; };
F5B588300156D40B01000001 /* ResourceDataSource.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ResourceDataSource.m; sourceTree = "<group>"; };
F5B588310156D40B01000001 /* ResourceDocument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceDocument.h; sourceTree = "<group>"; };
F5B588320156D40B01000001 /* ResourceDocument.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceDocument.mm; sourceTree = "<group>"; };
F5B588320156D40B01000001 /* ResourceDocument.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ResourceDocument.m; sourceTree = "<group>"; };
F5B588330156D40B01000001 /* SizeFormatter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SizeFormatter.h; sourceTree = "<group>"; };
F5B588340156D40B01000001 /* SizeFormatter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SizeFormatter.m; sourceTree = "<group>"; };
F5B588370156D40B01000001 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/AboutPanel.nib; sourceTree = "<group>"; };
@ -1007,8 +1007,8 @@
F5594EE9021F3E2301A80001 /* Categories */ = {
isa = PBXGroup;
children = (
E1193638099833AE00A3A6EA /* Categories.h */,
E1193639099833AE00A3A6EA /* Categories.mm */,
0EBA8664122CF49800FEC1AC /* NGSCategories.h */,
0EBA8665122CF49800FEC1AC /* NGSCategories.m */,
F5D0CBCF022744C701A80001 /* NSOutlineView-SelectedItems.h */,
F5D0CBD0022744C701A80001 /* NSOutlineView-SelectedItems.m */,
F59D5DE40320DFF601A8010C /* NSString-FSSpec.h */,
@ -1118,9 +1118,9 @@
F5B5882D0156D40B01000001 /* Resource.h */,
F5B5882E0156D40B01000001 /* Resource.m */,
F5B5882F0156D40B01000001 /* ResourceDataSource.h */,
F5B588300156D40B01000001 /* ResourceDataSource.mm */,
F5B588300156D40B01000001 /* ResourceDataSource.m */,
F5B588310156D40B01000001 /* ResourceDocument.h */,
F5B588320156D40B01000001 /* ResourceDocument.mm */,
F5B588320156D40B01000001 /* ResourceDocument.m */,
F577A900021215C801A80001 /* ResourceNameCell.h */,
F577A901021215C801A80001 /* ResourceNameCell.m */,
F59481AD03D0776C01A8010A /* RKDocumentController.h */,
@ -1128,7 +1128,7 @@
3D35755C04DAEB6200B8225B /* RKEditorRegistry.h */,
3D35755D04DAEB6200B8225B /* RKEditorRegistry.m */,
3D53A9FD04F171DC006651FA /* RKSupportResourceRegistry.h */,
3D53A9FE04F171DC006651FA /* RKSupportResourceRegistry.mm */,
3D53A9FE04F171DC006651FA /* RKSupportResourceRegistry.m */,
F5B588330156D40B01000001 /* SizeFormatter.h */,
F5B588340156D40B01000001 /* SizeFormatter.m */,
);
@ -1435,6 +1435,7 @@
E18BF550069FEA1300F076B8 /* OpenPanelDelegate.h in Headers */,
E18BF551069FEA1300F076B8 /* RKEditorRegistry.h in Headers */,
E18BF552069FEA1300F076B8 /* RKSupportResourceRegistry.h in Headers */,
0EBA8666122CF49800FEC1AC /* NGSCategories.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1628,7 +1629,6 @@
buildActionMask = 2147483647;
files = (
E18BF7D4069FFC7600F076B8 /* FontWindowController.h in Headers */,
E119363A099833AE00A3A6EA /* Categories.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2165,8 +2165,8 @@
E18BF574069FEA1300F076B8 /* OutlineViewDelegate.m in Sources */,
E18BF575069FEA1300F076B8 /* PrefsWindowController.m in Sources */,
E18BF576069FEA1300F076B8 /* Resource.m in Sources */,
E18BF577069FEA1300F076B8 /* ResourceDataSource.mm in Sources */,
E18BF578069FEA1300F076B8 /* ResourceDocument.mm in Sources */,
E18BF577069FEA1300F076B8 /* ResourceDataSource.m in Sources */,
E18BF578069FEA1300F076B8 /* ResourceDocument.m in Sources */,
E18BF579069FEA1300F076B8 /* ResourceNameCell.m in Sources */,
E18BF57A069FEA1300F076B8 /* SizeFormatter.m in Sources */,
E18BF57B069FEA1300F076B8 /* NSOutlineView-SelectedItems.m in Sources */,
@ -2179,7 +2179,8 @@
E18BF582069FEA1300F076B8 /* OpenPanelDelegate.m in Sources */,
E18BF583069FEA1300F076B8 /* main.m in Sources */,
E18BF584069FEA1300F076B8 /* RKEditorRegistry.m in Sources */,
E18BF585069FEA1300F076B8 /* RKSupportResourceRegistry.mm in Sources */,
E18BF585069FEA1300F076B8 /* RKSupportResourceRegistry.m in Sources */,
0EBA8667122CF49800FEC1AC /* NGSCategories.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2358,7 +2359,6 @@
files = (
E18BF7D5069FFC7600F076B8 /* FontWindowController.mm in Sources */,
E18BF8EB06A0027700F076B8 /* Notifications.m in Sources */,
E119363B099833AE00A3A6EA /* Categories.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};