From 9187840237ef37f50d8228bebfff466aa9a88ece Mon Sep 17 00:00:00 2001 From: Nicholas Shanks Date: Sun, 8 Nov 2009 14:07:22 +0000 Subject: [PATCH] Update files changed since 2008. --- Carbon/ResKnife.h | 2 +- Carbon/Resources/ResKnife.nib/classes.nib | 297 +- Carbon/Resources/ResKnife.nib/info.nib | 21 +- Carbon/Resources/ResKnife.nib/objects.xib | 168 +- Cocoa/Classes/ApplicationDelegate.m | 7 +- Cocoa/Classes/CreateResourceSheetController.m | 10 +- Cocoa/Classes/InfoWindowController.m | 6 +- Cocoa/Classes/OutlineViewDelegate.m | 10 +- Cocoa/Classes/RKEditorRegistry.m | 8 +- Cocoa/Classes/RKSupportResourceRegistry.mm | 25 + Cocoa/Classes/Resource.h | 1 + Cocoa/Classes/Resource.m | 2 +- Cocoa/Classes/ResourceDataSource.mm | 247 ++ Cocoa/Classes/ResourceDocument.mm | 1226 +++++++ Cocoa/Plug-Ins/Hex Editor/HexTextView.m | 2 +- .../Hex Editor/NSData-HexRepresentation.h | 11 + .../Hex Editor/NSData-HexRepresentation.m | 95 + Cocoa/Plug-Ins/Notifications.m | 26 +- Cocoa/Plug-Ins/ResKnifePluginProtocol.h | 112 +- Cocoa/Plug-Ins/ResKnifeResourceProtocol.h | 55 +- External/MoreFilesX/MoreFilesX.c | 3 +- External/MoreFilesX/MoreFilesX.h | 2 +- HexEditor.graffle | 537 +-- .../English.lproj/Resource Types.strings | Bin 1086 -> 1120 bytes NovaTools/NovaWindowController.m | 2 + NovaTools/Structs.h | 956 +++--- NovaTools/boom/BoomWindowController.h | 2 +- NovaTools/boom/BoomWindowController.m | 4 +- .../boom/English.lproj/boom.nib/classes.nib | 4 +- .../boom/English.lproj/boom.nib/info.nib | 16 +- .../boom/English.lproj/boom.nib/objects.nib | Bin 5278 -> 5515 bytes NovaTools/char/CharWindowController.h | 41 +- .../char/English.lproj/char.nib/classes.nib | 17 +- .../char/English.lproj/char.nib/info.nib | 43 +- .../English.lproj/char.nib/keyedobjects.nib | Bin 0 -> 28648 bytes .../desc/English.lproj/desc.nib/classes.nib | 5 +- .../desc/English.lproj/desc.nib/info.nib | 39 +- .../English.lproj/desc.nib/keyedobjects.nib | Bin 0 -> 13704 bytes .../misn/English.lproj/misn.nib/classes.nib | 18 + .../misn/English.lproj/misn.nib/info.nib | 18 + .../English.lproj/misn.nib/keyedobjects.nib | Bin 0 -> 58606 bytes NovaTools/misn/MisnWindowController.h | 7 + NovaTools/misn/MisnWindowController.m | 18 + .../ship/English.lproj/ship.nib/classes.nib | 16 + .../ship/English.lproj/ship.nib/info.nib | 16 + .../ship/English.lproj/ship.nib/objects.nib | Bin 0 -> 4175 bytes NovaTools/ship/ShipWindowController.h | 7 + NovaTools/ship/ShipWindowController.m | 18 + README.txt | 71 +- ResKnife.mcp.xml | 1 + ResKnife.xcodeproj/project.pbxproj | 2935 +++++++++-------- TODO.txt | 13 +- To Dos.rtf | 15 + 53 files changed, 4566 insertions(+), 2589 deletions(-) create mode 100644 Cocoa/Classes/RKSupportResourceRegistry.mm create mode 100644 Cocoa/Classes/ResourceDataSource.mm create mode 100644 Cocoa/Classes/ResourceDocument.mm create mode 100644 Cocoa/Plug-Ins/Hex Editor/NSData-HexRepresentation.h create mode 100644 Cocoa/Plug-Ins/Hex Editor/NSData-HexRepresentation.m create mode 100644 NovaTools/char/English.lproj/char.nib/keyedobjects.nib create mode 100644 NovaTools/desc/English.lproj/desc.nib/keyedobjects.nib create mode 100644 NovaTools/misn/English.lproj/misn.nib/classes.nib create mode 100644 NovaTools/misn/English.lproj/misn.nib/info.nib create mode 100644 NovaTools/misn/English.lproj/misn.nib/keyedobjects.nib create mode 100644 NovaTools/misn/MisnWindowController.h create mode 100644 NovaTools/misn/MisnWindowController.m create mode 100644 NovaTools/ship/English.lproj/ship.nib/classes.nib create mode 100644 NovaTools/ship/English.lproj/ship.nib/info.nib create mode 100644 NovaTools/ship/English.lproj/ship.nib/objects.nib create mode 100644 NovaTools/ship/ShipWindowController.h create mode 100644 NovaTools/ship/ShipWindowController.m create mode 100644 ResKnife.mcp.xml create mode 100644 To Dos.rtf diff --git a/Carbon/ResKnife.h b/Carbon/ResKnife.h index 7defef7..e710e14 100644 --- a/Carbon/ResKnife.h +++ b/Carbon/ResKnife.h @@ -29,7 +29,7 @@ With thanks to: For: // compile options #if TARGET_API_MAC_CARBON - #define USE_NIBS 0 // toggle this + #define USE_NIBS 1 // toggle this #else #define USE_NIBS 0 // leave this set to zero #endif diff --git a/Carbon/Resources/ResKnife.nib/classes.nib b/Carbon/Resources/ResKnife.nib/classes.nib index 1a291cd..ea58db1 100644 --- a/Carbon/Resources/ResKnife.nib/classes.nib +++ b/Carbon/Resources/ResKnife.nib/classes.nib @@ -1,295 +1,4 @@ { - IBClasses = ( - {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - {CLASS = IBCarbonBevelButton; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - {CLASS = IBCarbonButton; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - { - CLASS = IBCarbonChasingArrows; - LANGUAGE = ObjC; - OUTLETS = { - carbonBounds = id; - command = id; - controlHandle = id; - controlID = id; - controlMaximum = id; - controlMinimum = id; - controlName = id; - controlSignature = id; - controlSize = id; - controlTitle = id; - controlValue = id; - enabled = id; - hidden = id; - isEnabled = id; - isHidden = id; - objectNameForInspectorTitle = id; - targetFrameworkName = id; - targetFrameworkSupportsConnections = id; - titleRect = id; - }; - SUPERCLASS = IBCarbonControl; - }, - {CLASS = IBCarbonCheckBox; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - { - CLASS = IBCarbonClockDate; - LANGUAGE = ObjC; - OUTLETS = { - carbonBounds = id; - clockType = id; - command = id; - controlHandle = id; - controlID = id; - controlMaximum = id; - controlMinimum = id; - controlName = id; - controlSignature = id; - controlSize = id; - controlTitle = id; - controlValue = id; - enabled = id; - hidden = id; - isEditable = id; - isEnabled = id; - isHidden = id; - isLive = id; - objectNameForInspectorTitle = id; - targetFrameworkName = id; - targetFrameworkSupportsConnections = id; - titleRect = id; - }; - SUPERCLASS = IBCarbonControl; - }, - { - CLASS = IBCarbonControl; - LANGUAGE = ObjC; - OUTLETS = { - carbonBounds = id; - command = id; - controlHandle = id; - controlID = id; - controlMaximum = id; - controlMinimum = id; - controlName = id; - controlSignature = id; - controlSize = id; - controlTitle = id; - controlValue = id; - enabled = id; - hidden = id; - isEnabled = id; - isHidden = id; - objectNameForInspectorTitle = id; - targetFrameworkName = id; - targetFrameworkSupportsConnections = id; - titleRect = id; - }; - SUPERCLASS = NSObject; - }, - { - CLASS = IBCarbonDBListView; - LANGUAGE = ObjC; - SUPERCLASS = IBCarbonDataBrowser; - }, - {CLASS = IBCarbonDataBrowser; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - {CLASS = IBCarbonEditText; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - { - CLASS = IBCarbonGroupBox; - LANGUAGE = ObjC; - OUTLETS = { - autoToggle = id; - carbonBounds = id; - command = id; - contentRect = id; - controlHandle = id; - controlID = id; - controlMaximum = id; - controlMinimum = id; - controlName = id; - controlSignature = id; - controlSize = id; - controlTitle = id; - controlValue = id; - enabled = id; - groupBoxTitleType = id; - groupBoxType = id; - hasVariableWidth = id; - hidden = id; - isAutoToggle = id; - isEnabled = id; - isHidden = id; - isPrimary = id; - objectNameForInspectorTitle = id; - primary = id; - selectedItem = id; - supportsInsideOutSelection = id; - targetFrameworkName = id; - targetFrameworkSupportsConnections = id; - titleJustification = id; - titleRect = id; - variableWidth = id; - }; - SUPERCLASS = IBCarbonControl; - }, - { - CLASS = IBCarbonIcon; - LANGUAGE = ObjC; - OUTLETS = { - carbonBounds = id; - command = id; - contentResID = id; - contentType = id; - controlHandle = id; - controlID = id; - controlMaximum = id; - controlMinimum = id; - controlName = id; - controlSignature = id; - controlSize = id; - controlTitle = id; - controlValue = id; - dontTrack = id; - enabled = id; - hidden = id; - isEnabled = id; - isHidden = id; - objectNameForInspectorTitle = id; - targetFrameworkName = id; - targetFrameworkSupportsConnections = id; - titleRect = id; - }; - SUPERCLASS = IBCarbonControl; - }, - {CLASS = IBCarbonImageWell; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - { - CLASS = IBCarbonLittleArrows; - LANGUAGE = ObjC; - OUTLETS = { - carbonBounds = id; - command = id; - controlHandle = id; - controlID = id; - controlMaximum = id; - controlMinimum = id; - controlName = id; - controlSignature = id; - controlSize = id; - controlTitle = id; - controlValue = id; - enabled = id; - hidden = id; - increment = id; - initialValue = id; - isEnabled = id; - isHidden = id; - maximumValue = id; - minimumValue = id; - objectNameForInspectorTitle = id; - targetFrameworkName = id; - targetFrameworkSupportsConnections = id; - titleRect = id; - }; - SUPERCLASS = IBCarbonControl; - }, - {CLASS = IBCarbonMenu; LANGUAGE = ObjC; SUPERCLASS = NSMenu; }, - {CLASS = IBCarbonMenuItem; LANGUAGE = ObjC; SUPERCLASS = NSMenuItem; }, - {CLASS = IBCarbonPopupButton; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - {CLASS = IBCarbonRadioGroup; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - {CLASS = IBCarbonRelevanceBar; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - {CLASS = IBCarbonRootControl; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - {CLASS = IBCarbonRoundButton; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - {CLASS = IBCarbonScrollBar; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - { - CLASS = IBCarbonSeparator; - LANGUAGE = ObjC; - OUTLETS = { - carbonBounds = id; - command = id; - controlHandle = id; - controlID = id; - controlMaximum = id; - controlMinimum = id; - controlName = id; - controlSignature = id; - controlSize = id; - controlTitle = id; - controlValue = id; - enabled = id; - hidden = id; - isEnabled = id; - isHidden = id; - objectNameForInspectorTitle = id; - targetFrameworkName = id; - targetFrameworkSupportsConnections = id; - titleRect = id; - }; - SUPERCLASS = IBCarbonControl; - }, - { - CLASS = IBCarbonSlider; - LANGUAGE = ObjC; - OUTLETS = { - carbonBounds = id; - command = id; - controlHandle = id; - controlID = id; - controlMaximum = id; - controlMinimum = id; - controlName = id; - controlSignature = id; - controlSize = id; - controlTitle = id; - controlValue = id; - enabled = id; - hidden = id; - initialValue = id; - isEnabled = id; - isHidden = id; - isLive = id; - maximumValue = id; - minimumValue = id; - numTickMarks = id; - objectNameForInspectorTitle = id; - orientation = id; - targetFrameworkName = id; - targetFrameworkSupportsConnections = id; - titleRect = id; - }; - SUPERCLASS = IBCarbonControl; - }, - {CLASS = IBCarbonStaticText; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - {CLASS = IBCarbonTab; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }, - { - CLASS = IBCarbonTriangle; - LANGUAGE = ObjC; - OUTLETS = { - autoToggle = id; - carbonBounds = id; - collapsed = id; - command = id; - controlHandle = id; - controlID = id; - controlMaximum = id; - controlMinimum = id; - controlName = id; - controlSignature = id; - controlSize = id; - controlTitle = id; - controlValue = id; - drawTitle = id; - enabled = id; - hidden = id; - isCollapsed = id; - isEnabled = id; - isHidden = id; - objectNameForInspectorTitle = id; - orientation = id; - targetFrameworkName = id; - targetFrameworkSupportsConnections = id; - titleRect = id; - }; - SUPERCLASS = IBCarbonControl; - }, - {CLASS = IBCarbonUserPane; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; } - ); - IBVersion = 1; -} \ No newline at end of file +IBClasses = (); +IBVersion = 1; +} diff --git a/Carbon/Resources/ResKnife.nib/info.nib b/Carbon/Resources/ResKnife.nib/info.nib index b704a94..b1b0b5e 100644 --- a/Carbon/Resources/ResKnife.nib/info.nib +++ b/Carbon/Resources/ResKnife.nib/info.nib @@ -1,11 +1,24 @@ - - + + IBDocumentLocation 70 160 588 603 0 73 1152 775 - IBMainMenuLocation - 157 692 404 44 0 72 1024 674 + IBEditorPositions + + 29 + 126 846 404 44 0 0 1600 1002 + + IBFramework Version + 313.0 + IBOpenObjects + + 29 + 297 + 166 + + IBSystem Version + 6L60 IBUserGuides About Box diff --git a/Carbon/Resources/ResKnife.nib/objects.xib b/Carbon/Resources/ResKnife.nib/objects.xib index c8e96a6..f6c5e84 100644 --- a/Carbon/Resources/ResKnife.nib/objects.xib +++ b/Carbon/Resources/ResKnife.nib/objects.xib @@ -4,7 +4,7 @@ NSApplication - + ResKnife @@ -302,14 +302,14 @@ - 53 8 413 488 + 454 84 814 564 New Resource File 0 0 360 480 21 0 360 480 - brow + ResK FALSE @@ -346,20 +346,23 @@ - 2 5 18 240 - left - left hand side message + 4 5 15 233 + ResK + 1 + TRUE + Number of resources - 2 240 18 475 - left - right hand side message + 4 241 15 474 + ResK + 2 + TRUE + File size + -1 TRUE - 6 - 0 @@ -395,20 +398,8 @@ 8 10 248 390 - - 53 0 261 380 - - - 86 46 102 122 - Pane 1 - - - pane - 1 - 2 - - 53 0 261 380 + 38 10 248 390 100 209 116 285 @@ -419,6 +410,18 @@ 2 2 + + 38 10 248 390 + + + 86 46 102 122 + Pane 1 + + + pane + 1 + 2 + tabs 1 @@ -460,7 +463,6 @@ FALSE FALSE 11 - 0 @@ -493,7 +495,7 @@ 50 - 33 213 53 299 + 33 213 57 299 TRUE 5 1 @@ -502,7 +504,7 @@ 5 - 24 341 48 357 + 24 341 46 354 3 1 5 @@ -513,10 +515,10 @@ 1 - 156 18 161 384 + 156 18 157 384 - 9 144 142 149 + 9 144 142 145 93 17 134 139 @@ -558,6 +560,7 @@ BevelMenu + TRUE Item1 @@ -568,6 +571,7 @@ + 1 177 181 214 240 @@ -616,8 +620,6 @@ FALSE FALSE FALSE - 6 - 0 @@ -697,8 +699,6 @@ FALSE FALSE FALSE - 6 - 0 @@ -731,55 +731,68 @@ - 96 300 326 534 + 120 772 296 972 Inspector - 0 0 230 234 + 0 0 176 200 - 59 16 214 220 - - - 80 22 204 214 - 6 - - - Changed - - - Radio2 - - - Radio - - - Radio - - - Radio - - - SysHeap - - + 75 5 171 195 + + + 101 21 115 96 + TRUE + Changed + + + 121 21 135 96 + TRUE + Preload + + + 141 21 155 96 + TRUE + Protected + + + 101 104 115 179 + TRUE + Locked + + + 121 104 135 179 + TRUE + Purgable + + + 141 104 155 179 + TRUE + Sysheap - Box + TRUE + Attributes - 10 12 54 56 + 5 5 65 65 - 10 67 45 219 + 5 73 41 195 + TRUE The title of the resource goes here - 49 67 65 106 + 49 73 65 195 + TRUE Type + -2 - 50 200 66 222 + 49 73 65 195 + ResK + TRUE ID + -1 @@ -787,17 +800,21 @@ FALSE FALSE 5 - 0 - + + + + + + - + @@ -913,11 +930,16 @@ + + + + + + + + + - - - - About Box @@ -1019,5 +1041,5 @@ Preferences - 305 + 311 diff --git a/Cocoa/Classes/ApplicationDelegate.m b/Cocoa/Classes/ApplicationDelegate.m index 2b232af..2c2ba86 100644 --- a/Cocoa/Classes/ApplicationDelegate.m +++ b/Cocoa/Classes/ApplicationDelegate.m @@ -31,7 +31,7 @@ /*! @method awakeFromNib -@updated 2003-10-24 NGS: moved icon caching into method called by timer (to speed up app launch time) +@change 2003-10-24 NGS: moved icon caching into method called by timer (to speed up app launch time) */ - (void)awakeFromNib @@ -65,7 +65,6 @@ - (void)precacheIcons:(NSTimer *)timer { // pre-cache a number of common icons (ignores return value, relies on iconForResourceType: to do the actual caching) - [self iconForResourceType:@" "]; [self iconForResourceType:@"CODE"]; [self iconForResourceType:@"icns"]; [self iconForResourceType:@"PICT"]; @@ -290,8 +289,8 @@ } // if we still don't have an icon, try to get the generic one - this is what icon represented forks get -// if(!icon) icon = [NSImage imageNamed:@"NSMysteryDocument"]; - if(!icon) icon = [[NSWorkspace sharedWorkspace] iconForFileType:@"' '"]; + if(!icon) + icon = [[NSWorkspace sharedWorkspace] iconForFileType:@"????"]; // save the newly retreived icon in the cache if(icon && resourceType) diff --git a/Cocoa/Classes/CreateResourceSheetController.m b/Cocoa/Classes/CreateResourceSheetController.m index 71ff787..aeae93f 100644 --- a/Cocoa/Classes/CreateResourceSheetController.m +++ b/Cocoa/Classes/CreateResourceSheetController.m @@ -8,8 +8,8 @@ /*! @method controlTextDidChange: @abstract Handles updating of the 'Create' button when valid values are present in the sheet's fields. -@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.
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 :) +@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.
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 :) @description Someone changed the control ID edit field. Check whether this is a unique ID and appropriately enable the "create" button.

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. -@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. +@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. */ - (void)showCreateResourceSheet:(ResourceDocument *)sheetDoc @@ -77,7 +77,7 @@ /*! @method typePopupSelection: @abstract Updates the edit text field when the type pop-up selection is changed. -@updated 2003-08-01 UK: Commented, made it update state of "create" button. +@change 2003-08-01 UK: Commented, made it update state of "create" button. */ - (IBAction)typePopupSelection:(id)sender diff --git a/Cocoa/Classes/InfoWindowController.m b/Cocoa/Classes/InfoWindowController.m index f1374ff..a8ca81f 100644 --- a/Cocoa/Classes/InfoWindowController.m +++ b/Cocoa/Classes/InfoWindowController.m @@ -36,9 +36,9 @@ /*! @method updateInfoWindow -@updated 2003-11-06 NGS: Fixed creator/type handling. -@updated 2003-10-26 NGS: Now asks app delegate for icon instead of NSWorkspace. -@updated 2003-10-26 NGS: Improved document name & icon display. +@change 2003-11-06 NS: Fixed creator/type handling. +@change 2003-10-26 NS: Now asks app delegate for icon instead of NSWorkspace. +@change 2003-10-26 NS: Improved document name & icon display. */ - (void)updateInfoWindow diff --git a/Cocoa/Classes/OutlineViewDelegate.m b/Cocoa/Classes/OutlineViewDelegate.m index efae584..a1df4ac 100644 --- a/Cocoa/Classes/OutlineViewDelegate.m +++ b/Cocoa/Classes/OutlineViewDelegate.m @@ -56,7 +56,7 @@ /*! @function compareResourcesAscending -@updated 2003-10-25 NGS: now uses KVC methods to obtain the strings to compare +@change 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 -@updated 2003-10-25 NGS: now uses KVC methods to obtain the strings to compare +@change 2003-10-25 NGS: now uses KVC methods to obtain the strings to compare */ int compareResourcesDescending(Resource *r1, Resource *r2, void *context) @@ -93,9 +93,9 @@ int compareResourcesDescending(Resource *r1, Resource *r2, void *context) /*! @method outlineView:willDisplayCell:forTableColumn:item: -@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. +@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. @pending remove setting of the cell formatter when that capability is in interface builder */ diff --git a/Cocoa/Classes/RKEditorRegistry.m b/Cocoa/Classes/RKEditorRegistry.m index 52e2e75..cc2e0e3 100644 --- a/Cocoa/Classes/RKEditorRegistry.m +++ b/Cocoa/Classes/RKEditorRegistry.m @@ -44,7 +44,7 @@ @method +defaultRegistry @author Uli Kusterer @created 2003-07-31 -@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. +@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. @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 -@updated 2003-10-28 NGS: Updated to look for more sophisticated RKSupportedTypes key in addition to (the now deprecated) RKEditedTypes. +@change 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 @@ -149,8 +149,8 @@ { // get values for type entry NSString *name = [typeEntry objectForKey:@"RKTypeName"]; - NSString *role = [typeEntry objectForKey:@"RKTypeRole"]; - BOOL isDefault = [(NSString *)[typeEntry objectForKey:@"IsResKnifeDefaultForType"] boolValue]; +// NSString *role = [typeEntry objectForKey:@"RKTypeRole"]; +// BOOL isDefault = [(NSString *)[typeEntry objectForKey:@"IsResKnifeDefaultForType"] boolValue]; // register them [typeRegistry setObject:pluginClass forKey:name]; // bug: very primative, doesn't use extra data diff --git a/Cocoa/Classes/RKSupportResourceRegistry.mm b/Cocoa/Classes/RKSupportResourceRegistry.mm new file mode 100644 index 0000000..855493d --- /dev/null +++ b/Cocoa/Classes/RKSupportResourceRegistry.mm @@ -0,0 +1,25 @@ +#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 diff --git a/Cocoa/Classes/Resource.h b/Cocoa/Classes/Resource.h index 596e242..6108f19 100644 --- a/Cocoa/Classes/Resource.h +++ b/Cocoa/Classes/Resource.h @@ -8,6 +8,7 @@ @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 { @private diff --git a/Cocoa/Classes/Resource.m b/Cocoa/Classes/Resource.m index 7c41543..a311e5e 100644 --- a/Cocoa/Classes/Resource.m +++ b/Cocoa/Classes/Resource.m @@ -177,7 +177,7 @@ NSString *RKResourcePboardType = @"RKResourcePboardType"; [[NSNotificationCenter defaultCenter] postNotificationName:ResourceDidChangeNotification object:self]; } -- (NSDocument *)document +- (ResourceDocument *)document { return [Resource documentForResource:self]; } diff --git a/Cocoa/Classes/ResourceDataSource.mm b/Cocoa/Classes/ResourceDataSource.mm new file mode 100644 index 0000000..4625bc3 --- /dev/null +++ b/Cocoa/Classes/ResourceDataSource.mm @@ -0,0 +1,247 @@ +#import "ResourceDataSource.h" +#import "ResourceDocument.h" +#import "Resource.h" +#import + +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 *)outlineView validateDrop:(id )info proposedItem:(id)item proposedChildIndex:(int)childIndex +{ + if([info draggingSource] != outlineView) + { + [outlineView 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 )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 diff --git a/Cocoa/Classes/ResourceDocument.mm b/Cocoa/Classes/ResourceDocument.mm new file mode 100644 index 0000000..1a36afe --- /dev/null +++ b/Cocoa/Classes/ResourceDocument.mm @@ -0,0 +1,1226 @@ +#import "ResourceDocument.h" +#import "ResourceDataSource.h" +#import "ResourceNameCell.h" +#import "Resource.h" +#import "ApplicationDelegate.h" +#import "OpenPanelDelegate.h" +#import "OutlineViewDelegate.h" +#import "InfoWindowController.h" +#import "PrefsWindowController.h" +#import "CreateResourceSheetController.h" +#import "Categories.h" +#import "../Categories/NSString-FSSpec.h" +#import "../Categories/NSOutlineView-SelectedItems.h" + +#import "../Plug-Ins/ResKnifePluginProtocol.h" +#import "RKEditorRegistry.h" + + +NSString *DocumentInfoWillChangeNotification = @"DocumentInfoWillChangeNotification"; +NSString *DocumentInfoDidChangeNotification = @"DocumentInfoDidChangeNotification"; +extern NSString *RKResourcePboardType; + +@implementation ResourceDocument + +- (id)init +{ + self = [super init]; + if(!self) return nil; + toolbarItems = [[NSMutableDictionary alloc] init]; + resources = [[NSMutableArray alloc] init]; + fork = nil; + creator = [[@"ResK" dataUsingEncoding:NSMacOSRomanStringEncoding] retain]; // should I be calling -setCreator & -setType here instead? + type = [[@"rsrc" dataUsingEncoding:NSMacOSRomanStringEncoding] retain]; + return self; +} + +- (void)dealloc +{ + [[NSNotificationCenter defaultCenter] removeObserver:self]; + if(fork) DisposePtr((Ptr) fork); + [resources release]; + [toolbarItems release]; + [type release]; + [creator release]; + [super dealloc]; +} + +#pragma mark - +#pragma mark File Management + +/*! +@method readFromFile:ofType: +@abstract Open the specified file and read its resources. +@description Open the specified file and read its resources. This first tries to load the resources from the res fork, and failing that tries the data fork. +@author Nicholas Shanks +@change 2003-11-08 NS: Now handles opening user-selected forks. +*/ + +-(BOOL)readFromFile:(NSString *)fileName ofType:(NSString *)fileKind +{ + BOOL succeeded = NO; + OSStatus error = noErr; + FSRef *fileRef = (FSRef *) NewPtrClear(sizeof(FSRef)); + SInt16 fileRefNum = 0; + OpenPanelDelegate *openPanelDelegate = [(ApplicationDelegate *)[NSApp delegate] openPanelDelegate]; + + // bug: need to handle error better here + error = FSPathMakeRef((const UInt8 *)[fileName fileSystemRepresentation], fileRef, nil); + if(error) return NO; + + // find out which fork to parse + if(NSAppKitVersionNumber < 700.0 || ![openPanelDelegate readOpenPanelForFork]) + { + // display second dialog to ask user to select a fork, pre-10.3 or if open command did not come via the open dialog + + // bug: unimplemented - always tells app to try resource fork first + fork = (HFSUniStr255 *) NewPtrClear(sizeof(HFSUniStr255)); + error = FSGetResourceForkName(fork); + if(error) return NO; + } + else + { + // get selected fork from open panel, 10.3+ + int row = [[openPanelDelegate forkTableView] selectedRow]; + NSString *selectedFork = [(NSDictionary *)[[openPanelDelegate forks] objectAtIndex:row] valueForKey:@"forkname"]; + fork = (HFSUniStr255 *) NewPtrClear(sizeof(HFSUniStr255)); + fork->length = ([selectedFork length] < 255)? [selectedFork length]:255; + if(fork->length > 0) + [selectedFork getCharacters:fork->unicode range:NSMakeRange(0,fork->length)]; + else fork->unicode[0] = 0; + + // clear so next document doesn't get confused + [openPanelDelegate setReadOpenPanelForFork:NO]; + } + + NSArray *forks = [(ApplicationDelegate *)[NSApp delegate] forksForFile:fileRef]; + + // attempt to open fork user selected as a resource map + SetResLoad(false); // don't load "preload" resources + error = FSOpenResourceFile(fileRef, fork->length, (UniChar *) &fork->unicode, fsRdPerm, &fileRefNum); + if(error || !fileRefNum) + { + // if opening the user-selected fork fails, try to open resource fork instead + error = FSGetResourceForkName(fork); + if(error) return NO; +/* HFSUniStr255 *rfork; + error = FSGetResourceForkName(rfork); + if(error) return NO; + + bool checkFork = true; + if(FSCreateStringFromHFSUniStr) // 10.4 only + { + if(CFStringCompare(FSCreateStringFromHFSUniStr(NULL, fork), FSCreateStringFromHFSUniStr(NULL, rfork), 0) == NSOrderedSame) + checkFork = false; // skip checking resource fork if it's the one the user chose + else fork = rfork; + } + if(checkFork) +*/ error = FSOpenResourceFile(fileRef, fork->length, (UniChar *) &fork->unicode, fsRdPerm, &fileRefNum); + if(error || !fileRefNum) + { + // if opening the resource fork fails, try to open data fork instead + error = FSGetDataForkName(fork); + if(error) return NO; + error = FSOpenResourceFile(fileRef, fork->length, (UniChar *) &fork->unicode, fsRdPerm, &fileRefNum); + 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"]; + 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"]; + if([fAlloc unsignedLongLongValue] > 0) + { + // resource fork is not empty either, give up (ask user for a fork?) + NSLog(@"Could not find existing map nor create a new map in either the data or resource forks! Aborting."); + return NO; + } + } + + // note that map needs initalising on first save + _createFork = YES; + } + } + } + SetResLoad(true); // restore resource loading as soon as is possible + + if(!_createFork) + { + // disable undos during resource creation and setting of the creator and type + [[self undoManager] disableUndoRegistration]; + + // then read resources from the selected fork + succeeded = [self readResourceMap:fileRefNum]; + + // get creator and type + FSCatalogInfo info; + error = FSGetCatalogInfo(fileRef, kFSCatInfoFinderInfo, &info, nil, nil, nil); + if(!error) + { + [self setType:[NSData dataWithBytes:&((FileInfo *)info.finderInfo)->fileType length:4]]; + [self setCreator:[NSData dataWithBytes:&((FileInfo *)info.finderInfo)->fileCreator length:4]]; + } + + // restore undos + [[self undoManager] enableUndoRegistration]; + } + else succeeded = YES; + + // now read all other forks as streams + NSEnumerator *forkEnumerator = [forks objectEnumerator]; + NSString *selectedFork = [NSString stringWithCharacters:fork->unicode length:fork->length]; + while(NSString *forkName = [[forkEnumerator nextObject] valueForKey:@"forkname"]) + { + // check current fork is not the fork we're going to parse + if(![forkName isEqualToString:selectedFork]) + [self readFork:forkName asStreamFromFile:fileRef]; + } + + // tidy up loose ends + if(fileRefNum) FSClose(fileRefNum); + DisposePtr((Ptr) fileRef); + return succeeded; +} + +/*! +@method readFork:asStreamFromFile: +@author Nicholas Shanks +@change 2003-11-08 NGS: Now handles opening user-selected forks. +@description Note: there is a 2 GB limit to the size of forks that can be read in due to FSReaadFork() taking a 32-bit buffer length value. +*/ + +- (BOOL)readFork:(NSString *)forkName asStreamFromFile:(FSRef *)fileRef +{ + if(!fileRef) return NO; + + /* NTFS Note: When running SFM (Services for Macintosh) a Windows NT-based system (including 2000 & XP) serving NTFS-formatted drives stores Mac resource forks in a stream named "AFP_Resource". The finder info/attributes are stored in a stream called "AFP_AfpInfo". The default data fork stream is called "$DATA" and any of these can be accessed thus: "c:\filename.txt:forkname". Finder comments are stored in a stream called "Comments". + As a result, ResKnife prohibits creation of forks with the following names: "" (empty string, Mac data fork name), + "$DATA" (NTFS data fork name), + "AFP_Resource", "AFP_AfpInfo" and "Comments". + It is perfectly legal in ResKnife to read in forks of these names when accessing a shared NTFS drive via SMB. The server does not need to be running SFM since the file requests will appear to be coming from a PC. If the files are accessed via AFP on a server running SFM, SFM will automatically convert the files (and truncate the name to 31 chars). */ + + + // translate NSString into HFSUniStr255 -- in 10.4 this can be done with FSGetHFSUniStrFromString + HFSUniStr255 uniForkName = { 0 }; + uniForkName.length = ([forkName length] < 255)? [forkName length]:255; + if(uniForkName.length > 0) + [forkName getCharacters:uniForkName.unicode range:NSMakeRange(0, uniForkName.length)]; + 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]; + void *buffer = malloc(forkLength); + if(!buffer) return NO; + + // read fork contents into buffer, bug: assumes no errors + SInt16 forkRefNum; + FSOpenFork(fileRef, uniForkName.length, uniForkName.unicode, fsRdPerm, &forkRefNum); + FSReadFork(forkRefNum, fsFromStart, 0, forkLength, buffer, &forkLength); + FSCloseFork(forkRefNum); + + // create data + NSData *data = [NSData dataWithBytesNoCopy:buffer length:forkLength freeWhenDone:YES]; + if(!data) return NO; + + // create resource + Resource *resource = [Resource resourceOfType:@"" andID:0 withName:forkName andAttributes:0 data:data]; + if(!resource) return NO; + + // customise fork name for default data & resource forks - bug: this should really be in resource data source!! + HFSUniStr255 resourceForkName; + OSErr error = FSGetResourceForkName(&resourceForkName); + if(!error && [[resource name] isEqualToString:@""]) // bug: should use FSGetDataForkName() + [resource _setName:NSLocalizedString(@"Data Fork", nil)]; + else if(!error && [[resource name] isEqualToString:[NSString stringWithCharacters:resourceForkName.unicode length:resourceForkName.length]]) + [resource _setName:NSLocalizedString(@"Resource Fork", nil)]; + + [resource setRepresentedFork:forkName]; + [resources addObject:resource]; + return YES; +} + +-(BOOL)readResourceMap:(SInt16)fileRefNum +{ + OSStatus error = noErr; + SInt16 oldResFile = CurResFile(); + UseResFile(fileRefNum); + + 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); + for(unsigned short j = 1; j <= n; j++) + { + Handle resourceHandle = Get1IndResource(resType, j); + error = ResError(); + if(error != noErr) + { + NSLog(@"Error %d reading resource map...", error); + UseResFile(oldResFile); + return NO; + } + + Str255 nameStr; + short resIDShort; + GetResInfo(resourceHandle, &resIDShort, &resType, nameStr); + long sizeLong = GetResourceSizeOnDisk(resourceHandle); + short attrsShort = GetResAttrs(resourceHandle); + HLockHi(resourceHandle); + + // 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 + NSString *name = [[NSString alloc] initWithBytes:&nameStr[1] length:nameStr[0] encoding:NSMacOSRomanStringEncoding]; + NSString *type = [[NSString alloc] initWithBytes:(char *) &swappedType 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:type andID:resID withName:name andAttributes:attributes data:data]; + [resources addObject:resource]; // array retains resource + [name release]; + [type release]; + + HUnlock(resourceHandle); + ReleaseResource(resourceHandle); + } + } + + // save resource map and clean up + UseResFile(oldResFile); + return YES; +} + +/*! +@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! +*/ + +- (BOOL)writeToFile:(NSString *)fileName ofType:(NSString *)type +{ + OSStatus error = noErr; + SInt16 fileRefNum = 0; + FSRef *parentRef = (FSRef *) NewPtrClear(sizeof(FSRef)); + FSRef *fileRef = (FSRef *) NewPtrClear(sizeof(FSRef)); + + // create and open file for writing + // bug: doesn't set the cat info to the same as the old file + unichar *uniname = (unichar *) NewPtrClear(sizeof(unichar) *256); + [[fileName lastPathComponent] getCharacters:uniname]; + error = FSPathMakeRef((const UInt8 *)[[fileName stringByDeletingLastPathComponent] UTF8String], parentRef, nil); + if(fork) + error = FSCreateResourceFile(parentRef, [[fileName lastPathComponent] length], (UniChar *) uniname, kFSCatInfoNone, NULL, fork->length, (UniChar *) &fork->unicode, fileRef, NULL); + else error = FSCreateResourceFile(parentRef, [[fileName lastPathComponent] length], (UniChar *) uniname, kFSCatInfoNone, NULL, 0, NULL, fileRef, NULL); + + // write any data streams to file + BOOL succeeded = [self writeForkStreamsToFile:fileName]; +// FSRef *fileRef = [fileName createFSRef]; + +/* error = FSPathMakeRef((const UInt8 *)[fileName UTF8String], fileRef, nil); + if(_createFork) + { + error = FSCreateResourceFork(fileRef, fork->length, (UniChar *) &fork->unicode, 0); + _createFork = NO; + } +*/ + if(!error) + { + // set creator & type + // bug: due to a bug in AppKit, the temporary file that we are writing to (in /var/tmp, managed by NSDocument) does not get it's creator code copied over to the new document (it sets the new document's to nil). this timer sets the creator code after we have returned to the main loop and the buggy Apple code has been bypassed. + [NSTimer scheduledTimerWithTimeInterval:0.0 target:self selector:@selector(setTypeCreatorAfterSave:) userInfo:nil repeats:NO]; + + // open fork as resource map + if(fork) + error = FSOpenResourceFile(fileRef, fork->length, (UniChar *) &fork->unicode, fsWrPerm, &fileRefNum); + else error = FSOpenResourceFile(fileRef, 0, NULL, fsWrPerm, &fileRefNum); + } +// else NSLog(@"error creating resource fork. (error=%d, spec=%d, ref=%d, parent=%d)", error, fileSpec, fileRef, parentRef); + else NSLog(@"error creating resource fork. (error=%d, ref=%d)", error, fileRef); + + // write resource array to file + if(fileRefNum && !error) + succeeded = [self writeResourceMap:fileRefNum]; + + // tidy up loose ends + if(fileRefNum) FSClose(fileRefNum); + DisposePtr((Ptr) fileRef); + + // update info window + [[InfoWindowController sharedInfoWindowController] updateInfoWindow]; + + return succeeded; +} + +- (BOOL)writeForkStreamsToFile:(NSString *)fileName +{ + // try and get an FSRef + OSStatus error; + FSRef *fileRef = [fileName createFSRef], *parentRef = nil; + if(!fileRef) + { + parentRef = (FSRef *) NewPtrClear(sizeof(FSRef)); + fileRef = (FSRef *) NewPtrClear(sizeof(FSRef)); + unichar *uniname = (unichar *) NewPtrClear(sizeof(unichar) *256); + [[fileName lastPathComponent] getCharacters:uniname]; + error = FSPathMakeRef((const UInt8 *)[[fileName stringByDeletingLastPathComponent] UTF8String], parentRef, nil); + if(error) return NO; + error = FSCreateFileUnicode(parentRef, 0, NULL, kFSCatInfoNone, NULL, fileRef, NULL); + if(error || !fileRef) return NO; + } + + NSEnumerator *enumerator = [resources objectEnumerator]; + while(Resource *resource = [enumerator nextObject]) + { + // if the resource object represents an actual resource, skip it + if([resource representedFork] == nil) continue; + unichar *uniname = (unichar *) NewPtrClear(sizeof(unichar) *256); + [[resource representedFork] getCharacters:uniname]; + SInt16 forkRefNum = 0; + 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); + } + DisposePtr((Ptr) fileRef); + return YES; +} + +/*! +@method writeResourceMap: +@abstract Writes all resources (except the ones representing other forks of the file) to the specified resource file. +*/ + +- (BOOL)writeResourceMap:(SInt16)fileRefNum +{ + // make the resource file current + OSStatus error = noErr; + SInt16 oldResFile = CurResFile(); + UseResFile(fileRefNum); + + // loop over all our resources + NSEnumerator *enumerator = [resources objectEnumerator]; + while(Resource *resource = [enumerator nextObject]) + { + Str255 nameStr; + char resType[5]; // includes null char for getCString: + short resIDShort; + short attrsShort; + Handle resourceHandle; + + // if the resource represents another fork in the file, skip it + if([resource representedFork] != nil) continue; + + resIDShort = [[resource resID] shortValue]; + attrsShort = [[resource attributes] shortValue]; + resourceHandle = NewHandleClear([[resource data] length]); + + // 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]; + + // convert NSData to resource handle + HLockHi(resourceHandle); + [[resource data] getBytes:*resourceHandle]; + HUnlock(resourceHandle); + + // now that everything's converted, tell the resource manager we want to create this resource + AddResource(resourceHandle, *(ResType *)resType, resIDShort, nameStr); + if(ResError() == addResFailed) + { + NSLog(@"*Saving failed*; could not add resource ID %@ of type %@ to file.", [resource resID], [resource type]); + DisposeHandle(resourceHandle); + error = addResFailed; + } + else + { +// NSLog(@"Added resource ID %@ of type %@ to file.", [resource resID], [resource type]); + SetResAttrs(resourceHandle, attrsShort); + ChangedResource(resourceHandle); + // the resourceHandle memory is disposed of when calling CloseResFile() for the file to which the resource has been added + } + } + + // update the file on disk + UpdateResFile(fileRefNum); + + // restore original resource file + UseResFile(oldResFile); + return error? NO:YES; +} + +- (void)setTypeCreatorAfterSave:(id)userInfo +{ + FInfo finderInfo; + FSRef *fileRef = (FSRef *) NewPtrClear(sizeof(FSRef)); + FSSpec *fileSpec = (FSSpec *) NewPtrClear(sizeof(FSSpec)); + OSStatus error = FSPathMakeRef((const UInt8 *)[[self fileName] UTF8String], fileRef, nil); + if(!error) + { + error = FSGetCatalogInfo(fileRef, kFSCatInfoNone, NULL, NULL, fileSpec, NULL); + if(!error) + { + error = FSpGetFInfo(fileSpec, &finderInfo); + if(!error) + { + [[self type] getBytes:&finderInfo.fdType length:4]; + [[self creator] getBytes:&finderInfo.fdCreator length:4]; +// NSLog(@"setting finder info to type: %X; creator: %X", finderInfo.fdType, finderInfo.fdCreator); + error = FSpSetFInfo(fileSpec, &finderInfo); + FSpGetFInfo(fileSpec, &finderInfo); +// NSLog(@"finder info got set to type: %X; creator: %X", finderInfo.fdType, finderInfo.fdCreator); + } + else NSLog(@"error getting Finder info. (error=%d, spec=%d, ref=%d)", error, fileSpec, fileRef); + } + else NSLog(@"error converting fsref to fsspec. (error=%d, spec=%d, ref=%d)", error, fileSpec, fileRef); + } + else NSLog(@"error making fsref from file path. (error=%d, ref=%d, path=%@)", error, fileRef, [self fileName]); +} + +#pragma mark - +#pragma mark Export to File + +/*! +@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 +{ + Resource *current; + NSEnumerator *enumerator = [[outlineView selectedItems] objectEnumerator]; + while(current = [enumerator nextObject]) + { + [self exportResource:current]; + } +} + +/*! +@method exportResource: +@author Uli Kusterer +@change 2003-10-24 NGS: moved IBAction target to exportResources: above, renamed this method +*/ + +#warning Note to Uli: how about changing the selector that the plug should implement to -(BOOL)dataForFileExport:(NSData **)fileData ofType:(NSString **)fileType. This is basically a concatenation of the two methods you came up with, but can allow the host app to specify a preferred file type (e.g. EPS) to a plug (say the PICT plug) and if the plug can't return data in that format, that's OK, it just returns the fileType of the associated data anyway. I would also recommend adding a plug method called something like availableTypesForFileExport: which returns a dictionary of file extensions and human-readable names (names should be overridden by system default names for that extension if present) that the plug can export data into, useful for say populating a pop-up menu in the export dialog. + +- (void)exportResource:(Resource *)resource +{ + Class editorClass = [[RKEditorRegistry defaultRegistry] editorForType:[resource type]]; + NSData *exportData = [resource data]; + NSString *extension = [resource type]; + NSSavePanel *panel; + NSString *filename; + + if([editorClass respondsToSelector:@selector(dataForFileExport:)]) + exportData = [editorClass dataForFileExport:resource]; + + if([editorClass respondsToSelector:@selector(filenameExtensionForFileExport:)]) + extension = [editorClass filenameExtensionForFileExport:resource]; + + panel = [NSSavePanel savePanel]; + filename = [[resource name] stringByAppendingFormat:@".%@", extension]; + [panel beginSheetForDirectory:nil file:filename modalForWindow:mainWindow modalDelegate:self didEndSelector:@selector(exportPanelDidEnd:returnCode:contextInfo:) contextInfo:[exportData retain]]; +} + +- (void)exportPanelDidEnd:(NSSavePanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo +{ + NSData *data = (NSData *) contextInfo; + [data autorelease]; + + if(returnCode == NSOKButton) + [data writeToFile:[sheet filename] atomically:YES]; +} + +#pragma mark - +#pragma mark Window Management + +- (NSString *)windowNibName +{ + return @"ResourceDocument"; +} + +/* This is not used, just here for reference in case I need it in the future + +- (void)makeWindowControllers +{ + ResourceWindowController *resourceController = [[ResourceWindowController allocWithZone:[self zone]] initWithWindowNibName:@"ResourceDocument"]; + [self addWindowController:resourceController]; +}*/ + +- (void)windowControllerDidLoadNib:(NSWindowController *)controller +{ + [super windowControllerDidLoadNib:controller]; + [self setupToolbar:controller]; + + { // set up first column in outline view to display images as well as text + ResourceNameCell *resourceNameCell = [[[ResourceNameCell alloc] init] autorelease]; + [resourceNameCell setEditable:YES]; + [[outlineView tableColumnWithIdentifier:@"name"] setDataCell:resourceNameCell]; +// NSLog(@"Changed data cell"); + } + + // set outline view's inter-cell spacing to zero to avoid getting gaps between blue bits + [outlineView setIntercellSpacing:NSMakeSize(0,0)]; + [outlineView setTarget:self]; + [outlineView setDoubleAction:@selector(openResources:)]; + [outlineView setVerticalMotionCanBeginDrag:YES]; + [outlineView registerForDraggedTypes:[NSArray arrayWithObjects:RKResourcePboardType, NSStringPboardType, NSFilenamesPboardType, nil]]; + + // register for resource will change notifications (for undo management) + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resourceNameWillChange:) name:ResourceNameWillChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resourceIDWillChange:) name:ResourceIDWillChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resourceTypeWillChange:) name:ResourceTypeWillChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resourceAttributesWillChange:) name:ResourceAttributesWillChangeNotification object:nil]; + +// [[controller window] setResizeIncrements:NSMakeSize(1,18)]; + [dataSource setResources:resources]; +} + +- (void)printShowingPrintPanel:(BOOL)flag +{ + NSPrintOperation *printOperation = [NSPrintOperation printOperationWithView:[mainWindow contentView]]; + [printOperation runOperationModalForWindow:mainWindow delegate:self didRunSelector:@selector(printOperationDidRun:success:contextInfo:) contextInfo:nil]; +} + +- (void)printOperationDidRun:(NSPrintOperation *)printOperation success:(BOOL)success contextInfo:(void *)contextInfo +{ + if(!success) NSLog(@"Printing Failed!"); +} + +- (BOOL)keepBackupFile +{ + return [[NSUserDefaults standardUserDefaults] boolForKey:@"PreserveBackups"]; +} + +- (BOOL)validateMenuItem:(NSMenuItem *)item +{ + int selectedRows = [outlineView numberOfSelectedRows]; + Resource *resource = (Resource *) [outlineView selectedItem]; + + // file menu + if([item action] == @selector(saveDocument:)) return [self isDocumentEdited]; + + // edit menu + else if([item action] == @selector(clear:)) return selectedRows > 0; + else if([item action] == @selector(selectAll:)) return [outlineView numberOfRows] > 0; + else if([item action] == @selector(deselectAll:)) return selectedRows > 0; + + // resource menu + else if([item action] == @selector(openResources:)) return selectedRows > 0; + else if([item action] == @selector(openResourcesInTemplate:)) return selectedRows > 0; + else if([item action] == @selector(openResourcesWithOtherTemplate:)) return selectedRows > 0; + else if([item action] == @selector(openResourcesAsHex:)) return selectedRows > 0; + else if([item action] == @selector(exportResourceToImageFile:)) + { + if(selectedRows < 1) return NO; + Class editorClass = [[RKEditorRegistry defaultRegistry] editorForType:[resource type]]; + return [editorClass respondsToSelector:@selector(imageForImageFileExport:)]; + } + else if([item action] == @selector(playSound:)) return selectedRows == 1 && [[resource type] isEqualToString:@"snd "]; + else if([item action] == @selector(revertResourceToSaved:)) return selectedRows == 1 && [resource isDirty]; + else return [super validateMenuItem:item]; +} + +#pragma mark - +#pragma mark Toolbar Management + +static NSString *RKToolbarIdentifier = @"com.nickshanks.resknife.toolbar"; +static NSString *RKCreateItemIdentifier = @"com.nickshanks.resknife.toolbar.create"; +static NSString *RKDeleteItemIdentifier = @"com.nickshanks.resknife.toolbar.delete"; +static NSString *RKEditItemIdentifier = @"com.nickshanks.resknife.toolbar.edit"; +static NSString *RKEditHexItemIdentifier = @"com.nickshanks.resknife.toolbar.edithex"; +static NSString *RKSaveItemIdentifier = @"com.nickshanks.resknife.toolbar.save"; +static NSString *RKShowInfoItemIdentifier = @"com.nickshanks.resknife.toolbar.showinfo"; +static NSString *RKExportItemIdentifier = @"com.nickshanks.resknife.toolbar.export"; + +- (void)setupToolbar:(NSWindowController *)windowController +{ + /* This routine should become invalid once toolbars are integrated into nib files */ + + NSToolbarItem *item; + [toolbarItems removeAllObjects]; // just in case this method is called more than once per document (which it shouldn't be!) + + item = [[NSToolbarItem alloc] initWithItemIdentifier:RKCreateItemIdentifier]; + [item autorelease]; + [item setLabel:NSLocalizedString(@"Create", nil)]; + [item setPaletteLabel:NSLocalizedString(@"Create", nil)]; + [item setToolTip:NSLocalizedString(@"Create New Resource", nil)]; + [item setImage:[NSImage imageNamed:@"Create"]]; + [item setTarget:self]; + [item setAction:@selector(showCreateResourceSheet:)]; + [toolbarItems setObject:item forKey:RKCreateItemIdentifier]; + + item = [[NSToolbarItem alloc] initWithItemIdentifier:RKDeleteItemIdentifier]; + [item autorelease]; + [item setLabel:NSLocalizedString(@"Delete", nil)]; + [item setPaletteLabel:NSLocalizedString(@"Delete", nil)]; + [item setToolTip:NSLocalizedString(@"Delete Selected Resource", nil)]; + [item setImage:[NSImage imageNamed:@"Delete"]]; + [item setTarget:self]; + [item setAction:@selector(clear:)]; + [toolbarItems setObject:item forKey:RKDeleteItemIdentifier]; + + item = [[NSToolbarItem alloc] initWithItemIdentifier:RKEditItemIdentifier]; + [item autorelease]; + [item setLabel:NSLocalizedString(@"Edit", nil)]; + [item setPaletteLabel:NSLocalizedString(@"Edit", nil)]; + [item setToolTip:NSLocalizedString(@"Edit Resource In Default Editor", nil)]; + [item setImage:[NSImage imageNamed:@"Edit"]]; + [item setTarget:self]; + [item setAction:@selector(openResources:)]; + [toolbarItems setObject:item forKey:RKEditItemIdentifier]; + + item = [[NSToolbarItem alloc] initWithItemIdentifier:RKEditHexItemIdentifier]; + [item autorelease]; + [item setLabel:NSLocalizedString(@"Edit Hex", nil)]; + [item setPaletteLabel:NSLocalizedString(@"Edit Hex", nil)]; + [item setToolTip:NSLocalizedString(@"Edit Resource As Hexadecimal", nil)]; + [item setImage:[NSImage imageNamed:@"Edit Hex"]]; + [item setTarget:self]; + [item setAction:@selector(openResourcesAsHex:)]; + [toolbarItems setObject:item forKey:RKEditHexItemIdentifier]; + + item = [[NSToolbarItem alloc] initWithItemIdentifier:RKSaveItemIdentifier]; + [item autorelease]; + [item setLabel:NSLocalizedString(@"Save", nil)]; + [item setPaletteLabel:NSLocalizedString(@"Save", nil)]; + [item setToolTip:[NSString stringWithFormat:NSLocalizedString(@"Save To %@ Fork", nil), !fork? NSLocalizedString(@"Data", nil) : NSLocalizedString(@"Resource", nil)]]; + [item setImage:[NSImage imageNamed:@"Save"]]; + [item setTarget:self]; + [item setAction:@selector(saveDocument:)]; + [toolbarItems setObject:item forKey:RKSaveItemIdentifier]; + + item = [[NSToolbarItem alloc] initWithItemIdentifier:RKShowInfoItemIdentifier]; + [item autorelease]; + [item setLabel:NSLocalizedString(@"Show Info", nil)]; + [item setPaletteLabel:NSLocalizedString(@"Show Info", nil)]; + [item setToolTip:NSLocalizedString(@"Show Resource Information Window", nil)]; + [item setImage:[NSImage imageNamed:@"Show Info"]]; + [item setTarget:[NSApp delegate]]; + [item setAction:@selector(showInfo:)]; + [toolbarItems setObject:item forKey:RKShowInfoItemIdentifier]; + + item = [[NSToolbarItem alloc] initWithItemIdentifier:RKExportItemIdentifier]; + [item autorelease]; + [item setLabel:NSLocalizedString(@"Export Data", nil)]; + [item setPaletteLabel:NSLocalizedString(@"Export Resource Data", nil)]; + [item setToolTip:NSLocalizedString(@"Export the resource's data to a file", nil)]; + [item setImage:[NSImage imageNamed:@"Export"]]; + [item setTarget:self]; + [item setAction:@selector(exportResources:)]; + [toolbarItems setObject:item forKey:RKExportItemIdentifier]; + + if([windowController window] == mainWindow) + { + NSToolbar *toolbar = [[[NSToolbar alloc] initWithIdentifier:RKToolbarIdentifier] autorelease]; + + // set toolbar properties + [toolbar setVisible:YES]; + [toolbar setAutosavesConfiguration:YES]; + [toolbar setAllowsUserCustomization:YES]; + [toolbar setDisplayMode:NSToolbarDisplayModeDefault]; + + // attach toolbar to window + [toolbar setDelegate:self]; + [mainWindow setToolbar:toolbar]; + } +} + +- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag +{ + return [toolbarItems objectForKey:itemIdentifier]; +} + +- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar +{ + return [NSArray arrayWithObjects:RKCreateItemIdentifier, RKShowInfoItemIdentifier, RKDeleteItemIdentifier, NSToolbarSeparatorItemIdentifier, RKEditItemIdentifier, RKEditHexItemIdentifier, NSToolbarSeparatorItemIdentifier, RKSaveItemIdentifier, NSToolbarPrintItemIdentifier, NSToolbarFlexibleSpaceItemIdentifier, NSToolbarCustomizeToolbarItemIdentifier, nil]; +} + +- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar *)toolbar +{ + return [NSArray arrayWithObjects:RKCreateItemIdentifier, RKDeleteItemIdentifier, RKEditItemIdentifier, RKEditHexItemIdentifier, RKSaveItemIdentifier, RKExportItemIdentifier, RKShowInfoItemIdentifier, NSToolbarPrintItemIdentifier, NSToolbarCustomizeToolbarItemIdentifier, NSToolbarFlexibleSpaceItemIdentifier, NSToolbarSpaceItemIdentifier, NSToolbarSeparatorItemIdentifier, nil]; +} + +- (BOOL)validateToolbarItem:(NSToolbarItem *)item +{ + BOOL valid = NO; + int selectedRows = [outlineView numberOfSelectedRows]; + NSString *identifier = [item itemIdentifier]; + + if([identifier isEqualToString:RKCreateItemIdentifier]) valid = YES; + else if([identifier isEqualToString:RKDeleteItemIdentifier]) valid = selectedRows > 0; + else if([identifier isEqualToString:RKEditItemIdentifier]) valid = selectedRows > 0; + else if([identifier isEqualToString:RKEditHexItemIdentifier]) valid = selectedRows > 0; + else if([identifier isEqualToString:RKExportItemIdentifier]) valid = selectedRows > 0; + else if([identifier isEqualToString:RKSaveItemIdentifier]) valid = [self isDocumentEdited]; + else if([identifier isEqualToString:NSToolbarPrintItemIdentifier]) valid = YES; + + return valid; +} + +#pragma mark - +#pragma mark Document Management + +- (IBAction)showCreateResourceSheet:(id)sender +{ + // bug: ResourceDocument allocs a sheet controller, but it's never disposed of + CreateResourceSheetController *sheetController = [[CreateResourceSheetController alloc] initWithWindowNibName:@"CreateResourceSheet"]; + [sheetController showCreateResourceSheet:self]; +} + +- (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 +{ + // ignore double-clicks in table header + if(sender == outlineView && [outlineView clickedRow] == -1) + return; + + Resource *resource; + NSArray *selected = [outlineView selectedItems]; + NSEnumerator *enumerator = [selected objectEnumerator]; + while(resource = [enumerator nextObject]) + [self openResourceUsingEditor:resource]; +} + +- (IBAction)openResourcesInTemplate:(id)sender +{ + // opens the resource in its default template + Resource *resource; + NSArray *selected = [outlineView selectedItems]; + NSEnumerator *enumerator = [selected objectEnumerator]; + while(resource = [enumerator nextObject]) + [self openResource:resource usingTemplate:[resource type]]; +} + +- (IBAction)openResourcesAsHex:(id)sender +{ + Resource *resource; + NSArray *selected = [outlineView selectedItems]; + NSEnumerator *enumerator = [selected objectEnumerator]; + while(resource = [enumerator nextObject]) + [self openResourceAsHex:resource]; +} + + +/* ----------------------------------------------------------------------------- + openResourceUsingEditor: + Open an editor for the specified Resource instance. This looks up + the editor to use in the plugin registry and then instantiates an + editor object, handing it the resource. If there is no editor for this + type registered, it falls back to the template editor, which in turn + uses the hex editor as a fallback. + + REVISIONS: + 2003-07-31 UK Changed to use plugin registry instead of file name. + -------------------------------------------------------------------------- */ + +/* Method name should be changed to: -(void)openResource:(Resource *)resource usingEditor:(Class)overrideEditor */ + +- (void)openResourceUsingEditor:(Resource *)resource +{ + Class editorClass = [[RKEditorRegistry defaultRegistry] editorForType:[resource type]]; + + // open the resources, passing in the template to use + if(editorClass) + { + // bug: I alloc a plug instance here, but have no idea where I should dealloc it, perhaps the plug ought to call [self autorelease] when it's last window is closed? + // update: doug says window controllers automatically release themselves when their window is closed. All default plugs have a window controller as their principal class, but 3rd party ones might not + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resourceDataDidChange:) name:ResourceDataDidChangeNotification object:resource]; + id plug = [(id )[editorClass alloc] initWithResource:resource]; + if(plug) return; + } + + // if no editor exists, or the editor is broken, open using template + [self openResource:resource usingTemplate:[resource type]]; +} + + +/* ----------------------------------------------------------------------------- + openResource:usingTemplate: + Open a template editor for the specified Resource instance. This looks + up the template editor in the plugin registry and then instantiates an + editor object, handing it the resource and the template resource to use. + If there is no template editor registered, or there is no template for + this resource type, it falls back to the hex editor. + + REVISIONS: + 2003-07-31 UK Changed to use plugin registry instead of file name. + -------------------------------------------------------------------------- */ + +- (void)openResource:(Resource *)resource usingTemplate:(NSString *)templateName +{ + // opens resource in template using TMPL resource with name templateName + Class editorClass = [[RKEditorRegistry defaultRegistry] editorForType:@"Template Editor"]; + + // TODO: this checks EVERY DOCUMENT for template resources (might not be desired) + // TODO: it doesn't, however, check the application's resource map for a matching template! + Resource *tmpl = [Resource resourceOfType:@"TMPL" withName:[resource type] inDocument:nil]; + + // open the resources, passing in the template to use + if(tmpl && editorClass) + { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resourceDataDidChange:) name:ResourceDataDidChangeNotification object:resource]; + id plug = [(id )[editorClass alloc] initWithResources:resource, tmpl, nil]; + if(plug) return; + } + + // if no template exists, or template editor is broken, open as hex + [self openResourceAsHex:resource]; +} + +/*! +@method openResourceAsHex: +@author Nicholas Shanks +@created 2001 +@change 2003-07-31 UK: Changed to use plugin registry instead of file name. +@description Open a hex editor for the specified Resource instance. This looks up the hexadecimal editor in the plugin registry and then instantiates an editor object, handing it the resource. +@param resource Resource to edit +*/ + +- (void)openResourceAsHex:(Resource *)resource +{ + Class editorClass = [[RKEditorRegistry defaultRegistry] editorForType: @"Hexadecimal Editor"]; + // bug: I alloc a plug instance here, but have no idea where I should dealloc it, perhaps the plug ought to call [self autorelease] when it's last window is closed? + // update: doug says window controllers automatically release themselves when their window is closed. + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resourceDataDidChange:) name:ResourceDataDidChangeNotification object:resource]; + NSWindowController *plugController = [(id )[editorClass alloc] initWithResource:resource]; +#pragma unused(plugController) +} + +/*! +@method playSound: +@abstract Plays the selected carbon 'snd ' resource. +@author Nicholas Shanks +@created 2001 +@change 2003-10-22 NS: Moved playing into seperate thread to avoid locking up main thread. +@pending should really be moved to a 'snd ' editor, but first we'd need to extend the plugin protocol to call the class so it can add such menu items. Of course, we could just make the 'snd ' editor have a button in its window that plays the sound. +@description This method is called from a menu item which is validated against there being only one selected resource (of type 'snd '), so shouldn't have to deal with playing multiple sounds, though this may of course change in future. +@param sender ignored +*/ + +- (IBAction)playSound:(id)sender +{ + // bug: can only cope with one selected item + NSData *data = [(Resource *)[outlineView itemAtRow:[outlineView selectedRow]] data]; + if(data && [data length] != 0) + { + [NSThread detachNewThreadSelector:@selector(playSoundThreadController:) toTarget:self withObject:data]; + } + else NSBeep(); +} + +/*! +@method playSoundThreadController: +@abstract Plays a carbon 'snd ' resource. +@author Nicholas Shanks +@created 2003-10-22 +@pending should really be moved to a 'snd ' editor, but first we'd need to extend the plugin protocol to call the class so it can add such menu items. Of course, we could just make the 'snd ' editor have a button in its window that plays the sound. +@description This method was added to prevent having to use AsynchSoundHelper to play them asynchronously in the main thread and all the associated idle checking, which since we have no event loop, would have to have been called from a timer. I'm not sure if the autorelease pool is necessary, as no cocoa objects are created, but an NSData is passed in and messages sent to it, and NSBeep() might need one. +@param data An NSData object containing the snd resource data to be played. +*/ + +- (void)playSoundThreadController:(NSData *)data +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + if(data && [data length] != 0) + { + // plays sound synchronously, thread exits when sound is done playing + SndListPtr sndPtr = (SndListPtr) [data bytes]; + SndPlay(nil, &sndPtr, false); + } + else NSBeep(); + [pool release]; +} + +/*! +@method sound:didFinishPlaying: +@abstract Called frequently when playing a sound via NSSound. Unused, here for reference and possible future use. +@author Nicholas Shanks +@pending should really be moved to a 'snd ' editor, but first we'd need to extend the plugin protocol to call the class so it can add such menu items. Of course, we could just make the 'snd ' editor have a button in its window that plays the sound. +@param sound The NSSound that is playing. +@param finished Flag to indicate if it has just finished and that we should clean up. +*/ + +- (void)sound:(NSSound *)sound didFinishPlaying:(BOOL)finished +{ + // unused because I can't get NSSound to play snd resources, so I use Carbon's SndPlay(), above + if(finished) [sound release]; + NSLog(@"sound released"); +} + +- (void)resourceNameWillChange:(NSNotification *)notification +{ + // this saves the current resource's name so we can undo the change + Resource *resource = (Resource *) [notification object]; + [[self undoManager] registerUndoWithTarget:resource selector:@selector(setName:) object:[[[resource name] copy] autorelease]]; + [[self undoManager] setActionName:NSLocalizedString(@"Name Change", nil)]; +} + +- (void)resourceIDWillChange:(NSNotification *)notification +{ + // this saves the current resource's ID number so we can undo the change + Resource *resource = (Resource *) [notification object]; + [[self undoManager] registerUndoWithTarget:resource selector:@selector(setResID:) object:[[[resource resID] copy] autorelease]]; + if([[resource name] length] == 0) + [[self undoManager] setActionName:NSLocalizedString(@"ID Change", nil)]; + else [[self undoManager] setActionName:[NSString stringWithFormat:NSLocalizedString(@"ID Change for Ň%@Ó", nil), [resource name]]]; +} + +- (void)resourceTypeWillChange:(NSNotification *)notification +{ + // this saves the current resource's type so we can undo the change + Resource *resource = (Resource *) [notification object]; + [[self undoManager] registerUndoWithTarget:resource selector:@selector(setType:) object:[[[resource type] copy] autorelease]]; + if([[resource name] length] == 0) + [[self undoManager] setActionName:NSLocalizedString(@"Type Change", nil)]; + else [[self undoManager] setActionName:[NSString stringWithFormat:NSLocalizedString(@"Type Change for Ň%@Ó", nil), [resource name]]]; +} + +- (void)resourceAttributesWillChange:(NSNotification *)notification +{ + // this saves the current state of the resource's attributes so we can undo the change + Resource *resource = (Resource *) [notification object]; + [[self undoManager] registerUndoWithTarget:resource selector:@selector(setAttributes:) object:[[[resource attributes] copy] autorelease]]; + if([[resource name] length] == 0) + [[self undoManager] setActionName:NSLocalizedString(@"Attributes Change", nil)]; + else [[self undoManager] setActionName:[NSString stringWithFormat:NSLocalizedString(@"Attributes Change for Ň%@Ó", nil), [resource name]]]; +} + +- (void)resourceDataDidChange:(NSNotification *)notification +{ + [self updateChangeCount:NSChangeDone]; +} + +#pragma mark - +#pragma mark Edit Operations + +- (IBAction)cut:(id)sender +{ + [self copy:sender]; + [self clear:sender]; +} + +- (IBAction)copy:(id)sender +{ + #pragma unused(sender) + NSArray *selectedItems = [outlineView selectedItems]; + NSPasteboard *pb = [NSPasteboard pasteboardWithName:NSGeneralPboard]; + [pb declareTypes:[NSArray arrayWithObject:RKResourcePboardType] owner:self]; + [pb setData:[NSArchiver archivedDataWithRootObject:selectedItems] forType:RKResourcePboardType]; +} + +- (IBAction)paste:(id)sender +{ + #pragma unused(sender) + NSPasteboard *pb = [NSPasteboard pasteboardWithName:NSGeneralPboard]; + if([pb availableTypeFromArray:[NSArray arrayWithObject:RKResourcePboardType]]) + [self pasteResources:[NSUnarchiver unarchiveObjectWithData:[pb dataForType:RKResourcePboardType]]]; +} + +- (void)pasteResources:(NSArray *)pastedResources +{ + Resource *resource; + NSEnumerator *enumerator = [pastedResources objectEnumerator]; + while(resource = (Resource *) [enumerator nextObject]) + { + // check resource type/ID is available + if([dataSource resourceOfType:[resource type] andID:[resource resID]] == nil) + { + // resource slot is available, paste this one in + [dataSource addResource:resource]; + } + else + { + // resource slot is ocupied, ask user what to do + NSMutableArray *remainingResources = [[NSMutableArray alloc] initWithCapacity:1]; + [remainingResources addObject:resource]; + [remainingResources addObjectsFromArray:[enumerator allObjects]]; + NSBeginAlertSheet(@"Paste Error", @"Unique ID", @"Skip", @"Overwrite", mainWindow, self, NULL, @selector(overwritePasteSheetDidDismiss:returnCode:contextInfo:), remainingResources, @"There already exists a resource of type %@ with ID %@. Do you wish to assign the pasted resource a unique ID, overwrite the existing resource, or skip pasting of this resource?", [resource type], [resource resID]); + } + } +} + +- (void)overwritePasteSheetDidDismiss:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo +{ + NSMutableArray *remainingResources = [NSMutableArray arrayWithArray:[(NSArray *)contextInfo autorelease]]; + Resource *resource = [remainingResources objectAtIndex:0]; + if(returnCode == NSAlertDefaultReturn) // unique ID + { + Resource *newResource = [Resource resourceOfType:[resource type] andID:[dataSource uniqueIDForType:[resource type]] withName:[resource name] andAttributes:[resource attributes] data:[resource data]]; + [dataSource addResource:newResource]; + } + else if(NSAlertOtherReturn) // overwrite + { + [dataSource removeResource:[dataSource resourceOfType:[resource type] andID:[resource resID]]]; + [dataSource addResource:resource]; + } +// else if(NSAlertAlternateReturn) // skip + + // remove top resource and continue paste + [remainingResources removeObjectAtIndex:0]; + [self pasteResources:remainingResources]; +} + +- (IBAction)clear:(id)sender +{ + #pragma unused(sender) + if([prefs boolForKey:@"DeleteResourceWarning"]) + { + NSBeginCriticalAlertSheet(@"Delete Resource", @"Delete", @"Cancel", nil, [self mainWindow], self, @selector(deleteResourcesSheetDidEnd:returnCode:contextInfo:), NULL, nil, @"Please confirm you wish to delete the selected resources."); + } + else [self deleteSelectedResources]; +} + +- (void)deleteResourcesSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo +{ + #pragma unused(contextInfo) + if(returnCode == NSOKButton) + [self deleteSelectedResources]; +} + +- (void)deleteSelectedResources +{ + Resource *resource; + NSEnumerator *enumerator; + NSArray *selectedItems = [outlineView selectedItems]; + + // enumerate through array and delete resources + [[self undoManager] beginUndoGrouping]; + enumerator = [selectedItems reverseObjectEnumerator]; // reverse so an undo will replace items in original order + while(resource = [enumerator nextObject]) + { + [dataSource removeResource:resource]; + if([[resource name] length] == 0) + [[self undoManager] setActionName:NSLocalizedString(@"Delete Resource", nil)]; + else [[self undoManager] setActionName:[NSString stringWithFormat:NSLocalizedString(@"Delete Resource Ň%@Ó", nil), [resource name]]]; + } + [[self undoManager] endUndoGrouping]; + + // generalise undo name if more than one was deleted + if([outlineView numberOfSelectedRows] > 1) + [[self undoManager] setActionName:NSLocalizedString(@"Delete Resources", nil)]; + + // deselect resources (otherwise other resources move into selected rows!) + [outlineView deselectAll:self]; +} + +#pragma mark - +#pragma mark Accessors + +- (NSWindow *)mainWindow +{ + return mainWindow; +} + +- (ResourceDataSource *)dataSource +{ + return dataSource; +} + +- (NSOutlineView *)outlineView +{ + return outlineView; +} + +- (NSArray *)resources +{ + return resources; +} + +- (NSData *)creator +{ + return creator; +} + +- (NSData *)type +{ + return type; +} + +- (IBAction)creatorChanged:(id)sender +{ + unsigned long newCreator = 0x00; // creator is nil by default + NSData *creatorData = [[sender stringValue] dataUsingEncoding:NSMacOSRomanStringEncoding]; +// NSLog(@"creatorChanged: [sender stringValue] = '%@'; creatorData = '%@'", [sender stringValue], creatorData); + if(creatorData && [creatorData length] > 0) + { + newCreator = ' '; // pad with spaces if not nil + [creatorData getBytes:&newCreator length:([creatorData length] < 4? [creatorData length]:4)]; + } + [self setCreator:[NSData dataWithBytes:&newCreator length:4]]; +// NSLog(@"Creator changed to '%@'", [[[NSString alloc] initWithBytes:&newCreator length:4 encoding:NSMacOSRomanStringEncoding] autorelease]); +} + +- (IBAction)typeChanged:(id)sender +{ + unsigned long newType = 0x00; + NSData *typeData = [[sender stringValue] dataUsingEncoding:NSMacOSRomanStringEncoding]; +// NSLog(@"typeChanged: [sender stringValue] = '%@'; typeData = '%@'", [sender stringValue], typeData); + if(typeData && [typeData length] > 0) + { + newType = ' '; + [typeData getBytes:&newType length:([typeData length] < 4? [typeData length]:4)]; + } + [self setType:[NSData dataWithBytes:&newType length:4]]; +// NSLog(@"Type changed to '%@'", [[[NSString alloc] initWithBytes:&newType length:4 encoding:NSMacOSRomanStringEncoding] autorelease]); +} + +- (BOOL)setCreator:(NSData *)newCreator +{ + if(![newCreator isEqualToData:creator]) + { + id old = creator; + [[NSNotificationCenter defaultCenter] postNotificationName:DocumentInfoWillChangeNotification object:[NSDictionary dictionaryWithObjectsAndKeys:self, @"NSDocument", newCreator, @"creator", nil]]; + [[self undoManager] registerUndoWithTarget:self selector:@selector(setCreator:) object:creator]; + [[self undoManager] setActionName:NSLocalizedString(@"Change Creator Code", nil)]; + creator = [newCreator copy]; + [old release]; + [[NSNotificationCenter defaultCenter] postNotificationName:DocumentInfoDidChangeNotification object:[NSDictionary dictionaryWithObjectsAndKeys:self, @"NSDocument", creator, @"creator", nil]]; + return YES; + } + else return NO; +} + +- (BOOL)setType:(NSData *)newType +{ + if(![newType isEqualToData:type]) + { + id old = type; + [[NSNotificationCenter defaultCenter] postNotificationName:DocumentInfoWillChangeNotification object:[NSDictionary dictionaryWithObjectsAndKeys:self, @"NSDocument", newType, @"type", nil]]; + [[self undoManager] registerUndoWithTarget:self selector:@selector(setType:) object:type]; + [[self undoManager] setActionName:NSLocalizedString(@"Change File Type", nil)]; + type = [newType copy]; + [old release]; + [[NSNotificationCenter defaultCenter] postNotificationName:DocumentInfoDidChangeNotification object:[NSDictionary dictionaryWithObjectsAndKeys:self, @"NSDocument", type, @"type", nil]]; + return YES; + } + else return NO; +} + +- (BOOL)setCreator:(NSData *)newCreator andType:(NSData *)newType +{ + BOOL creatorChanged, typeChanged; + [[self undoManager] beginUndoGrouping]; + creatorChanged = [self setCreator:newCreator]; + typeChanged = [self setType:newType]; + [[self undoManager] endUndoGrouping]; + if(creatorChanged && typeChanged) + [[self undoManager] setActionName:NSLocalizedString(@"Change Creator & Type", nil)]; + return (creatorChanged || typeChanged); +} + +@end diff --git a/Cocoa/Plug-Ins/Hex Editor/HexTextView.m b/Cocoa/Plug-Ins/Hex Editor/HexTextView.m index 42c5078..7b84a4a 100644 --- a/Cocoa/Plug-Ins/Hex Editor/HexTextView.m +++ b/Cocoa/Plug-Ins/Hex Editor/HexTextView.m @@ -486,7 +486,7 @@ static NSRange draggedRange; @method selectionRangeForProposedRange:granularity: @abstract Puts insertion pointer between bytes during drag operation @author Nicholas Shanks -@updated 2003-11-10 NGS: Changed algorithm. +@change 2003-11-10 NS: Changed algorithm. */ - (unsigned int)_insertionGlyphIndexForDrag:(id )sender diff --git a/Cocoa/Plug-Ins/Hex Editor/NSData-HexRepresentation.h b/Cocoa/Plug-Ins/Hex Editor/NSData-HexRepresentation.h new file mode 100644 index 0000000..ec69e5b --- /dev/null +++ b/Cocoa/Plug-Ins/Hex Editor/NSData-HexRepresentation.h @@ -0,0 +1,11 @@ +#import + +@interface NSData (ResKnifeHexRepresentationExtensions) +- (NSString *)hexRepresentation; +- (NSString *)asciiRepresentation; +- (NSString *)nonLossyAsciiRepresentation; +@end + +@interface NSString (ResKnifeHexConversionExtensions) +- (NSData *)dataFromHex; +@end \ No newline at end of file diff --git a/Cocoa/Plug-Ins/Hex Editor/NSData-HexRepresentation.m b/Cocoa/Plug-Ins/Hex Editor/NSData-HexRepresentation.m new file mode 100644 index 0000000..697c9d2 --- /dev/null +++ b/Cocoa/Plug-Ins/Hex Editor/NSData-HexRepresentation.m @@ -0,0 +1,95 @@ +#import "NSData-HexRepresentation.h" + +@implementation NSData (ResKnifeHexRepresentationExtensions) + +- (NSString *)hexRepresentation +{ + int currentByte = 0, dataLength = [self length]; + char buffer[dataLength*3 -1], hex1, hex2; + char *bytes = (char *) [self bytes]; + + // return empty string if no data + if(dataLength == 0) return [NSString string]; + + // calculate bytes + for(currentByte = 0; currentByte < dataLength; currentByte++) + { + hex1 = bytes[currentByte]; + hex2 = bytes[currentByte]; + hex1 >>= 4; + hex1 &= 0x0F; + hex2 &= 0x0F; + hex1 += (hex1 < 10)? 0x30 : 0x37; + hex2 += (hex2 < 10)? 0x30 : 0x37; + + buffer[currentByte*3] = hex1; + buffer[currentByte*3 +1] = hex2; + buffer[currentByte*3 +2] = 0x20; + } + + return [NSString stringWithCString:buffer length:(dataLength*3 -1)]; +} + +- (NSString *)asciiRepresentation +{ + int currentByte = 0, dataLength = [self length]; + char buffer[dataLength]; + char *bytes = (char *) [self bytes]; + + // calculate bytes + for(currentByte = 0; currentByte < dataLength; currentByte++) + { + if(bytes[currentByte] >= 0x20 && bytes[currentByte] < 0x7F) + buffer[currentByte] = bytes[currentByte]; + else buffer[currentByte] = 0x2E; // full stop + } + + return [NSString stringWithCString:buffer length:dataLength]; +} + +- (NSString *)nonLossyAsciiRepresentation +{ + int currentByte = 0, dataLength = [self length]; + char buffer[dataLength]; + char *bytes = (char *) [self bytes]; + + // calculate bytes + for(currentByte = 0; currentByte < dataLength; currentByte++) + { + if(bytes[currentByte] > 0x20) // doesn't check for < 0x7F + buffer[currentByte] = bytes[currentByte]; +// else if(bytes[currentByte] == 0x20) +// buffer[currentByte] = 0xCA; // nbsp to stop maligned wraps - doesn't work :( + else buffer[currentByte] = 0x2E; // full stop + } + + return [NSString stringWithCString:buffer length:dataLength]; +} + +@end + +@implementation NSString (ResKnifeHexConversionExtensions) + +- (NSData *)dataFromHex +{ + unsigned long actualBytesEncoded = 0; + unsigned long maxBytesEncoded = floor([self cStringLength] / 2.0); + const char *bytes = [self cString]; + char *buffer = (char *) malloc(maxBytesEncoded); + signed char hex1, hex2; + int i; + + for(i = 0; i < maxBytesEncoded * 2;) + { + hex1 = bytes[i]; + hex2 = bytes[i+1]; + hex1 -= (hex1 < 'A')? 0x30 : ((hex1 < 'a')? 0x37 : 0x57); // 0-9 < A-Z < a-z + hex2 -= (hex2 < 'A')? 0x30 : ((hex2 < 'a')? 0x37 : 0x57); + if(hex1 & 0xF0 || hex2 & 0xF0) { i++; continue; } // invalid character found, move forward one byte and try again + buffer[actualBytesEncoded++] = (hex1 << 4) + hex2; + i += 2; + } + return [NSData dataWithBytesNoCopy:buffer length:actualBytesEncoded freeWhenDone:YES]; +} + +@end \ No newline at end of file diff --git a/Cocoa/Plug-Ins/Notifications.m b/Cocoa/Plug-Ins/Notifications.m index 97b76e9..68c1cb5 100644 --- a/Cocoa/Plug-Ins/Notifications.m +++ b/Cocoa/Plug-Ins/Notifications.m @@ -6,18 +6,16 @@ #import -NSString *ResourceWillChangeNotification = @"ResourceWillChangeNotification"; -NSString *ResourceNameWillChangeNotification = @"ResourceNameWillChangeNotification"; -NSString *ResourceTypeWillChangeNotification = @"ResourceTypeWillChangeNotification"; -NSString *ResourceIDWillChangeNotification = @"ResourceIDWillChangeNotification"; -NSString *ResourceAttributesWillChangeNotification = @"ResourceAttributesWillChangeNotification"; -NSString *ResourceDataWillChangeNotification = @"ResourceDataWillChangeNotification"; -NSString *ResourceWillBeSavedNotification = @"ResourceWillBeSavedNotification"; +NSString *ResourceWillChangeNotification = @"ResourceWillChange"; +NSString *ResourceNameWillChangeNotification = @"ResourceNameWillChange"; +NSString *ResourceTypeWillChangeNotification = @"ResourceTypeWillChange"; +NSString *ResourceIDWillChangeNotification = @"ResourceIDWillChange"; +NSString *ResourceAttributesWillChangeNotification = @"ResourceAttributesWillChange"; +NSString *ResourceDataWillChangeNotification = @"ResourceDataWillChange"; -NSString *ResourceNameDidChangeNotification = @"ResourceNameDidChangeNotification"; -NSString *ResourceTypeDidChangeNotification = @"ResourceTypeDidChangeNotification"; -NSString *ResourceIDDidChangeNotification = @"ResourceIDDidChangeNotification"; -NSString *ResourceAttributesDidChangeNotification = @"ResourceAttributesDidChangeNotification"; -NSString *ResourceDataDidChangeNotification = @"ResourceDataDidChangeNotification"; -NSString *ResourceDidChangeNotification = @"ResourceDidChangeNotification"; -NSString *ResourceWasSavedNotification = @"ResourceWasSavedNotification"; +NSString *ResourceNameDidChangeNotification = @"ResourceNameDidChange"; +NSString *ResourceTypeDidChangeNotification = @"ResourceTypeDidChange"; +NSString *ResourceIDDidChangeNotification = @"ResourceIDDidChange"; +NSString *ResourceAttributesDidChangeNotification = @"ResourceAttributesDidChange"; +NSString *ResourceDataDidChangeNotification = @"ResourceDataDidChange"; +NSString *ResourceDidChangeNotification = @"ResourceDidChange"; diff --git a/Cocoa/Plug-Ins/ResKnifePluginProtocol.h b/Cocoa/Plug-Ins/ResKnifePluginProtocol.h index c5a054f..cfebce1 100644 --- a/Cocoa/Plug-Ins/ResKnifePluginProtocol.h +++ b/Cocoa/Plug-Ins/ResKnifePluginProtocol.h @@ -1,55 +1,81 @@ #import #import "ResKnifeResourceProtocol.h" -/* Your plug-in's principal class must implement initWithResource: else it -won't be loaded by ResKnife (so neh-neh!), all other methods are optional, -and thus declared in ResKnifeInformalPluginProtocol. */ +/*! +@protocol ResKnifePluginProtocol +@abstract Your plug-in's principal class must implement initWithResource: or initWithResources:, all other methods are optional, and thus declared in ResKnifeInformalPluginProtocol. +*/ @protocol ResKnifePluginProtocol -/*! @method initWithResource: - * @abstract Your plug-in is inited with this call. This allows immediate - access to the resource you are about to edit, and with this - information you can set up different windows, etc. - */ -- (id)initWithResource:(id )newResource; +/*! +@method initWithResource: +@abstract Your plug-in is inited with this call. This allows immediate access to the resource you are about to edit, and with this information you can set up different windows, etc. +*/ +- (id)initWithResource:(id )inResource; @end -/* Optional methods your plugin may implement to provide additional -functionality: */ - -@interface ResKnifeInformalPluginProtocol - -/*! @method dataForFileExport: - @abstract Return the data to be saved to disk when your resource is - exported to a file. By default the host application substitutes - the raw resource data if you don't implement this. The idea is - that this export function is non-lossy, i.e. only override this - if there is a format that is a 100% equivalent to your data. */ -+(NSData*) dataForFileExport: (id )theRes; -/*! @method extensionForFileExport: - @abstract If you implement dataForFileExport, return a string here that - provides the proper file extension for your file. By default the - host application substitutes the resource type here. */ -+(NSString*) extensionForFileExport: (id )theRes; - -/*! @method imageForImageFileExport: - @abstract Return the image to be saved to disk when your resource is - exported to an image file. If your resource contains image - data, this is your opportunity to export it to a well-known - image format. This will be a lossy conversion to a TIFF - file. */ -+(NSImage*) imageForImageFileExport: (id )theRes; - -@end - - -/* If you're implementing a template editor, you should implement this - extended protocol instead of the regular plugin protocol: */ - +/*! +@protocol ResKnifeTemplatePluginProtocol +@abstract If you're implementing a template editor, you should implement this extended protocol instead of the regular plugin protocol. +*/ @protocol ResKnifeTemplatePluginProtocol -- (id)initWithResources:(id )newResource, ...; +/*! +@method initWithResource: +@abstract Your template editor is inited with this call. The first argument is the resource to edit, the second is the TMPL resource that defines the data structure. +*/ +- (id)initWithResources:(id )inResource, ...; -@end \ No newline at end of file +@end + + +/*! +@protocol ResKnifeInformalPluginProtocol +@abstract Optional methods your plugin may implement to provide additional functionality. +@author Uli Kusterer +@change 2005-10-03 NGS: Added UTI, MIME Type and OSType methods, renamed extensionForFileExport: to filenameExtensionForFileExport: +*/ +@interface ResKnifeInformalPluginProtocol + +/*! +@method dataForFileExport: +@abstract Return the data to be saved to disk when your resource is exported to a flat file. By default the host application uses the raw resource data if you don't implement this. The idea is that this export function is non-lossy, i.e. only override this if there is a format that is a 100% equivalent to your data. +*/ ++ (NSData *)dataForFileExport:(id )resource; + +/* Your plug should implement one of the following four methods. + * They are looked for in the order shown below. Only implement one. + */ + +/*! +@method UTIForFileExport: +@abstract Regardless of whether you implement dataForFileExport, you should implement this and return the proper Uniform Type Identifier for your file. +*/ + ++ (NSString *)UTIForFileExport:(id )resource; + +/*! +@method MIMETypeForFileExport: +@abstract If you do not know the UTI for your file type, but it has a known MIME Type (e.g. image/svg), you can return that here. +*/ + ++ (NSString *)MIMETypeForFileExport:(id )resource; + +/*! +@method OSTypeForFileExport: +@abstract If your data has a classical Macintosh OSType code, you can return that here. +*/ + ++ (NSString *)OSTypeForFileExport:(id )resource; + +/*! +@method filenameExtensionForFileExport: +@abstract As a last resort, you can return here the filename extension for your resource type. + By default the host application substitutes the resource type if you do not implement this. +*/ + ++ (NSString *)filenameExtensionForFileExport:(id )resource; + +@end diff --git a/Cocoa/Plug-Ins/ResKnifeResourceProtocol.h b/Cocoa/Plug-Ins/ResKnifeResourceProtocol.h index e12ff09..3e5c98b 100644 --- a/Cocoa/Plug-Ins/ResKnifeResourceProtocol.h +++ b/Cocoa/Plug-Ins/ResKnifeResourceProtocol.h @@ -21,39 +21,27 @@ 2003-07-31 UK Added document accessor, commented. ========================================================================== */ -/* ----------------------------------------------------------------------------- - Headers: - -------------------------------------------------------------------------- */ - #import - -/* ----------------------------------------------------------------------------- - Protocol: - -------------------------------------------------------------------------- */ - @protocol ResKnifeResourceProtocol --(void) touch; --(BOOL) isDirty; +- (void)touch; +- (BOOL)isDirty; --(NSString*) name; --(void) setName: (NSString*)newName; --(NSString*) nameForEditorWindow; +- (NSString *)name; +- (void)setName:(NSString *)newName; +- (NSString *)type; +- (void)setType:(NSString *)newType; +- (NSNumber *)resID; +- (void)setResID:(NSNumber *)newResID; +- (NSNumber *)attributes; +- (void)setAttributes:(NSNumber *)newAttributes; +- (NSNumber *)size; +- (NSData *)data; +- (void)setData:(NSData *)newData; --(NSString*) type; --(void) setType: (NSString*)newType; --(NSNumber*) resID; --(void) setResID: (NSNumber*)newResID; - --(NSNumber*) attributes; --(void) setAttributes: (NSNumber*)newAttributes; - --(NSNumber*) size; --(NSData*) data; --(void) setData: (NSData*)newData; - --(NSDocument*) document; // Owner of this resource. Useful for looking for resources in same file as yours. +- (NSString *)defaultWindowTitle; +- (NSDocument *)document; // These methods are used to retrieve resources other than the one you're editing. // Passing a document of nil will indicate to search in all open documents. @@ -61,25 +49,19 @@ // All returned objects are auoreleased. Retain if you want to keep them. // This method may return an empty array -+ (NSArray *)allResourcesOfType:(NSString *)typeValue inDocument:(NSDocument *)document; ++ (NSArray *)allResourcesOfType:(NSString *)typeValue inDocument:(NSDocument *)searchDocument; // The next two return the first matching resource found, or nil. -+ (id)resourceOfType:(NSString *)typeValue andID:(NSNumber *)resIDValue inDocument:(NSDocument *)document; -+ (id)resourceOfType:(NSString *)typeValue withName:(NSString *)nameValue inDocument:(NSDocument *)document; ++ (id)resourceOfType:(NSString *)typeValue andID:(NSNumber *)resIDValue inDocument:(NSDocument *)searchDocument; ++ (id)resourceOfType:(NSString *)typeValue withName:(NSString *)nameValue inDocument:(NSDocument *)searchDocument; @end -/* ----------------------------------------------------------------------------- - Resource Notifications: - See note in Notifications.m about usage. - -------------------------------------------------------------------------- */ - extern NSString *ResourceWillChangeNotification; extern NSString *ResourceNameWillChangeNotification; extern NSString *ResourceTypeWillChangeNotification; extern NSString *ResourceIDWillChangeNotification; extern NSString *ResourceAttributesWillChangeNotification; extern NSString *ResourceDataWillChangeNotification; -extern NSString *ResourceWillBeSavedNotification; extern NSString *ResourceNameDidChangeNotification; extern NSString *ResourceTypeDidChangeNotification; @@ -87,4 +69,3 @@ extern NSString *ResourceIDDidChangeNotification; extern NSString *ResourceAttributesDidChangeNotification; extern NSString *ResourceDataDidChangeNotification; extern NSString *ResourceDidChangeNotification; -extern NSString *ResourceWasSavedNotification; \ No newline at end of file diff --git a/External/MoreFilesX/MoreFilesX.c b/External/MoreFilesX/MoreFilesX.c index 9e83a74..e614f2b 100644 --- a/External/MoreFilesX/MoreFilesX.c +++ b/External/MoreFilesX/MoreFilesX.c @@ -2133,7 +2133,7 @@ BadParameter: /*****************************************************************************/ -#if 0 +#if COMPILING_ON_JAGUAR_OR_BELOW /* These methods were added in 10.4, and are not used by ResKnife, so we just comment them out to avoid errors */ OSErr @@ -2179,7 +2179,6 @@ PBUnlockRangeSync: return ( result ); } - #endif /*****************************************************************************/ diff --git a/External/MoreFilesX/MoreFilesX.h b/External/MoreFilesX/MoreFilesX.h index 19a6a5c..8536ed8 100644 --- a/External/MoreFilesX/MoreFilesX.h +++ b/External/MoreFilesX/MoreFilesX.h @@ -1 +1 @@ -/* File: MoreFilesX.h Contains: A collection of useful high-level File Manager routines which use the HFS Plus APIs wherever possible. Version: MoreFilesX 1.0 Copyright: Š 1992-2002 by Apple Computer, Inc., all rights reserved. You may incorporate this sample code into your applications without restriction, though the sample code has been provided "AS IS" and the responsibility for its operation is 100% yours. However, what you are not permitted to do is to redistribute the source as "DSC Sample Code" after having made changes. If you're going to re-distribute the source, we require that you make it clear in the source that the code was descended from Apple Sample Code, but that you've made changes. File Ownership: DRI: Apple Macintosh Developer Technical Support Other Contact: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ Technology: DTS Sample Code Writers: (JL) Jim Luther Change History (most recent first): <1> 1/25/02 JL MoreFilesX 1.0 Notes: What do those arrows in the documentation for each routine mean? --> The parameter is an input <-- The parameter is an output. The pointer to the variable where the output will be returned (must not be NULL). <** The parameter is an optional output. If it is not a NULL pointer, it points to the variable where the output will be returned. If it is a NULL pointer, the output will not be returned and will possibly let the routine and the File Manager do less work. If you don't need an optional output, don't ask for it. **> The parameter is an optional input. If it is not a NULL pointer, it points to the variable containing the input data. If it is a NULL pointer, the input is not used and will possibly let the routine and the File Manager do less work. */ #ifndef __MOREFILESX__ #define __MOREFILESX__ #ifndef __MACTYPES__ #include #endif #ifndef __FINDER__ #include #endif #ifndef __FILES__ #include #endif #ifndef __TEXTCOMMON__ #include #endif #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #if PRAGMA_STRUCT_ALIGN #pragma options align=mac68k #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(push, 2) #elif PRAGMA_STRUCT_PACK #pragma pack(2) #endif /*****************************************************************************/ #pragma mark ----- FinderInfo and ExtendedFinderInfo ----- /* * FSGetFinderInfo and FSSetFinderInfo use these unions for Finder information. */ union FinderInfo { FileInfo file; FolderInfo folder; }; typedef union FinderInfo FinderInfo; union ExtendedFinderInfo { ExtendedFileInfo file; ExtendedFolderInfo folder; }; typedef union ExtendedFinderInfo ExtendedFinderInfo; /*****************************************************************************/ #pragma mark ----- GetVolParmsInfoBuffer Macros ----- /* * Macros to get information out of GetVolParmsInfoBuffer. */ /* version 1 field getters */ #define GetVolParmsInfoVersion(volParms) \ ((volParms)->vMVersion) #define GetVolParmsInfoAttrib(volParms) \ ((volParms)->vMAttrib) #define GetVolParmsInfoLocalHand(volParms) \ ((volParms)->vMLocalHand) #define GetVolParmsInfoServerAdr(volParms) \ ((volParms)->vMServerAdr) /* version 2 field getters (assume zero result if version < 2) */ #define GetVolParmsInfoVolumeGrade(volParms) \ (((volParms)->vMVersion >= 2) ? (volParms)->vMVolumeGrade : 0) #define GetVolParmsInfoForeignPrivID(volParms) \ (((volParms)->vMVersion >= 2) ? (volParms)->vMForeignPrivID : 0) /* version 3 field getters (assume zero result if version < 3) */ #define GetVolParmsInfoExtendedAttributes(volParms) \ (((volParms)->vMVersion >= 3) ? (volParms)->vMExtendedAttributes : 0) /* attribute bits supported by all versions of GetVolParmsInfoBuffer */ #define VolIsNetworkVolume(volParms) \ ((volParms)->vMServerAdr != 0) #define VolHasLimitFCBs(volParms) \ (((volParms)->vMAttrib & (1L << bLimitFCBs)) != 0) #define VolHasLocalWList(volParms) \ (((volParms)->vMAttrib & (1L << bLocalWList)) != 0) #define VolHasNoMiniFndr(volParms) \ (((volParms)->vMAttrib & (1L << bNoMiniFndr)) != 0) #define VolHasNoVNEdit(volParms) \ (((volParms)->vMAttrib & (1L << bNoVNEdit)) != 0) #define VolHasNoLclSync(volParms) \ (((volParms)->vMAttrib & (1L << bNoLclSync)) != 0) #define VolHasTrshOffLine(volParms) \ (((volParms)->vMAttrib & (1L << bTrshOffLine)) != 0) #define VolHasNoSwitchTo(volParms) \ (((volParms)->vMAttrib & (1L << bNoSwitchTo)) != 0) #define VolHasNoDeskItems(volParms) \ (((volParms)->vMAttrib & (1L << bNoDeskItems)) != 0) #define VolHasNoBootBlks(volParms) \ (((volParms)->vMAttrib & (1L << bNoBootBlks)) != 0) #define VolHasAccessCntl(volParms) \ (((volParms)->vMAttrib & (1L << bAccessCntl)) != 0) #define VolHasNoSysDir(volParms) \ (((volParms)->vMAttrib & (1L << bNoSysDir)) != 0) #define VolHasExtFSVol(volParms) \ (((volParms)->vMAttrib & (1L << bHasExtFSVol)) != 0) #define VolHasOpenDeny(volParms) \ (((volParms)->vMAttrib & (1L << bHasOpenDeny)) != 0) #define VolHasCopyFile(volParms) \ (((volParms)->vMAttrib & (1L << bHasCopyFile)) != 0) #define VolHasMoveRename(volParms) \ (((volParms)->vMAttrib & (1L << bHasMoveRename)) != 0) #define VolHasDesktopMgr(volParms) \ (((volParms)->vMAttrib & (1L << bHasDesktopMgr)) != 0) #define VolHasShortName(volParms) \ (((volParms)->vMAttrib & (1L << bHasShortName)) != 0) #define VolHasFolderLock(volParms) \ (((volParms)->vMAttrib & (1L << bHasFolderLock)) != 0) #define VolHasPersonalAccessPrivileges(volParms) \ (((volParms)->vMAttrib & (1L << bHasPersonalAccessPrivileges)) != 0) #define VolHasUserGroupList(volParms) \ (((volParms)->vMAttrib & (1L << bHasUserGroupList)) != 0) #define VolHasCatSearch(volParms) \ (((volParms)->vMAttrib & (1L << bHasCatSearch)) != 0) #define VolHasFileIDs(volParms) \ (((volParms)->vMAttrib & (1L << bHasFileIDs)) != 0) #define VolHasBTreeMgr(volParms) \ (((volParms)->vMAttrib & (1L << bHasBTreeMgr)) != 0) #define VolHasBlankAccessPrivileges(volParms) \ (((volParms)->vMAttrib & (1L << bHasBlankAccessPrivileges)) != 0) #define VolSupportsAsyncRequests(volParms) \ (((volParms)->vMAttrib & (1L << bSupportsAsyncRequests)) != 0) #define VolSupportsTrashVolumeCache(volParms) \ (((volParms)->vMAttrib & (1L << bSupportsTrashVolumeCache)) != 0) /* attribute bits supported by version 3 and greater versions of GetVolParmsInfoBuffer */ #define VolIsEjectable(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bIsEjectable)) != 0) #define VolSupportsHFSPlusAPIs(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsHFSPlusAPIs)) != 0) #define VolSupportsFSCatalogSearch(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsFSCatalogSearch)) != 0) #define VolSupportsFSExchangeObjects(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsFSExchangeObjects)) != 0) #define VolSupports2TBFiles(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupports2TBFiles)) != 0) #define VolSupportsLongNames(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsLongNames)) != 0) #define VolSupportsMultiScriptNames(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsMultiScriptNames)) != 0) #define VolSupportsNamedForks(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsNamedForks)) != 0) #define VolSupportsSubtreeIterators(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsSubtreeIterators)) != 0) #define VolL2PCanMapFileBlocks(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bL2PCanMapFileBlocks)) != 0) #define VolParentModDateChanges(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bParentModDateChanges)) != 0) #define VolAncestorModDateChanges(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bAncestorModDateChanges)) != 0) #define VolSupportsSymbolicLinks(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsSymbolicLinks)) != 0) #define VolIsAutoMounted(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bIsAutoMounted)) != 0) /*****************************************************************************/ #pragma mark ----- userPrivileges Bit Masks and Macros ----- /* * Bit masks and macros to get common information out of userPrivileges byte * returned by FSGetCatalogInfo. * * Note: The userPrivileges byte is the same as the ioACUser byte returned * by PBGetCatInfo, and is the 1's complement of the user's privileges * byte returned in ioACAccess by PBHGetDirAccess. That's where the * ioACUser names came from. * * The userPrivileges are user's effective privileges based on the * user ID and the groups that user belongs to, and the owner, group, * and everyone privileges for the given directory. */ enum { /* mask for just the access restriction bits */ kioACUserAccessMask = (kioACUserNoSeeFolderMask + kioACUserNoSeeFilesMask + kioACUserNoMakeChangesMask), /* common access privilege settings */ kioACUserFull = 0x00, /* no access restiction bits on */ kioACUserNone = kioACUserAccessMask, /* all access restiction bits on */ kioACUserDropBox = (kioACUserNoSeeFolderMask + kioACUserNoSeeFilesMask), /* make changes, but not see files or folders */ kioACUserBulletinBoard = kioACUserNoMakeChangesMask /* see files and folders, but not make changes */ }; /* Macros for testing ioACUser bits. */ #define UserIsOwner(userPrivileges) \ (((userPrivileges) & kioACUserNotOwnerMask) == 0) #define UserHasFullAccess(userPrivileges) \ (((userPrivileges) & (kioACUserAccessMask)) == kioACUserFull) #define UserHasDropBoxAccess(userPrivileges) \ (((userPrivileges) & kioACUserAccessMask) == kioACUserDropBox) #define UserHasBulletinBoard(userPrivileges) \ (((userPrivileges) & kioACUserAccessMask) == kioACUserBulletinBoard) #define UserHasNoAccess(userPrivileges) \ (((userPrivileges) & kioACUserAccessMask) == kioACUserNone) /*****************************************************************************/ #pragma mark ----- File Access Routines ----- /*****************************************************************************/ #pragma mark FSCopyFork OSErr FSCopyFork( SInt16 srcRefNum, SInt16 dstRefNum, void *copyBufferPtr, ByteCount copyBufferSize); /* The FSCopyFork function copies all data from the source fork to the destination fork of open file forks and makes sure the destination EOF is equal to the source EOF. srcRefNum --> The source file reference number. dstRefNum --> The destination file reference number. copyBufferPtr --> Pointer to buffer to use during copy. The buffer should be at least 4K-bytes minimum. The larger the buffer, the faster the copy (up to a point). copyBufferSize --> The size of the copy buffer. */ /*****************************************************************************/ #pragma mark ----- Volume Access Routines ----- /*****************************************************************************/ #pragma mark FSGetVolParms OSErr FSGetVolParms( FSVolumeRefNum volRefNum, UInt32 bufferSize, GetVolParmsInfoBuffer *volParmsInfo, UInt32 *actualInfoSize); /* The FSGetVolParms function returns information about the characteristics of a volume. A result of paramErr usually just means the volume doesn't support GetVolParms and the feature you were going to check for isn't available. volRefNum --> Volume specification. bufferSize --> Size of buffer pointed to by volParmsInfo. volParmsInfo <-- A GetVolParmsInfoBuffer record where the volume attributes information is returned. actualInfoSize <-- The number of bytes actually returned in volParmsInfo. __________ Also see: The GetVolParmsInfoBuffer Macros for checking attribute bits in this file */ /*****************************************************************************/ #pragma mark FSGetVRefNum OSErr FSGetVRefNum( const FSRef *ref, FSVolumeRefNum *vRefNum); /* The FSGetVRefNum function determines the volume reference number of a volume from a FSRef. ref --> The FSRef. vRefNum <-- The volume reference number. */ /*****************************************************************************/ #pragma mark FSGetVInfo OSErr FSGetVInfo( FSVolumeRefNum volume, HFSUniStr255 *volumeName, /* can be NULL */ UInt64 *freeBytes, /* can be NULL */ UInt64 *totalBytes); /* can be NULL */ /* The FSGetVInfo function returns the name, available space (in bytes), and total space (in bytes) for the specified volume. volume --> The volume reference number. volumeName <** An optional pointer to a HFSUniStr255. If not NULL, the volume name will be returned in the HFSUniStr255. freeBytes <** An optional pointer to a UInt64. If not NULL, the number of free bytes on the volume will be returned in the UInt64. totalBytes <** An optional pointer to a UInt64. If not NULL, the total number of bytes on the volume will be returned in the UInt64. */ /*****************************************************************************/ #pragma mark FSGetVolFileSystemID OSErr FSGetVolFileSystemID( FSVolumeRefNum volume, UInt16 *fileSystemID, /* can be NULL */ UInt16 *signature); /* can be NULL */ /* The FSGetVolFileSystemID function returns the file system ID and signature of a mounted volume. The file system ID identifies the file system that handles requests to a particular volume. The signature identifies the volume type of the volume (for example, FSID 0 is Macintosh HFS Plus, HFS or MFS, where a signature of 0x4244 identifies the volume as HFS). Here's a partial list of file system ID numbers (only Apple's file systems are listed): FSID File System ----- ----------------------------------------------------- $0000 Macintosh HFS Plus, HFS or MFS $0100 ProDOS File System $0101 PowerTalk Mail Enclosures $4147 ISO 9660 File Access (through Foreign File Access) $4242 High Sierra File Access (through Foreign File Access) $464D QuickTake File System (through Foreign File Access) $4953 Macintosh PC Exchange (MS-DOS) $4A48 Audio CD Access (through Foreign File Access) $4D4B Apple Photo Access (through Foreign File Access) $6173 AppleShare (later versions of AppleShare only) See the Technical Note "FL 35 - Determining Which File System Is Active" and the "Guide to the File System Manager" for more information. volume --> The volume reference number. fileSystemID <** An optional pointer to a UInt16. If not NULL, the volume's file system ID will be returned in the UInt16. signature <** An optional pointer to a UInt16. If not NULL, the volume's signature will be returned in the UInt16. */ /*****************************************************************************/ #pragma mark FSGetMountedVolumes OSErr FSGetMountedVolumes( FSRef ***volumeRefsHandle, /* pointer to handle of FSRefs */ ItemCount *numVolumes); /* The FSGetMountedVolumes function returns the list of volumes currently mounted in an array of FSRef records. The array of FSRef records is returned in a Handle, volumeRefsHandle, which is allocated by FSGetMountedVolumes. The caller is responsible for disposing of volumeRefsHandle if the FSGetMountedVolumes returns noErr. volumeRefsHandle <-- Pointer to an FSRef Handle where the array of FSRefs is to be returned. numVolumes <-- The number of volumes returned in the array. */ /*****************************************************************************/ #pragma mark ----- FSRef/FSpec/Path/Name Conversion Routines ----- /*****************************************************************************/ #pragma mark FSRefMakeFSSpec OSErr FSRefMakeFSSpec( const FSRef *ref, FSSpec *spec); /* The FSRefMakeFSSpec function returns an FSSpec for the file or directory specified by the ref parameter. ref --> An FSRef specifying the file or directory. spec <-- The FSSpec. */ /*****************************************************************************/ #pragma mark FSMakeFSRef OSErr FSMakeFSRef( FSVolumeRefNum volRefNum, SInt32 dirID, ConstStr255Param name, FSRef *ref); /* The FSMakeFSRef function creates an FSRef from the traditional volume reference number, directory ID and pathname inputs. It is functionally equivalent to FSMakeFSSpec followed by FSpMakeFSRef. volRefNum --> Volume specification. dirID --> Directory specification. name --> The file or directory name, or NULL. ref <-- The FSRef. */ /*****************************************************************************/ #pragma mark FSMakePath OSStatus FSMakePath( SInt16 vRefNum, SInt32 dirID, ConstStr255Param name, UInt8 *path, UInt32 maxPathSize); /* The FSMakePath function creates a pathname from the traditional volume reference number, directory ID, and pathname inputs. It is functionally equivalent to FSMakeFSSpec, FSpMakeFSRef, FSRefMakePath. volRefNum --> Volume specification. dirID --> Directory specification. name --> The file or directory name, or NULL. path <-- A pointer to a buffer which FSMakePath will fill with a C string representing the pathname to the file or directory specified. The format of the pathname returned can be determined with the Gestalt selector gestaltFSAttr's gestaltFSUsesPOSIXPathsForConversion bit. If the gestaltFSUsesPOSIXPathsForConversion bit is clear, the pathname is a Mac OS File Manager full pathname in a C string, and file or directory names in the pathname may be mangled as returned by the File Manager. If the gestaltFSUsesPOSIXPathsForConversion bit is set, the pathname is a UTF8 encoded POSIX absolute pathname in a C string. In either case, the pathname returned can be passed back to FSPathMakeRef to create an FSRef to the file or directory, or FSPathMakeFSSpec to craete an FSSpec to the file or directory. maxPathSize --> The size of the path buffer in bytes. If the path buffer is too small for the pathname string, FSMakePath returns pathTooLongErr or buffersTooSmall. */ /*****************************************************************************/ #pragma mark FSPathMakeFSSpec OSStatus FSPathMakeFSSpec( const UInt8 *path, FSSpec *spec, Boolean *isDirectory); /* can be NULL */ /* The FSPathMakeFSSpec function converts a pathname to an FSSpec. path --> A pointer to a C String that is the pathname. The format of the pathname you must supply can be determined with the Gestalt selector gestaltFSAttr's gestaltFSUsesPOSIXPathsForConversion bit. If the gestaltFSUsesPOSIXPathsForConversion bit is clear, the pathname must be a Mac OS File Manager full pathname in a C string. If the gestaltFSUsesPOSIXPathsForConversion bit is set, the pathname must be a UTF8 encoded POSIX absolute pathname in a C string. spec <-- The FSSpec. isDirectory <** An optional pointer to a Boolean. If not NULL, true will be returned in the Boolean if the specified path is a directory, or false will be returned in the Boolean if the specified path is a file. */ /*****************************************************************************/ #pragma mark UnicodeNameGetHFSName OSErr UnicodeNameGetHFSName( UniCharCount nameLength, const UniChar *name, TextEncoding textEncodingHint, Boolean isVolumeName, Str31 hfsName); /* The UnicodeNameGetHFSName function converts a Unicode string to a Pascal Str31 (or Str27) string using an algorithm similar to that used by the File Manager. Note that if the name is too long or cannot be converted using the given text encoding hint, you will get an error instead of the mangled name that the File Manager would return. nameLength --> Number of UniChar in name parameter. name --> The Unicode string to convert. textEncodingHint --> The text encoding hint used for the conversion. You can pass kTextEncodingUnknown to use the "default" textEncodingHint. isVolumeName --> If true, the output name will be limited to 27 characters (kHFSMaxVolumeNameChars). If false, the output name will be limited to 31 characters (kHFSMaxFileNameChars). hfsName <-- The hfsName as a Pascal string. __________ Also see: HFSNameGetUnicodeName */ /*****************************************************************************/ #pragma mark HFSNameGetUnicodeName OSErr HFSNameGetUnicodeName( ConstStr31Param hfsName, TextEncoding textEncodingHint, HFSUniStr255 *unicodeName); /* The HFSNameGetUnicodeName function converts a Pascal Str31 string to an Unicode HFSUniStr255 string using the same routines as the File Manager. hfsName --> The Pascal string to convert. textEncodingHint --> The text encoding hint used for the conversion. You can pass kTextEncodingUnknown to use the "default" textEncodingHint. unicodeName <-- The Unicode string. __________ Also see: UnicodeNameGetHFSName */ /*****************************************************************************/ #pragma mark ----- File/Directory Manipulation Routines ----- /*****************************************************************************/ #pragma mark FSRefValid Boolean FSRefValid(const FSRef *ref); /* The FSRefValid function determines if an FSRef is valid. If the result is true, then the FSRef refers to an existing file or directory. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSGetParentRef OSErr FSGetParentRef( const FSRef *ref, FSRef *parentRef); /* The FSGetParentRef function gets the parent directory FSRef of the specified object. Note: FSRefs always point to real file system objects. So, there cannot be a FSRef to the parent of volume root directories. If you call FSGetParentRef with a ref to the root directory of a volume, the function result will be noErr and the parentRef will be invalid (using it for other file system requests will fail). ref --> FSRef to a file or directory. parentRef <-- The parent directory's FSRef. */ /*****************************************************************************/ #pragma mark FSGetFileDirName OSErr FSGetFileDirName( const FSRef *ref, HFSUniStr255 *outName); /* The FSGetFileDirName function gets the name of the file or directory specified. ref --> FSRef to a file or directory. outName <-- The file or directory name. */ /*****************************************************************************/ #pragma mark FSGetNodeID OSErr FSGetNodeID( const FSRef *ref, long *nodeID, /* can be NULL */ Boolean *isDirectory); /* can be NULL */ /* The GetNodeIDFromFSRef function gets the node ID number of the file or directory specified (note: the node ID is the directory ID for directories). ref --> FSRef to a file or directory. nodeID <** An optional pointer to a long. If not NULL, the node ID will be returned in the long. isDirectory <** An optional pointer to a Boolean. If not NULL, true will be returned in the Boolean if the object is a directory, or false will be returned in the Boolean if object is a file. */ /*****************************************************************************/ #pragma mark FSGetUserPrivilegesPermissions OSErr FSGetUserPrivilegesPermissions( const FSRef *ref, UInt8 *userPrivileges, /* can be NULL */ UInt32 permissions[4]); /* can be NULL */ /* The FSGetUserPrivilegesPermissions function gets the userPrivileges and/or permissions of the file or directory specified. ref --> FSRef to a file or directory. userPrivileges <** An optional pointer to a UInt8. If not NULL, the userPrivileges will be returned in the UInt8. permissions <** An optional pointer to an UInt32[4] array. If not NULL, the permissions will be returned in the UInt32[4] array. */ /*****************************************************************************/ #pragma mark FSCheckLock OSErr FSCheckLock( const FSRef *ref); /* The FSCheckLock function determines if a file or directory is locked. If FSCheckLock returns noErr, then the file or directory is not locked and the volume it is on is not locked either. If FSCheckLock returns fLckdErr, then the file or directory is locked. If FSCheckLock returns wPrErr, then the volume is locked by hardware (i.e., locked tab on removable media). If FSCheckLock returns vLckdErr, then the volume is locked by software. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSGetForkSizes OSErr FSGetForkSizes( const FSRef *ref, UInt64 *dataLogicalSize, /* can be NULL */ UInt64 *rsrcLogicalSize); /* can be NULL */ /* The FSGetForkSizes returns the size of the data and/or resource fork for the specified file. ref --> FSRef to a file or directory. dataLogicalSize <** An optional pointer to a UInt64. If not NULL, the data fork's size will be returned in the UInt64. rsrcLogicalSize <** An optional pointer to a UInt64. If not NULL, the resource fork's size will be returned in the UInt64. __________ Also see: FSGetTotalForkSizes */ /*****************************************************************************/ #pragma mark FSGetTotalForkSizes OSErr FSGetTotalForkSizes( const FSRef *ref, UInt64 *totalLogicalSize, /* can be NULL */ UInt64 *totalPhysicalSize, /* can be NULL */ ItemCount *forkCount); /* can be NULL */ /* The FSGetTotalForkSizes returns the total logical size and/or the total physical size of the specified file (i.e., it adds the sizes of all file forks). It optionally returns the number of file forks. ref --> FSRef to a file or directory. totalLogicalSize <** An optional pointer to a UInt64. If not NULL, the sum of all fork logical sizes will be returned in the UInt64. totalPhysicalSize <** An optional pointer to a UInt64. If not NULL, the sum of all fork physical sizes will be returned in the UInt64. forkCount <** An optional pointer to a ItemCount. If not NULL, the number of file forks will be returned in the ItemCount. __________ Also see: FSGetForkSizes */ /*****************************************************************************/ #pragma mark FSBumpDate OSErr FSBumpDate( const FSRef *ref); /* The FSBumpDate function changes the content modification date of a file or directory to the current date/time. If the content modification date is already equal to the current date/time, then add one second to the content modification date. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSGetFinderInfo OSErr FSGetFinderInfo( const FSRef *ref, FinderInfo *info, /* can be NULL */ ExtendedFinderInfo *extendedInfo, /* can be NULL */ Boolean *isDirectory); /* can be NULL */ /* The FSGetFinderInfo function gets the finder information for a file or directory. ref --> FSRef to a file or directory. info <** An optional pointer to a FinderInfo. If not NULL, the FileInfo (if ref is a file) or the FolderInfo (if ref is a folder) will be returned in the FinderInfo. extendedInfo <** An optional pointer to a ExtendedFinderInfo. If not NULL, the ExtendedFileInfo (if ref is a file) or the ExtendedFolderInfo (if ref is a folder) will be returned in the ExtendedFinderInfo. isDirectory <** An optional pointer to a Boolean. If not NULL, true will be returned in the Boolean if the object is a directory, or false will be returned in the Boolean if object is a file. __________ Also see: FSSetFinderInfo */ /*****************************************************************************/ #pragma mark FSSetFinderInfo OSErr FSSetFinderInfo( const FSRef *ref, const FinderInfo *info, /* can be NULL */ const ExtendedFinderInfo *extendedInfo); /* can be NULL */ /* The FSSetFinderInfo function sets the finder information for a file or directory. ref --> FSRef to a file or directory. info **> A pointer to a FinderInfo record with the new FileInfo (if ref is a file) or new FolderInfo (if ref is a folder), or NULL if the FinderInfo is not to be changed. extendedInfo **> A pointer to a FinderInfo record with the new ExtendedFileInfo (if ref is a file) or new ExtendedFolderInfo (if ref is a folder), or NULL if the ExtendedFinderInfo is not to be changed. __________ Also see: FSGetFinderInfo */ /*****************************************************************************/ #pragma mark FSChangeCreatorType OSErr FSChangeCreatorType( const FSRef *ref, OSType fileCreator, OSType fileType); /* The FSChangeCreatorType function changes the creator and/or file type of a file. ref --> FSRef to a file. creator --> The new creator type or 0x00000000 to leave the creator type alone. fileType --> The new file type or 0x00000000 to leave the file type alone. */ /*****************************************************************************/ #pragma mark FSChangeFinderFlags OSErr FSChangeFinderFlags( const FSRef *ref, Boolean setBits, UInt16 flagBits); /* The FSChangeFinderFlags function sets or clears flag bits in the finderFlags field of a file's FileInfo record or a directory's FolderInfo record. ref --> FSRef to a file or directory. setBits --> If true, then set the bits specified in flagBits. If false, then clear the bits specified in flagBits. flagBits --> The flagBits parameter specifies which Finder Flag bits to set or clear. If a bit in flagBits is set, then the same bit in fdFlags is either set or cleared depending on the state of the setBits parameter. */ /*****************************************************************************/ #pragma mark FSSetInvisible OSErr FSSetInvisible( const FSRef *ref); #pragma mark FSClearInvisible OSErr FSClearInvisible( const FSRef *ref); /* The FSSetInvisible and FSClearInvisible functions set or clear the kIsInvisible bit in the finderFlags field of the specified file or directory's finder information. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSSetNameLocked OSErr FSSetNameLocked( const FSRef *ref); #pragma mark FSClearNameLocked OSErr FSClearNameLocked( const FSRef *ref); /* The FSSetNameLocked and FSClearNameLocked functions set or clear the kNameLocked bit bit in the finderFlags field of the specified file or directory's finder information. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSSetIsStationery OSErr FSSetIsStationery( const FSRef *ref); #pragma mark FSClearIsStationery OSErr FSClearIsStationery( const FSRef *ref); /* The FSSetIsStationery and FSClearIsStationery functions set or clear the kIsStationery bit bit in the finderFlags field of the specified file or directory's finder information. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSSetHasCustomIcon OSErr FSSetHasCustomIcon( const FSRef *ref); #pragma mark FSClearHasCustomIcon OSErr FSClearHasCustomIcon( const FSRef *ref); /* The FSSetHasCustomIcon and FSClearHasCustomIcon functions set or clear the kHasCustomIcon bit bit in the finderFlags field of the specified file or directory's finder information. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSClearHasBeenInited OSErr FSClearHasBeenInited( const FSRef *ref); /* The FSClearHasBeenInited function clears the kHasBeenInited bit in the finderFlags field of the specified file or directory's finder information. Note: There is no FSSetHasBeenInited function because ONLY the Finder should set the kHasBeenInited bit. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSCopyFileMgrAttributes OSErr FSCopyFileMgrAttributes( const FSRef *sourceRef, const FSRef *destinationRef, Boolean copyLockBit); /* The CopyFileMgrAttributes function copies all File Manager attributes from the source file or directory to the destination file or directory. If copyLockBit is true, then set the locked state of the destination to match the source. sourceRef --> FSRef to a file or directory. destinationRef --> FSRef to a file or directory. copyLockBit --> If true, set the locked state of the destination to match the source. */ /*****************************************************************************/ #pragma mark FSMoveRenameObjectUnicode OSErr FSMoveRenameObjectUnicode( const FSRef *ref, const FSRef *destDirectory, UniCharCount nameLength, const UniChar *name, /* can be NULL (no rename during move) */ TextEncoding textEncodingHint, FSRef *newRef); /* if function fails along the way, newRef is final location of file */ /* The FSMoveRenameObjectUnicode function moves a file or directory and optionally renames it. The source and destination locations must be on the same volume. Note: If the input ref parameter is invalid, this call will fail and newRef, like ref, will be invalid. ref --> FSRef to a file or directory. destDirectory --> FSRef to the destination directory. nameLength --> Number of UniChar in name parameter. name --> An Unicode string with the new name for the moved object, or NULL if no rename is wanted. textEncodingHint --> The text encoding hint used for the rename. You can pass kTextEncodingUnknown to use the "default" textEncodingHint. newRef <-- The new FSRef of the object moved. Note that if this function fails at any step along the way, newRef is still then final location of the object. */ /*****************************************************************************/ #pragma mark FSDeleteContainerContents OSErr FSDeleteContainerContents( const FSRef *container); /* The FSDeleteContainerContents function deletes the contents of a container directory. All files and subdirectories in the specified container are deleted. If a locked file or directory is encountered, it is unlocked and then deleted. If any unexpected errors are encountered, FSDeleteContainerContents quits and returns to the caller. container --> FSRef to a directory. __________ Also see: FSDeleteContainer */ /*****************************************************************************/ #pragma mark FSDeleteContainer OSErr FSDeleteContainer( const FSRef *container); /* The FSDeleteContainer function deletes a container directory and its contents. All files and subdirectories in the specified container are deleted. If a locked file or directory is encountered, it is unlocked and then deleted. After deleting the container's contents, the container is deleted. If any unexpected errors are encountered, FSDeleteContainer quits and returns to the caller. container --> FSRef to a directory. __________ Also see: FSDeleteContainerContents */ /*****************************************************************************/ #pragma mark IterateContainerFilterProcPtr typedef CALLBACK_API( Boolean , IterateContainerFilterProcPtr ) ( Boolean containerChanged, ItemCount currentLevel, const FSCatalogInfo *catalogInfo, const FSRef *ref, const FSSpec *spec, const HFSUniStr255 *name, void *yourDataPtr); /* This is the prototype for the IterateContainerFilterProc function which is called once for each file and directory found by FSIterateContainer. The IterateContainerFilterProc can use the read-only data it receives for whatever it wants. The result of the IterateContainerFilterProc function indicates if iteration should be stopped. To stop iteration, return true; to continue iteration, return false. The yourDataPtr parameter can point to whatever data structure you might want to access from within the IterateContainerFilterProc. containerChanged --> Set to true if the container's contents changed during iteration. currentLevel --> The current recursion level into the container. 1 = the container, 2 = the container's immediate subdirectories, etc. catalogInfo --> The catalog information for the current object. Only the fields requested by the whichInfo parameter passed to FSIterateContainer are valid. ref --> The FSRef to the current object. spec --> The FSSpec to the current object if the wantFSSpec parameter passed to FSIterateContainer is true. name --> The name of the current object if the wantName parameter passed to FSIterateContainer is true. yourDataPtr --> An optional pointer to whatever data structure you might want to access from within the IterateFilterProc. result <-- To stop iteration, return true; to continue iteration, return false. __________ Also see: FSIterateContainer */ /*****************************************************************************/ #pragma mark CallIterateContainerFilterProc #define CallIterateContainerFilterProc(userRoutine, containerChanged, currentLevel, catalogInfo, ref, spec, name, yourDataPtr) \ (*(userRoutine))((containerChanged), (currentLevel), (catalogInfo), (ref), (spec), (name), (yourDataPtr)) /*****************************************************************************/ #pragma mark FSIterateContainer OSErr FSIterateContainer( const FSRef *container, ItemCount maxLevels, FSCatalogInfoBitmap whichInfo, Boolean wantFSSpec, Boolean wantName, IterateContainerFilterProcPtr iterateFilter, void *yourDataPtr); /* The FSIterateContainer function performs a recursive iteration (scan) of the specified container directory and calls your IterateContainerFilterProc function once for each file and directory found. The maxLevels parameter lets you control how deep the recursion goes. If maxLevels is 1, FSIterateContainer only scans the specified directory; if maxLevels is 2, FSIterateContainer scans the specified directory and one subdirectory below the specified directory; etc. Set maxLevels to zero to scan all levels. The yourDataPtr parameter can point to whatever data structure you might want to access from within your IterateContainerFilterProc. container --> The FSRef to the container directory to iterate. maxLevels --> Maximum number of directory levels to scan or zero to scan all directory levels. whichInfo --> The fields of the FSCatalogInfo you wish to get. wantFSSpec --> Set to true if you want the FSSpec to each object passed to your IterateContainerFilterProc. wantName --> Set to true if you want the name of each object passed to your IterateContainerFilterProc. iterateFilter --> A pointer to the IterateContainerFilterProc you want called once for each file and directory found by FSIterateContainer. yourDataPtr --> An optional pointer to whatever data structure you might want to access from within the IterateFilterProc. */ /*****************************************************************************/ #pragma mark FSGetDirectoryItems OSErr FSGetDirectoryItems( const FSRef *container, FSRef ***refsHandle, /* pointer to handle of FSRefs */ ItemCount *numRefs, Boolean *containerChanged); /* The FSGetDirectoryItems function returns the list of items in the specified container. The array of FSRef records is returned in a Handle, refsHandle, which is allocated by FSGetDirectoryItems. The caller is responsible for disposing of refsHandle if the FSGetDirectoryItems returns noErr. container --> FSRef to a directory. refsHandle <-- Pointer to an FSRef Handle where the array of FSRefs is to be returned. numRefs <-- The number of FSRefs returned in the array. containerChanged <-- Set to true if the container changes while the list of items is being obtained. */ /*****************************************************************************/ #pragma mark FSExchangeObjectsCompat OSErr FSExchangeObjectsCompat( const FSRef *sourceRef, const FSRef *destRef, FSRef *newSourceRef, FSRef *newDestRef); /* The FSExchangeObjectsCompat function exchanges the data between two files. The FSExchangeObjectsCompat function is an enhanced version of FSExchangeObjects function. The two enhancements FSExchangeObjectsCompat provides are: 1, FSExchangeObjectsCompat will work on volumes which do not support FSExchangeObjects. FSExchangeObjectsCompat does this by emulating FSExchangeObjects through a series of File Manager operations. If there is a failure at any step along the way, FSExchangeObjectsCompat attempts to undo any steps already taken to leave the files in their original state in their original locations. 2. FSExchangeObjectsCompat returns new FSRefs to the source and destination files. Note that if this function fails at any step along the way, newSourceRef and newDestRef still give you access to the final locations of the files being exchanged -- even if they are renamed or not in their original locations. sourceRef --> FSRef to the source file. destRef --> FSRef to the destination file. newSourceRef <-- The new FSRef to the source file. newDestRef <-- The new FSRef to the destination file. */ /*****************************************************************************/ #pragma mark ----- Shared Environment Routines ----- /*****************************************************************************/ #if 0 /* These methods were added in 10.4, and are not used by ResKnife, so we just comment them out to avoid errors */ #pragma mark FSLockRange OSErr FSLockRange( SInt16 refNum, SInt32 rangeLength, SInt32 rangeStart); /* The LockRange function locks (denies access to) a portion of a file that was opened with shared read/write permission. refNum --> The file reference number of an open file. rangeLength --> The number of bytes in the range. rangeStart --> The starting byte in the range to lock. __________ Also see: UnlockRange */ /*****************************************************************************/ #pragma mark FSUnlockRange OSErr FSUnlockRange( SInt16 refNum, SInt32 rangeLength, SInt32 rangeStart); /* The UnlockRange function unlocks (allows access to) a previously locked portion of a file that was opened with shared read/write permission. refNum --> The file reference number of an open file. rangeLength --> The number of bytes in the range. rangeStart --> The starting byte in the range to unlock. __________ Also see: LockRange */ #endif /*****************************************************************************/ #pragma mark FSGetDirAccess OSErr FSGetDirAccess( const FSRef *ref, SInt32 *ownerID, /* can be NULL */ SInt32 *groupID, /* can be NULL */ SInt32 *accessRights); /* can be NULL */ /* The FSGetDirAccess function retrieves the directory access control information for a directory on a shared volume. ref --> An FSRef specifying the directory. ownerID <** An optional pointer to a SInt32. If not NULL, the directory's owner ID will be returned in the SInt32. groupID <** An optional pointer to a SInt32. If not NULL, the directory's group ID, or 0 if no group affiliation, will be returned in the SInt32. accessRights <** An optional pointer to a SInt32. If not NULL, the directory's access rights will be returned in the SInt32. __________ Also see: FSSetDirAccess, FSMapID, FSMapName */ /*****************************************************************************/ #pragma mark FSSetDirAccess OSErr FSSetDirAccess( const FSRef *ref, SInt32 ownerID, SInt32 groupID, SInt32 accessRights); /* The FSpSetDirAccess function changes the directory access control information for a directory on a shared volume. You must be the owner of a directory to change its access control information. ref --> An FSRef specifying the directory. ownerID --> The directory's owner ID. groupID --> The directory's group ID or 0 if no group affiliation. accessRights --> The directory's access rights. __________ Also see: FSGetDirAccess, FSMapID, FSMapName */ /*****************************************************************************/ #pragma mark FSGetVolMountInfoSize OSErr FSGetVolMountInfoSize( FSVolumeRefNum volRefNum, SInt16 *size); /* The FSGetVolMountInfoSize function determines the how much space the program needs to allocate for a volume mounting information record. volRefNum --> Volume specification. size <-- The space needed (in bytes) of the volume mounting information record. __________ Also see: FSGetVolMountInfo, VolumeMount */ /*****************************************************************************/ #pragma mark FSGetVolMountInfo OSErr FSGetVolMountInfo( FSVolumeRefNum volRefNum, void *volMountInfo); /* The FSGetVolMountInfo function retrieves a volume mounting information record containing all the information needed to mount the volume, except for passwords. volRefNum --> Volume specification. volMountInfo <-- The volume mounting information. __________ Also see: FSGetVolMountInfoSize, VolumeMount */ /*****************************************************************************/ #if 0 /* This method were added in 10.4, and are not used by ResKnife, so we just comment it out to avoid errors */ #pragma mark FSVolumeMount OSErr FSVolumeMount( const void *volMountInfo, FSVolumeRefNum *volRefNum); /* The VolumeMount function mounts a volume using a volume mounting information record. volMountInfo --> A volume mounting information record. volRefNum <-- The volume reference number. __________ Also see: FSGetVolMountInfoSize, FSGetVolMountInfo */ #endif /*****************************************************************************/ #pragma mark FSMapID OSErr FSMapID( FSVolumeRefNum volRefNum, SInt32 ugID, SInt16 objType, Str31 name); /* The FSMapID function determines the name of a user or group if you know the user or group ID. volRefNum --> Volume specification. objType --> The mapping function code: kOwnerID2Name to map a user ID to a user name kGroupID2Name to map a group ID to a group name name <** An optional pointer to a buffer (minimum Str31). If not NULL, the user or group name will be returned in the buffer. __________ Also see: FSGetDirAccess, FSSetDirAccess, FSMapName */ /*****************************************************************************/ #pragma mark FSMapName OSErr FSMapName( FSVolumeRefNum volRefNum, ConstStr255Param name, SInt16 objType, SInt32 *ugID); /* The FSMapName function determines the user or group ID if you know the user or group name. volRefNum --> Volume specification. name --> The user or group name. objType --> The mapping function code: kOwnerName2ID to map a user name to a user ID kGroupName2ID to map a user name to a group ID ugID <-- The user or group ID. __________ Also see: FSGetDirAccess, FSSetDirAccess, FSMapID */ /*****************************************************************************/ #pragma mark FSCopyFile OSErr FSCopyFile( const FSRef *srcFileRef, const FSRef *dstDirectoryRef, UniCharCount nameLength, const UniChar *copyName, /* can be NULL (no rename during copy) */ TextEncoding textEncodingHint, FSRef *newRef); /* can be NULL */ /* The FSCopyFile function duplicates a file and optionally renames it. The source and destination volumes must be on the same file server. This function instructs the server to copy the file. srcFileRef --> An FSRef specifying the source file. dstDirectoryRef --> An FSRef specifying the destination directory. nameLength --> Number of UniChar in copyName parameter (ignored if copyName is NULL). copyName --> Points to the new file name if the file is to be renamed, or NULL if the file isn't to be renamed. textEncodingHint --> The text encoding hint used for the rename. You can pass kTextEncodingUnknown to use the "default" textEncodingHint. newRef <** An optional pointer to a FSRef. If not NULL, the FSRef of the duplicated file will be returned in the FSRef. */ /*****************************************************************************/ #pragma mark FSMoveRename OSErr FSMoveRename( const FSRef *srcFileRef, const FSRef *dstDirectoryRef, UniCharCount nameLength, const UniChar *moveName, /* can be NULL (no rename during move) */ TextEncoding textEncodingHint, FSRef *newRef); /* can be NULL */ /* The FSMoveRename function moves a file or directory (object), and optionally renames it. The source and destination locations must be on the same shared volume. srcFileRef --> An FSRef specifying the source file. dstDirectoryRef --> An FSRef specifying the destination directory. nameLength --> Number of UniChar in moveName parameter (ignored if copyName is NULL) moveName --> Points to the new object name if the object is to be renamed, or NULL if the object isn't to be renamed. textEncodingHint --> The text encoding hint used for the rename. You can pass kTextEncodingUnknown to use the "default" textEncodingHint. newRef <** An optional pointer to a FSRef. If not NULL, the FSRef of the moved object will be returned in the FSRef. */ /*****************************************************************************/ #pragma mark ----- File ID Routines ----- /*****************************************************************************/ #pragma mark FSResolveFileIDRef OSErr FSResolveFileIDRef( FSVolumeRefNum volRefNum, SInt32 fileID, FSRef *ref); /* The FSResolveFileIDRef function returns an FSRef for the file with the specified file ID reference. volRefNum --> Volume specification. fileID --> The file ID reference. ref <-- The FSRef for the file ID reference. __________ Also see: FSCreateFileIDRef, FSDeleteFileIDRef */ /*****************************************************************************/ #pragma mark FSCreateFileIDRef OSErr FSCreateFileIDRef( const FSRef *ref, SInt32 *fileID); /* The FSCreateFileIDRef function creates a file ID reference for the specified file, or if a file ID reference already exists, supplies the file ID reference and returns the result code fidExists or afpIDExists. ref --> The FSRef for the file. fileID <-- The file ID reference (if result is noErr, fidExists, or afpIDExists). __________ Also see: GetFSRefFromFileIDRef, FSDeleteFileIDRef */ /*****************************************************************************/ #pragma mark FSDeleteFileIDRef /* Why is there no FSDeleteFileIDRef routine? There are two reasons: 1. Since Mac OS 8.1, PBDeleteFileIDRef hasn't deleted file ID references. On HFS volumes, deleting a file ID reference breaks aliases (which use file ID references to track files as they are moved around on a volume) and file ID references are automatically deleted when the file they refer to is deleted. On HFS Plus volumes, file ID references are always created when a file is created, deleted when the file is deleted, and cannot be deleted at any other time. 2. PBDeleteFileIDRef causes a memory access fault under Mac OS X 10.0 through 10.1.x. While this will be fixed in a future release, the implementation, like the Mac OS 8/9 implementation, does not delete file ID references. __________ Also see: GetFSRefFromFileIDRef, FSCreateFileIDRef */ /*****************************************************************************/ #pragma mark ----- Utility Routines ----- /*****************************************************************************/ #pragma mark GetTempBuffer Ptr GetTempBuffer( ByteCount buffReqSize, ByteCount *buffActSize); /* The GetTempBuffer function allocates a temporary buffer for file system operations which is at least 4K bytes and a multiple of 4K bytes. buffReqSize --> Size you'd like the buffer to be. buffActSize <-- The size of the buffer allocated. function result <-- Pointer to memory allocated, or NULL if no memory was available. The caller is responsible for disposing of this buffer with DisposePtr. */ /*****************************************************************************/ #pragma mark FileRefNumGetFSRef OSErr FileRefNumGetFSRef( short refNum, FSRef *ref); /* The FileRefNumGetFSRef function gets the FSRef of an open file. refNum --> The file reference number of an open file. ref <-- The FSRef to the open file. */ /*****************************************************************************/ #pragma mark FSSetDefault OSErr FSSetDefault( const FSRef *newDefault, FSRef *oldDefault); /* The FSSetDefault function sets the current working directory to the directory specified by newDefault. The previous current working directory is returned in oldDefault and must be used to restore the current working directory to its previous state with the FSRestoreDefault function. These two functions are designed to be used as a wrapper around Standard I/O routines where the location of the file is implied to be the current working directory. This is how you should use these functions: result = FSSetDefault(&newDefault, &oldDefault); if ( noErr == result ) { // call the Stdio functions like remove, rename, // fopen, freopen, etc here! result = FSRestoreDefault(&oldDefault); } newDefault --> An FSRef that specifies the new current working directory. oldDefault <-- The previous current working directory's FSRef. __________ Also see: FSRestoreDefault */ /*****************************************************************************/ #pragma mark FSRestoreDefault OSErr FSRestoreDefault( const FSRef *oldDefault); /* The FSRestoreDefault function restores the current working directory to the directory specified by oldDefault. The oldDefault parameter was previously obtained from the FSSetDefault function. These two functions are designed to be used as a wrapper around Standard I/O routines where the location of the file is implied to be the current working directory. This is how you should use these functions: result = FSSetDefault(&newDefault, &oldDefault); if ( noErr == result ) { // call the Stdio functions like remove, rename, // fopen, freopen, etc here! result = FSRestoreDefault(&oldDefault); } oldDefault --> The FSRef of the location to restore. __________ Also see: FSSetDefault */ /*****************************************************************************/ #if PRAGMA_STRUCT_ALIGN #pragma options align=reset #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(pop) #elif PRAGMA_STRUCT_PACK #pragma pack() #endif #ifdef PRAGMA_IMPORT_OFF #pragma import off #elif PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #endif /* __MOREFILESX__ */ \ No newline at end of file +/* File: MoreFilesX.h Contains: A collection of useful high-level File Manager routines which use the HFS Plus APIs wherever possible. Version: MoreFilesX 1.0 Copyright: Š 1992-2002 by Apple Computer, Inc., all rights reserved. You may incorporate this sample code into your applications without restriction, though the sample code has been provided "AS IS" and the responsibility for its operation is 100% yours. However, what you are not permitted to do is to redistribute the source as "DSC Sample Code" after having made changes. If you're going to re-distribute the source, we require that you make it clear in the source that the code was descended from Apple Sample Code, but that you've made changes. File Ownership: DRI: Apple Macintosh Developer Technical Support Other Contact: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ Technology: DTS Sample Code Writers: (JL) Jim Luther Change History (most recent first): <1> 1/25/02 JL MoreFilesX 1.0 Notes: What do those arrows in the documentation for each routine mean? --> The parameter is an input <-- The parameter is an output. The pointer to the variable where the output will be returned (must not be NULL). <** The parameter is an optional output. If it is not a NULL pointer, it points to the variable where the output will be returned. If it is a NULL pointer, the output will not be returned and will possibly let the routine and the File Manager do less work. If you don't need an optional output, don't ask for it. **> The parameter is an optional input. If it is not a NULL pointer, it points to the variable containing the input data. If it is a NULL pointer, the input is not used and will possibly let the routine and the File Manager do less work. */ #ifndef __MOREFILESX__ #define __MOREFILESX__ #ifndef __MACTYPES__ #include #endif #ifndef __FINDER__ #include #endif #ifndef __FILES__ #include #endif #ifndef __TEXTCOMMON__ #include #endif #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #if PRAGMA_STRUCT_ALIGN #pragma options align=mac68k #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(push, 2) #elif PRAGMA_STRUCT_PACK #pragma pack(2) #endif /*****************************************************************************/ #pragma mark ----- FinderInfo and ExtendedFinderInfo ----- /* * FSGetFinderInfo and FSSetFinderInfo use these unions for Finder information. */ union FinderInfo { FileInfo file; FolderInfo folder; }; typedef union FinderInfo FinderInfo; union ExtendedFinderInfo { ExtendedFileInfo file; ExtendedFolderInfo folder; }; typedef union ExtendedFinderInfo ExtendedFinderInfo; /*****************************************************************************/ #pragma mark ----- GetVolParmsInfoBuffer Macros ----- /* * Macros to get information out of GetVolParmsInfoBuffer. */ /* version 1 field getters */ #define GetVolParmsInfoVersion(volParms) \ ((volParms)->vMVersion) #define GetVolParmsInfoAttrib(volParms) \ ((volParms)->vMAttrib) #define GetVolParmsInfoLocalHand(volParms) \ ((volParms)->vMLocalHand) #define GetVolParmsInfoServerAdr(volParms) \ ((volParms)->vMServerAdr) /* version 2 field getters (assume zero result if version < 2) */ #define GetVolParmsInfoVolumeGrade(volParms) \ (((volParms)->vMVersion >= 2) ? (volParms)->vMVolumeGrade : 0) #define GetVolParmsInfoForeignPrivID(volParms) \ (((volParms)->vMVersion >= 2) ? (volParms)->vMForeignPrivID : 0) /* version 3 field getters (assume zero result if version < 3) */ #define GetVolParmsInfoExtendedAttributes(volParms) \ (((volParms)->vMVersion >= 3) ? (volParms)->vMExtendedAttributes : 0) /* attribute bits supported by all versions of GetVolParmsInfoBuffer */ #define VolIsNetworkVolume(volParms) \ ((volParms)->vMServerAdr != 0) #define VolHasLimitFCBs(volParms) \ (((volParms)->vMAttrib & (1L << bLimitFCBs)) != 0) #define VolHasLocalWList(volParms) \ (((volParms)->vMAttrib & (1L << bLocalWList)) != 0) #define VolHasNoMiniFndr(volParms) \ (((volParms)->vMAttrib & (1L << bNoMiniFndr)) != 0) #define VolHasNoVNEdit(volParms) \ (((volParms)->vMAttrib & (1L << bNoVNEdit)) != 0) #define VolHasNoLclSync(volParms) \ (((volParms)->vMAttrib & (1L << bNoLclSync)) != 0) #define VolHasTrshOffLine(volParms) \ (((volParms)->vMAttrib & (1L << bTrshOffLine)) != 0) #define VolHasNoSwitchTo(volParms) \ (((volParms)->vMAttrib & (1L << bNoSwitchTo)) != 0) #define VolHasNoDeskItems(volParms) \ (((volParms)->vMAttrib & (1L << bNoDeskItems)) != 0) #define VolHasNoBootBlks(volParms) \ (((volParms)->vMAttrib & (1L << bNoBootBlks)) != 0) #define VolHasAccessCntl(volParms) \ (((volParms)->vMAttrib & (1L << bAccessCntl)) != 0) #define VolHasNoSysDir(volParms) \ (((volParms)->vMAttrib & (1L << bNoSysDir)) != 0) #define VolHasExtFSVol(volParms) \ (((volParms)->vMAttrib & (1L << bHasExtFSVol)) != 0) #define VolHasOpenDeny(volParms) \ (((volParms)->vMAttrib & (1L << bHasOpenDeny)) != 0) #define VolHasCopyFile(volParms) \ (((volParms)->vMAttrib & (1L << bHasCopyFile)) != 0) #define VolHasMoveRename(volParms) \ (((volParms)->vMAttrib & (1L << bHasMoveRename)) != 0) #define VolHasDesktopMgr(volParms) \ (((volParms)->vMAttrib & (1L << bHasDesktopMgr)) != 0) #define VolHasShortName(volParms) \ (((volParms)->vMAttrib & (1L << bHasShortName)) != 0) #define VolHasFolderLock(volParms) \ (((volParms)->vMAttrib & (1L << bHasFolderLock)) != 0) #define VolHasPersonalAccessPrivileges(volParms) \ (((volParms)->vMAttrib & (1L << bHasPersonalAccessPrivileges)) != 0) #define VolHasUserGroupList(volParms) \ (((volParms)->vMAttrib & (1L << bHasUserGroupList)) != 0) #define VolHasCatSearch(volParms) \ (((volParms)->vMAttrib & (1L << bHasCatSearch)) != 0) #define VolHasFileIDs(volParms) \ (((volParms)->vMAttrib & (1L << bHasFileIDs)) != 0) #define VolHasBTreeMgr(volParms) \ (((volParms)->vMAttrib & (1L << bHasBTreeMgr)) != 0) #define VolHasBlankAccessPrivileges(volParms) \ (((volParms)->vMAttrib & (1L << bHasBlankAccessPrivileges)) != 0) #define VolSupportsAsyncRequests(volParms) \ (((volParms)->vMAttrib & (1L << bSupportsAsyncRequests)) != 0) #define VolSupportsTrashVolumeCache(volParms) \ (((volParms)->vMAttrib & (1L << bSupportsTrashVolumeCache)) != 0) /* attribute bits supported by version 3 and greater versions of GetVolParmsInfoBuffer */ #define VolIsEjectable(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bIsEjectable)) != 0) #define VolSupportsHFSPlusAPIs(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsHFSPlusAPIs)) != 0) #define VolSupportsFSCatalogSearch(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsFSCatalogSearch)) != 0) #define VolSupportsFSExchangeObjects(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsFSExchangeObjects)) != 0) #define VolSupports2TBFiles(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupports2TBFiles)) != 0) #define VolSupportsLongNames(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsLongNames)) != 0) #define VolSupportsMultiScriptNames(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsMultiScriptNames)) != 0) #define VolSupportsNamedForks(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsNamedForks)) != 0) #define VolSupportsSubtreeIterators(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsSubtreeIterators)) != 0) #define VolL2PCanMapFileBlocks(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bL2PCanMapFileBlocks)) != 0) #define VolParentModDateChanges(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bParentModDateChanges)) != 0) #define VolAncestorModDateChanges(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bAncestorModDateChanges)) != 0) #define VolSupportsSymbolicLinks(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bSupportsSymbolicLinks)) != 0) #define VolIsAutoMounted(volParms) \ ((GetVolParmsInfoExtendedAttributes(volParms) & (1L << bIsAutoMounted)) != 0) /*****************************************************************************/ #pragma mark ----- userPrivileges Bit Masks and Macros ----- /* * Bit masks and macros to get common information out of userPrivileges byte * returned by FSGetCatalogInfo. * * Note: The userPrivileges byte is the same as the ioACUser byte returned * by PBGetCatInfo, and is the 1's complement of the user's privileges * byte returned in ioACAccess by PBHGetDirAccess. That's where the * ioACUser names came from. * * The userPrivileges are user's effective privileges based on the * user ID and the groups that user belongs to, and the owner, group, * and everyone privileges for the given directory. */ enum { /* mask for just the access restriction bits */ kioACUserAccessMask = (kioACUserNoSeeFolderMask + kioACUserNoSeeFilesMask + kioACUserNoMakeChangesMask), /* common access privilege settings */ kioACUserFull = 0x00, /* no access restiction bits on */ kioACUserNone = kioACUserAccessMask, /* all access restiction bits on */ kioACUserDropBox = (kioACUserNoSeeFolderMask + kioACUserNoSeeFilesMask), /* make changes, but not see files or folders */ kioACUserBulletinBoard = kioACUserNoMakeChangesMask /* see files and folders, but not make changes */ }; /* Macros for testing ioACUser bits. */ #define UserIsOwner(userPrivileges) \ (((userPrivileges) & kioACUserNotOwnerMask) == 0) #define UserHasFullAccess(userPrivileges) \ (((userPrivileges) & (kioACUserAccessMask)) == kioACUserFull) #define UserHasDropBoxAccess(userPrivileges) \ (((userPrivileges) & kioACUserAccessMask) == kioACUserDropBox) #define UserHasBulletinBoard(userPrivileges) \ (((userPrivileges) & kioACUserAccessMask) == kioACUserBulletinBoard) #define UserHasNoAccess(userPrivileges) \ (((userPrivileges) & kioACUserAccessMask) == kioACUserNone) /*****************************************************************************/ #pragma mark ----- File Access Routines ----- /*****************************************************************************/ #pragma mark FSCopyFork OSErr FSCopyFork( SInt16 srcRefNum, SInt16 dstRefNum, void *copyBufferPtr, ByteCount copyBufferSize); /* The FSCopyFork function copies all data from the source fork to the destination fork of open file forks and makes sure the destination EOF is equal to the source EOF. srcRefNum --> The source file reference number. dstRefNum --> The destination file reference number. copyBufferPtr --> Pointer to buffer to use during copy. The buffer should be at least 4K-bytes minimum. The larger the buffer, the faster the copy (up to a point). copyBufferSize --> The size of the copy buffer. */ /*****************************************************************************/ #pragma mark ----- Volume Access Routines ----- /*****************************************************************************/ #pragma mark FSGetVolParms OSErr FSGetVolParms( FSVolumeRefNum volRefNum, UInt32 bufferSize, GetVolParmsInfoBuffer *volParmsInfo, UInt32 *actualInfoSize); /* The FSGetVolParms function returns information about the characteristics of a volume. A result of paramErr usually just means the volume doesn't support GetVolParms and the feature you were going to check for isn't available. volRefNum --> Volume specification. bufferSize --> Size of buffer pointed to by volParmsInfo. volParmsInfo <-- A GetVolParmsInfoBuffer record where the volume attributes information is returned. actualInfoSize <-- The number of bytes actually returned in volParmsInfo. __________ Also see: The GetVolParmsInfoBuffer Macros for checking attribute bits in this file */ /*****************************************************************************/ #pragma mark FSGetVRefNum OSErr FSGetVRefNum( const FSRef *ref, FSVolumeRefNum *vRefNum); /* The FSGetVRefNum function determines the volume reference number of a volume from a FSRef. ref --> The FSRef. vRefNum <-- The volume reference number. */ /*****************************************************************************/ #pragma mark FSGetVInfo OSErr FSGetVInfo( FSVolumeRefNum volume, HFSUniStr255 *volumeName, /* can be NULL */ UInt64 *freeBytes, /* can be NULL */ UInt64 *totalBytes); /* can be NULL */ /* The FSGetVInfo function returns the name, available space (in bytes), and total space (in bytes) for the specified volume. volume --> The volume reference number. volumeName <** An optional pointer to a HFSUniStr255. If not NULL, the volume name will be returned in the HFSUniStr255. freeBytes <** An optional pointer to a UInt64. If not NULL, the number of free bytes on the volume will be returned in the UInt64. totalBytes <** An optional pointer to a UInt64. If not NULL, the total number of bytes on the volume will be returned in the UInt64. */ /*****************************************************************************/ #pragma mark FSGetVolFileSystemID OSErr FSGetVolFileSystemID( FSVolumeRefNum volume, UInt16 *fileSystemID, /* can be NULL */ UInt16 *signature); /* can be NULL */ /* The FSGetVolFileSystemID function returns the file system ID and signature of a mounted volume. The file system ID identifies the file system that handles requests to a particular volume. The signature identifies the volume type of the volume (for example, FSID 0 is Macintosh HFS Plus, HFS or MFS, where a signature of 0x4244 identifies the volume as HFS). Here's a partial list of file system ID numbers (only Apple's file systems are listed): FSID File System ----- ----------------------------------------------------- $0000 Macintosh HFS Plus, HFS or MFS $0100 ProDOS File System $0101 PowerTalk Mail Enclosures $4147 ISO 9660 File Access (through Foreign File Access) $4242 High Sierra File Access (through Foreign File Access) $464D QuickTake File System (through Foreign File Access) $4953 Macintosh PC Exchange (MS-DOS) $4A48 Audio CD Access (through Foreign File Access) $4D4B Apple Photo Access (through Foreign File Access) $6173 AppleShare (later versions of AppleShare only) See the Technical Note "FL 35 - Determining Which File System Is Active" and the "Guide to the File System Manager" for more information. volume --> The volume reference number. fileSystemID <** An optional pointer to a UInt16. If not NULL, the volume's file system ID will be returned in the UInt16. signature <** An optional pointer to a UInt16. If not NULL, the volume's signature will be returned in the UInt16. */ /*****************************************************************************/ #pragma mark FSGetMountedVolumes OSErr FSGetMountedVolumes( FSRef ***volumeRefsHandle, /* pointer to handle of FSRefs */ ItemCount *numVolumes); /* The FSGetMountedVolumes function returns the list of volumes currently mounted in an array of FSRef records. The array of FSRef records is returned in a Handle, volumeRefsHandle, which is allocated by FSGetMountedVolumes. The caller is responsible for disposing of volumeRefsHandle if the FSGetMountedVolumes returns noErr. volumeRefsHandle <-- Pointer to an FSRef Handle where the array of FSRefs is to be returned. numVolumes <-- The number of volumes returned in the array. */ /*****************************************************************************/ #pragma mark ----- FSRef/FSpec/Path/Name Conversion Routines ----- /*****************************************************************************/ #pragma mark FSRefMakeFSSpec OSErr FSRefMakeFSSpec( const FSRef *ref, FSSpec *spec); /* The FSRefMakeFSSpec function returns an FSSpec for the file or directory specified by the ref parameter. ref --> An FSRef specifying the file or directory. spec <-- The FSSpec. */ /*****************************************************************************/ #pragma mark FSMakeFSRef OSErr FSMakeFSRef( FSVolumeRefNum volRefNum, SInt32 dirID, ConstStr255Param name, FSRef *ref); /* The FSMakeFSRef function creates an FSRef from the traditional volume reference number, directory ID and pathname inputs. It is functionally equivalent to FSMakeFSSpec followed by FSpMakeFSRef. volRefNum --> Volume specification. dirID --> Directory specification. name --> The file or directory name, or NULL. ref <-- The FSRef. */ /*****************************************************************************/ #pragma mark FSMakePath OSStatus FSMakePath( SInt16 vRefNum, SInt32 dirID, ConstStr255Param name, UInt8 *path, UInt32 maxPathSize); /* The FSMakePath function creates a pathname from the traditional volume reference number, directory ID, and pathname inputs. It is functionally equivalent to FSMakeFSSpec, FSpMakeFSRef, FSRefMakePath. volRefNum --> Volume specification. dirID --> Directory specification. name --> The file or directory name, or NULL. path <-- A pointer to a buffer which FSMakePath will fill with a C string representing the pathname to the file or directory specified. The format of the pathname returned can be determined with the Gestalt selector gestaltFSAttr's gestaltFSUsesPOSIXPathsForConversion bit. If the gestaltFSUsesPOSIXPathsForConversion bit is clear, the pathname is a Mac OS File Manager full pathname in a C string, and file or directory names in the pathname may be mangled as returned by the File Manager. If the gestaltFSUsesPOSIXPathsForConversion bit is set, the pathname is a UTF8 encoded POSIX absolute pathname in a C string. In either case, the pathname returned can be passed back to FSPathMakeRef to create an FSRef to the file or directory, or FSPathMakeFSSpec to craete an FSSpec to the file or directory. maxPathSize --> The size of the path buffer in bytes. If the path buffer is too small for the pathname string, FSMakePath returns pathTooLongErr or buffersTooSmall. */ /*****************************************************************************/ #pragma mark FSPathMakeFSSpec OSStatus FSPathMakeFSSpec( const UInt8 *path, FSSpec *spec, Boolean *isDirectory); /* can be NULL */ /* The FSPathMakeFSSpec function converts a pathname to an FSSpec. path --> A pointer to a C String that is the pathname. The format of the pathname you must supply can be determined with the Gestalt selector gestaltFSAttr's gestaltFSUsesPOSIXPathsForConversion bit. If the gestaltFSUsesPOSIXPathsForConversion bit is clear, the pathname must be a Mac OS File Manager full pathname in a C string. If the gestaltFSUsesPOSIXPathsForConversion bit is set, the pathname must be a UTF8 encoded POSIX absolute pathname in a C string. spec <-- The FSSpec. isDirectory <** An optional pointer to a Boolean. If not NULL, true will be returned in the Boolean if the specified path is a directory, or false will be returned in the Boolean if the specified path is a file. */ /*****************************************************************************/ #pragma mark UnicodeNameGetHFSName OSErr UnicodeNameGetHFSName( UniCharCount nameLength, const UniChar *name, TextEncoding textEncodingHint, Boolean isVolumeName, Str31 hfsName); /* The UnicodeNameGetHFSName function converts a Unicode string to a Pascal Str31 (or Str27) string using an algorithm similar to that used by the File Manager. Note that if the name is too long or cannot be converted using the given text encoding hint, you will get an error instead of the mangled name that the File Manager would return. nameLength --> Number of UniChar in name parameter. name --> The Unicode string to convert. textEncodingHint --> The text encoding hint used for the conversion. You can pass kTextEncodingUnknown to use the "default" textEncodingHint. isVolumeName --> If true, the output name will be limited to 27 characters (kHFSMaxVolumeNameChars). If false, the output name will be limited to 31 characters (kHFSMaxFileNameChars). hfsName <-- The hfsName as a Pascal string. __________ Also see: HFSNameGetUnicodeName */ /*****************************************************************************/ #pragma mark HFSNameGetUnicodeName OSErr HFSNameGetUnicodeName( ConstStr31Param hfsName, TextEncoding textEncodingHint, HFSUniStr255 *unicodeName); /* The HFSNameGetUnicodeName function converts a Pascal Str31 string to an Unicode HFSUniStr255 string using the same routines as the File Manager. hfsName --> The Pascal string to convert. textEncodingHint --> The text encoding hint used for the conversion. You can pass kTextEncodingUnknown to use the "default" textEncodingHint. unicodeName <-- The Unicode string. __________ Also see: UnicodeNameGetHFSName */ /*****************************************************************************/ #pragma mark ----- File/Directory Manipulation Routines ----- /*****************************************************************************/ #pragma mark FSRefValid Boolean FSRefValid(const FSRef *ref); /* The FSRefValid function determines if an FSRef is valid. If the result is true, then the FSRef refers to an existing file or directory. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSGetParentRef OSErr FSGetParentRef( const FSRef *ref, FSRef *parentRef); /* The FSGetParentRef function gets the parent directory FSRef of the specified object. Note: FSRefs always point to real file system objects. So, there cannot be a FSRef to the parent of volume root directories. If you call FSGetParentRef with a ref to the root directory of a volume, the function result will be noErr and the parentRef will be invalid (using it for other file system requests will fail). ref --> FSRef to a file or directory. parentRef <-- The parent directory's FSRef. */ /*****************************************************************************/ #pragma mark FSGetFileDirName OSErr FSGetFileDirName( const FSRef *ref, HFSUniStr255 *outName); /* The FSGetFileDirName function gets the name of the file or directory specified. ref --> FSRef to a file or directory. outName <-- The file or directory name. */ /*****************************************************************************/ #pragma mark FSGetNodeID OSErr FSGetNodeID( const FSRef *ref, long *nodeID, /* can be NULL */ Boolean *isDirectory); /* can be NULL */ /* The GetNodeIDFromFSRef function gets the node ID number of the file or directory specified (note: the node ID is the directory ID for directories). ref --> FSRef to a file or directory. nodeID <** An optional pointer to a long. If not NULL, the node ID will be returned in the long. isDirectory <** An optional pointer to a Boolean. If not NULL, true will be returned in the Boolean if the object is a directory, or false will be returned in the Boolean if object is a file. */ /*****************************************************************************/ #pragma mark FSGetUserPrivilegesPermissions OSErr FSGetUserPrivilegesPermissions( const FSRef *ref, UInt8 *userPrivileges, /* can be NULL */ UInt32 permissions[4]); /* can be NULL */ /* The FSGetUserPrivilegesPermissions function gets the userPrivileges and/or permissions of the file or directory specified. ref --> FSRef to a file or directory. userPrivileges <** An optional pointer to a UInt8. If not NULL, the userPrivileges will be returned in the UInt8. permissions <** An optional pointer to an UInt32[4] array. If not NULL, the permissions will be returned in the UInt32[4] array. */ /*****************************************************************************/ #pragma mark FSCheckLock OSErr FSCheckLock( const FSRef *ref); /* The FSCheckLock function determines if a file or directory is locked. If FSCheckLock returns noErr, then the file or directory is not locked and the volume it is on is not locked either. If FSCheckLock returns fLckdErr, then the file or directory is locked. If FSCheckLock returns wPrErr, then the volume is locked by hardware (i.e., locked tab on removable media). If FSCheckLock returns vLckdErr, then the volume is locked by software. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSGetForkSizes OSErr FSGetForkSizes( const FSRef *ref, UInt64 *dataLogicalSize, /* can be NULL */ UInt64 *rsrcLogicalSize); /* can be NULL */ /* The FSGetForkSizes returns the size of the data and/or resource fork for the specified file. ref --> FSRef to a file or directory. dataLogicalSize <** An optional pointer to a UInt64. If not NULL, the data fork's size will be returned in the UInt64. rsrcLogicalSize <** An optional pointer to a UInt64. If not NULL, the resource fork's size will be returned in the UInt64. __________ Also see: FSGetTotalForkSizes */ /*****************************************************************************/ #pragma mark FSGetTotalForkSizes OSErr FSGetTotalForkSizes( const FSRef *ref, UInt64 *totalLogicalSize, /* can be NULL */ UInt64 *totalPhysicalSize, /* can be NULL */ ItemCount *forkCount); /* can be NULL */ /* The FSGetTotalForkSizes returns the total logical size and/or the total physical size of the specified file (i.e., it adds the sizes of all file forks). It optionally returns the number of file forks. ref --> FSRef to a file or directory. totalLogicalSize <** An optional pointer to a UInt64. If not NULL, the sum of all fork logical sizes will be returned in the UInt64. totalPhysicalSize <** An optional pointer to a UInt64. If not NULL, the sum of all fork physical sizes will be returned in the UInt64. forkCount <** An optional pointer to a ItemCount. If not NULL, the number of file forks will be returned in the ItemCount. __________ Also see: FSGetForkSizes */ /*****************************************************************************/ #pragma mark FSBumpDate OSErr FSBumpDate( const FSRef *ref); /* The FSBumpDate function changes the content modification date of a file or directory to the current date/time. If the content modification date is already equal to the current date/time, then add one second to the content modification date. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSGetFinderInfo OSErr FSGetFinderInfo( const FSRef *ref, FinderInfo *info, /* can be NULL */ ExtendedFinderInfo *extendedInfo, /* can be NULL */ Boolean *isDirectory); /* can be NULL */ /* The FSGetFinderInfo function gets the finder information for a file or directory. ref --> FSRef to a file or directory. info <** An optional pointer to a FinderInfo. If not NULL, the FileInfo (if ref is a file) or the FolderInfo (if ref is a folder) will be returned in the FinderInfo. extendedInfo <** An optional pointer to a ExtendedFinderInfo. If not NULL, the ExtendedFileInfo (if ref is a file) or the ExtendedFolderInfo (if ref is a folder) will be returned in the ExtendedFinderInfo. isDirectory <** An optional pointer to a Boolean. If not NULL, true will be returned in the Boolean if the object is a directory, or false will be returned in the Boolean if object is a file. __________ Also see: FSSetFinderInfo */ /*****************************************************************************/ #pragma mark FSSetFinderInfo OSErr FSSetFinderInfo( const FSRef *ref, const FinderInfo *info, /* can be NULL */ const ExtendedFinderInfo *extendedInfo); /* can be NULL */ /* The FSSetFinderInfo function sets the finder information for a file or directory. ref --> FSRef to a file or directory. info **> A pointer to a FinderInfo record with the new FileInfo (if ref is a file) or new FolderInfo (if ref is a folder), or NULL if the FinderInfo is not to be changed. extendedInfo **> A pointer to a FinderInfo record with the new ExtendedFileInfo (if ref is a file) or new ExtendedFolderInfo (if ref is a folder), or NULL if the ExtendedFinderInfo is not to be changed. __________ Also see: FSGetFinderInfo */ /*****************************************************************************/ #pragma mark FSChangeCreatorType OSErr FSChangeCreatorType( const FSRef *ref, OSType fileCreator, OSType fileType); /* The FSChangeCreatorType function changes the creator and/or file type of a file. ref --> FSRef to a file. creator --> The new creator type or 0x00000000 to leave the creator type alone. fileType --> The new file type or 0x00000000 to leave the file type alone. */ /*****************************************************************************/ #pragma mark FSChangeFinderFlags OSErr FSChangeFinderFlags( const FSRef *ref, Boolean setBits, UInt16 flagBits); /* The FSChangeFinderFlags function sets or clears flag bits in the finderFlags field of a file's FileInfo record or a directory's FolderInfo record. ref --> FSRef to a file or directory. setBits --> If true, then set the bits specified in flagBits. If false, then clear the bits specified in flagBits. flagBits --> The flagBits parameter specifies which Finder Flag bits to set or clear. If a bit in flagBits is set, then the same bit in fdFlags is either set or cleared depending on the state of the setBits parameter. */ /*****************************************************************************/ #pragma mark FSSetInvisible OSErr FSSetInvisible( const FSRef *ref); #pragma mark FSClearInvisible OSErr FSClearInvisible( const FSRef *ref); /* The FSSetInvisible and FSClearInvisible functions set or clear the kIsInvisible bit in the finderFlags field of the specified file or directory's finder information. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSSetNameLocked OSErr FSSetNameLocked( const FSRef *ref); #pragma mark FSClearNameLocked OSErr FSClearNameLocked( const FSRef *ref); /* The FSSetNameLocked and FSClearNameLocked functions set or clear the kNameLocked bit bit in the finderFlags field of the specified file or directory's finder information. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSSetIsStationery OSErr FSSetIsStationery( const FSRef *ref); #pragma mark FSClearIsStationery OSErr FSClearIsStationery( const FSRef *ref); /* The FSSetIsStationery and FSClearIsStationery functions set or clear the kIsStationery bit bit in the finderFlags field of the specified file or directory's finder information. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSSetHasCustomIcon OSErr FSSetHasCustomIcon( const FSRef *ref); #pragma mark FSClearHasCustomIcon OSErr FSClearHasCustomIcon( const FSRef *ref); /* The FSSetHasCustomIcon and FSClearHasCustomIcon functions set or clear the kHasCustomIcon bit bit in the finderFlags field of the specified file or directory's finder information. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSClearHasBeenInited OSErr FSClearHasBeenInited( const FSRef *ref); /* The FSClearHasBeenInited function clears the kHasBeenInited bit in the finderFlags field of the specified file or directory's finder information. Note: There is no FSSetHasBeenInited function because ONLY the Finder should set the kHasBeenInited bit. ref --> FSRef to a file or directory. */ /*****************************************************************************/ #pragma mark FSCopyFileMgrAttributes OSErr FSCopyFileMgrAttributes( const FSRef *sourceRef, const FSRef *destinationRef, Boolean copyLockBit); /* The CopyFileMgrAttributes function copies all File Manager attributes from the source file or directory to the destination file or directory. If copyLockBit is true, then set the locked state of the destination to match the source. sourceRef --> FSRef to a file or directory. destinationRef --> FSRef to a file or directory. copyLockBit --> If true, set the locked state of the destination to match the source. */ /*****************************************************************************/ #pragma mark FSMoveRenameObjectUnicode OSErr FSMoveRenameObjectUnicode( const FSRef *ref, const FSRef *destDirectory, UniCharCount nameLength, const UniChar *name, /* can be NULL (no rename during move) */ TextEncoding textEncodingHint, FSRef *newRef); /* if function fails along the way, newRef is final location of file */ /* The FSMoveRenameObjectUnicode function moves a file or directory and optionally renames it. The source and destination locations must be on the same volume. Note: If the input ref parameter is invalid, this call will fail and newRef, like ref, will be invalid. ref --> FSRef to a file or directory. destDirectory --> FSRef to the destination directory. nameLength --> Number of UniChar in name parameter. name --> An Unicode string with the new name for the moved object, or NULL if no rename is wanted. textEncodingHint --> The text encoding hint used for the rename. You can pass kTextEncodingUnknown to use the "default" textEncodingHint. newRef <-- The new FSRef of the object moved. Note that if this function fails at any step along the way, newRef is still then final location of the object. */ /*****************************************************************************/ #pragma mark FSDeleteContainerContents OSErr FSDeleteContainerContents( const FSRef *container); /* The FSDeleteContainerContents function deletes the contents of a container directory. All files and subdirectories in the specified container are deleted. If a locked file or directory is encountered, it is unlocked and then deleted. If any unexpected errors are encountered, FSDeleteContainerContents quits and returns to the caller. container --> FSRef to a directory. __________ Also see: FSDeleteContainer */ /*****************************************************************************/ #pragma mark FSDeleteContainer OSErr FSDeleteContainer( const FSRef *container); /* The FSDeleteContainer function deletes a container directory and its contents. All files and subdirectories in the specified container are deleted. If a locked file or directory is encountered, it is unlocked and then deleted. After deleting the container's contents, the container is deleted. If any unexpected errors are encountered, FSDeleteContainer quits and returns to the caller. container --> FSRef to a directory. __________ Also see: FSDeleteContainerContents */ /*****************************************************************************/ #pragma mark IterateContainerFilterProcPtr typedef CALLBACK_API( Boolean , IterateContainerFilterProcPtr ) ( Boolean containerChanged, ItemCount currentLevel, const FSCatalogInfo *catalogInfo, const FSRef *ref, const FSSpec *spec, const HFSUniStr255 *name, void *yourDataPtr); /* This is the prototype for the IterateContainerFilterProc function which is called once for each file and directory found by FSIterateContainer. The IterateContainerFilterProc can use the read-only data it receives for whatever it wants. The result of the IterateContainerFilterProc function indicates if iteration should be stopped. To stop iteration, return true; to continue iteration, return false. The yourDataPtr parameter can point to whatever data structure you might want to access from within the IterateContainerFilterProc. containerChanged --> Set to true if the container's contents changed during iteration. currentLevel --> The current recursion level into the container. 1 = the container, 2 = the container's immediate subdirectories, etc. catalogInfo --> The catalog information for the current object. Only the fields requested by the whichInfo parameter passed to FSIterateContainer are valid. ref --> The FSRef to the current object. spec --> The FSSpec to the current object if the wantFSSpec parameter passed to FSIterateContainer is true. name --> The name of the current object if the wantName parameter passed to FSIterateContainer is true. yourDataPtr --> An optional pointer to whatever data structure you might want to access from within the IterateFilterProc. result <-- To stop iteration, return true; to continue iteration, return false. __________ Also see: FSIterateContainer */ /*****************************************************************************/ #pragma mark CallIterateContainerFilterProc #define CallIterateContainerFilterProc(userRoutine, containerChanged, currentLevel, catalogInfo, ref, spec, name, yourDataPtr) \ (*(userRoutine))((containerChanged), (currentLevel), (catalogInfo), (ref), (spec), (name), (yourDataPtr)) /*****************************************************************************/ #pragma mark FSIterateContainer OSErr FSIterateContainer( const FSRef *container, ItemCount maxLevels, FSCatalogInfoBitmap whichInfo, Boolean wantFSSpec, Boolean wantName, IterateContainerFilterProcPtr iterateFilter, void *yourDataPtr); /* The FSIterateContainer function performs a recursive iteration (scan) of the specified container directory and calls your IterateContainerFilterProc function once for each file and directory found. The maxLevels parameter lets you control how deep the recursion goes. If maxLevels is 1, FSIterateContainer only scans the specified directory; if maxLevels is 2, FSIterateContainer scans the specified directory and one subdirectory below the specified directory; etc. Set maxLevels to zero to scan all levels. The yourDataPtr parameter can point to whatever data structure you might want to access from within your IterateContainerFilterProc. container --> The FSRef to the container directory to iterate. maxLevels --> Maximum number of directory levels to scan or zero to scan all directory levels. whichInfo --> The fields of the FSCatalogInfo you wish to get. wantFSSpec --> Set to true if you want the FSSpec to each object passed to your IterateContainerFilterProc. wantName --> Set to true if you want the name of each object passed to your IterateContainerFilterProc. iterateFilter --> A pointer to the IterateContainerFilterProc you want called once for each file and directory found by FSIterateContainer. yourDataPtr --> An optional pointer to whatever data structure you might want to access from within the IterateFilterProc. */ /*****************************************************************************/ #pragma mark FSGetDirectoryItems OSErr FSGetDirectoryItems( const FSRef *container, FSRef ***refsHandle, /* pointer to handle of FSRefs */ ItemCount *numRefs, Boolean *containerChanged); /* The FSGetDirectoryItems function returns the list of items in the specified container. The array of FSRef records is returned in a Handle, refsHandle, which is allocated by FSGetDirectoryItems. The caller is responsible for disposing of refsHandle if the FSGetDirectoryItems returns noErr. container --> FSRef to a directory. refsHandle <-- Pointer to an FSRef Handle where the array of FSRefs is to be returned. numRefs <-- The number of FSRefs returned in the array. containerChanged <-- Set to true if the container changes while the list of items is being obtained. */ /*****************************************************************************/ #pragma mark FSExchangeObjectsCompat OSErr FSExchangeObjectsCompat( const FSRef *sourceRef, const FSRef *destRef, FSRef *newSourceRef, FSRef *newDestRef); /* The FSExchangeObjectsCompat function exchanges the data between two files. The FSExchangeObjectsCompat function is an enhanced version of FSExchangeObjects function. The two enhancements FSExchangeObjectsCompat provides are: 1, FSExchangeObjectsCompat will work on volumes which do not support FSExchangeObjects. FSExchangeObjectsCompat does this by emulating FSExchangeObjects through a series of File Manager operations. If there is a failure at any step along the way, FSExchangeObjectsCompat attempts to undo any steps already taken to leave the files in their original state in their original locations. 2. FSExchangeObjectsCompat returns new FSRefs to the source and destination files. Note that if this function fails at any step along the way, newSourceRef and newDestRef still give you access to the final locations of the files being exchanged -- even if they are renamed or not in their original locations. sourceRef --> FSRef to the source file. destRef --> FSRef to the destination file. newSourceRef <-- The new FSRef to the source file. newDestRef <-- The new FSRef to the destination file. */ /*****************************************************************************/ #pragma mark ----- Shared Environment Routines ----- /*****************************************************************************/ #if 0 /* These methods were added in 10.4, and are not used by ResKnife, so we just comment them out to avoid errors */ #pragma mark FSLockRange OSErr FSLockRange( SInt16 refNum, SInt32 rangeLength, SInt32 rangeStart); /* The LockRange function locks (denies access to) a portion of a file that was opened with shared read/write permission. refNum --> The file reference number of an open file. rangeLength --> The number of bytes in the range. rangeStart --> The starting byte in the range to lock. __________ Also see: UnlockRange */ /*****************************************************************************/ #pragma mark FSUnlockRange OSErr FSUnlockRange( SInt16 refNum, SInt32 rangeLength, SInt32 rangeStart); /* The UnlockRange function unlocks (allows access to) a previously locked portion of a file that was opened with shared read/write permission. refNum --> The file reference number of an open file. rangeLength --> The number of bytes in the range. rangeStart --> The starting byte in the range to unlock. __________ Also see: LockRange */ #endif /*****************************************************************************/ #pragma mark FSGetDirAccess OSErr FSGetDirAccess( const FSRef *ref, SInt32 *ownerID, /* can be NULL */ SInt32 *groupID, /* can be NULL */ SInt32 *accessRights); /* can be NULL */ /* The FSGetDirAccess function retrieves the directory access control information for a directory on a shared volume. ref --> An FSRef specifying the directory. ownerID <** An optional pointer to a SInt32. If not NULL, the directory's owner ID will be returned in the SInt32. groupID <** An optional pointer to a SInt32. If not NULL, the directory's group ID, or 0 if no group affiliation, will be returned in the SInt32. accessRights <** An optional pointer to a SInt32. If not NULL, the directory's access rights will be returned in the SInt32. __________ Also see: FSSetDirAccess, FSMapID, FSMapName */ /*****************************************************************************/ #pragma mark FSSetDirAccess OSErr FSSetDirAccess( const FSRef *ref, SInt32 ownerID, SInt32 groupID, SInt32 accessRights); /* The FSpSetDirAccess function changes the directory access control information for a directory on a shared volume. You must be the owner of a directory to change its access control information. ref --> An FSRef specifying the directory. ownerID --> The directory's owner ID. groupID --> The directory's group ID or 0 if no group affiliation. accessRights --> The directory's access rights. __________ Also see: FSGetDirAccess, FSMapID, FSMapName */ /*****************************************************************************/ #pragma mark FSGetVolMountInfoSize OSErr FSGetVolMountInfoSize( FSVolumeRefNum volRefNum, SInt16 *size); /* The FSGetVolMountInfoSize function determines the how much space the program needs to allocate for a volume mounting information record. volRefNum --> Volume specification. size <-- The space needed (in bytes) of the volume mounting information record. __________ Also see: FSGetVolMountInfo, VolumeMount */ /*****************************************************************************/ #pragma mark FSGetVolMountInfo OSErr FSGetVolMountInfo( FSVolumeRefNum volRefNum, void *volMountInfo); /* The FSGetVolMountInfo function retrieves a volume mounting information record containing all the information needed to mount the volume, except for passwords. volRefNum --> Volume specification. volMountInfo <-- The volume mounting information. __________ Also see: FSGetVolMountInfoSize, VolumeMount */ /*****************************************************************************/ #if 0 /* This method were added in 10.4, and are not used by ResKnife, so we just comment it out to avoid errors */ #pragma mark FSVolumeMount OSErr FSVolumeMount( const void *volMountInfo, FSVolumeRefNum *volRefNum); /* The VolumeMount function mounts a volume using a volume mounting information record. volMountInfo --> A volume mounting information record. volRefNum <-- The volume reference number. __________ Also see: FSGetVolMountInfoSize, FSGetVolMountInfo */ #endif /*****************************************************************************/ #pragma mark FSMapID OSErr FSMapID( FSVolumeRefNum volRefNum, SInt32 ugID, SInt16 objType, Str31 name); /* The FSMapID function determines the name of a user or group if you know the user or group ID. volRefNum --> Volume specification. objType --> The mapping function code: kOwnerID2Name to map a user ID to a user name kGroupID2Name to map a group ID to a group name name <** An optional pointer to a buffer (minimum Str31). If not NULL, the user or group name will be returned in the buffer. __________ Also see: FSGetDirAccess, FSSetDirAccess, FSMapName */ /*****************************************************************************/ #pragma mark FSMapName OSErr FSMapName( FSVolumeRefNum volRefNum, ConstStr255Param name, SInt16 objType, SInt32 *ugID); /* The FSMapName function determines the user or group ID if you know the user or group name. volRefNum --> Volume specification. name --> The user or group name. objType --> The mapping function code: kOwnerName2ID to map a user name to a user ID kGroupName2ID to map a user name to a group ID ugID <-- The user or group ID. __________ Also see: FSGetDirAccess, FSSetDirAccess, FSMapID */ /*****************************************************************************/ #pragma mark FSCopyFile OSErr FSCopyFile( const FSRef *srcFileRef, const FSRef *dstDirectoryRef, UniCharCount nameLength, const UniChar *copyName, /* can be NULL (no rename during copy) */ TextEncoding textEncodingHint, FSRef *newRef); /* can be NULL */ /* The FSCopyFile function duplicates a file and optionally renames it. The source and destination volumes must be on the same file server. This function instructs the server to copy the file. srcFileRef --> An FSRef specifying the source file. dstDirectoryRef --> An FSRef specifying the destination directory. nameLength --> Number of UniChar in copyName parameter (ignored if copyName is NULL). copyName --> Points to the new file name if the file is to be renamed, or NULL if the file isn't to be renamed. textEncodingHint --> The text encoding hint used for the rename. You can pass kTextEncodingUnknown to use the "default" textEncodingHint. newRef <** An optional pointer to a FSRef. If not NULL, the FSRef of the duplicated file will be returned in the FSRef. */ /*****************************************************************************/ #pragma mark FSMoveRename OSErr FSMoveRename( const FSRef *srcFileRef, const FSRef *dstDirectoryRef, UniCharCount nameLength, const UniChar *moveName, /* can be NULL (no rename during move) */ TextEncoding textEncodingHint, FSRef *newRef); /* can be NULL */ /* The FSMoveRename function moves a file or directory (object), and optionally renames it. The source and destination locations must be on the same shared volume. srcFileRef --> An FSRef specifying the source file. dstDirectoryRef --> An FSRef specifying the destination directory. nameLength --> Number of UniChar in moveName parameter (ignored if copyName is NULL) moveName --> Points to the new object name if the object is to be renamed, or NULL if the object isn't to be renamed. textEncodingHint --> The text encoding hint used for the rename. You can pass kTextEncodingUnknown to use the "default" textEncodingHint. newRef <** An optional pointer to a FSRef. If not NULL, the FSRef of the moved object will be returned in the FSRef. */ /*****************************************************************************/ #pragma mark ----- File ID Routines ----- /*****************************************************************************/ #pragma mark FSResolveFileIDRef OSErr FSResolveFileIDRef( FSVolumeRefNum volRefNum, SInt32 fileID, FSRef *ref); /* The FSResolveFileIDRef function returns an FSRef for the file with the specified file ID reference. volRefNum --> Volume specification. fileID --> The file ID reference. ref <-- The FSRef for the file ID reference. __________ Also see: FSCreateFileIDRef, FSDeleteFileIDRef */ /*****************************************************************************/ #pragma mark FSCreateFileIDRef OSErr FSCreateFileIDRef( const FSRef *ref, SInt32 *fileID); /* The FSCreateFileIDRef function creates a file ID reference for the specified file, or if a file ID reference already exists, supplies the file ID reference and returns the result code fidExists or afpIDExists. ref --> The FSRef for the file. fileID <-- The file ID reference (if result is noErr, fidExists, or afpIDExists). __________ Also see: GetFSRefFromFileIDRef, FSDeleteFileIDRef */ /*****************************************************************************/ #pragma mark FSDeleteFileIDRef /* Why is there no FSDeleteFileIDRef routine? There are two reasons: 1. Since Mac OS 8.1, PBDeleteFileIDRef hasn't deleted file ID references. On HFS volumes, deleting a file ID reference breaks aliases (which use file ID references to track files as they are moved around on a volume) and file ID references are automatically deleted when the file they refer to is deleted. On HFS Plus volumes, file ID references are always created when a file is created, deleted when the file is deleted, and cannot be deleted at any other time. 2. PBDeleteFileIDRef causes a memory access fault under Mac OS X 10.0 through 10.1.x. While this will be fixed in a future release, the implementation, like the Mac OS 8/9 implementation, does not delete file ID references. __________ Also see: GetFSRefFromFileIDRef, FSCreateFileIDRef */ /*****************************************************************************/ #pragma mark ----- Utility Routines ----- /*****************************************************************************/ #pragma mark GetTempBuffer Ptr GetTempBuffer( ByteCount buffReqSize, ByteCount *buffActSize); /* The GetTempBuffer function allocates a temporary buffer for file system operations which is at least 4K bytes and a multiple of 4K bytes. buffReqSize --> Size you'd like the buffer to be. buffActSize <-- The size of the buffer allocated. function result <-- Pointer to memory allocated, or NULL if no memory was available. The caller is responsible for disposing of this buffer with DisposePtr. */ /*****************************************************************************/ #pragma mark FileRefNumGetFSRef OSErr FileRefNumGetFSRef( short refNum, FSRef *ref); /* The FileRefNumGetFSRef function gets the FSRef of an open file. refNum --> The file reference number of an open file. ref <-- The FSRef to the open file. */ /*****************************************************************************/ #pragma mark FSSetDefault OSErr FSSetDefault( const FSRef *newDefault, FSRef *oldDefault); /* The FSSetDefault function sets the current working directory to the directory specified by newDefault. The previous current working directory is returned in oldDefault and must be used to restore the current working directory to its previous state with the FSRestoreDefault function. These two functions are designed to be used as a wrapper around Standard I/O routines where the location of the file is implied to be the current working directory. This is how you should use these functions: result = FSSetDefault(&newDefault, &oldDefault); if ( noErr == result ) { // call the Stdio functions like remove, rename, // fopen, freopen, etc here! result = FSRestoreDefault(&oldDefault); } newDefault --> An FSRef that specifies the new current working directory. oldDefault <-- The previous current working directory's FSRef. __________ Also see: FSRestoreDefault */ /*****************************************************************************/ #pragma mark FSRestoreDefault OSErr FSRestoreDefault( const FSRef *oldDefault); /* The FSRestoreDefault function restores the current working directory to the directory specified by oldDefault. The oldDefault parameter was previously obtained from the FSSetDefault function. These two functions are designed to be used as a wrapper around Standard I/O routines where the location of the file is implied to be the current working directory. This is how you should use these functions: result = FSSetDefault(&newDefault, &oldDefault); if ( noErr == result ) { // call the Stdio functions like remove, rename, // fopen, freopen, etc here! result = FSRestoreDefault(&oldDefault); } oldDefault --> The FSRef of the location to restore. __________ Also see: FSSetDefault */ /*****************************************************************************/ #if PRAGMA_STRUCT_ALIGN #pragma options align=reset #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(pop) #elif PRAGMA_STRUCT_PACK #pragma pack() #endif #ifdef PRAGMA_IMPORT_OFF #pragma import off #elif PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #endif /* __MOREFILESX__ */ \ No newline at end of file diff --git a/HexEditor.graffle b/HexEditor.graffle index 7b59199..6a0e07c 100644 --- a/HexEditor.graffle +++ b/HexEditor.graffle @@ -4,8 +4,10 @@ CanvasColor + a + 1 w - 1.000000e+00 + 1 ColumnAlign 0 @@ -21,10 +23,10 @@ Head ID - 31 + 27 ID - 33 + 29 Points {319.5, 504} @@ -45,7 +47,7 @@ Tail ID - 26 + 22 @@ -54,10 +56,10 @@ Head ID - 31 + 27 ID - 32 + 28 Points {276.3, 504} @@ -78,7 +80,7 @@ Tail ID - 25 + 21 @@ -87,10 +89,10 @@ Head ID - 22 + 18 ID - 31 + 27 Points {279, 558} @@ -116,10 +118,10 @@ Head ID - 31 + 27 ID - 30 + 26 Points {233.1, 504} @@ -140,7 +142,7 @@ Tail ID - 24 + 20 @@ -149,10 +151,10 @@ Head ID - 11 + 7 ID - 29 + 25 Points {321.577, 432} @@ -173,7 +175,7 @@ Tail ID - 26 + 22 @@ -182,10 +184,10 @@ Head ID - 11 + 7 ID - 28 + 24 Points {271.731, 432} @@ -206,7 +208,7 @@ Tail ID - 25 + 21 @@ -215,10 +217,10 @@ Head ID - 24 + 20 ID - 27 + 23 Points {250.962, 378} @@ -239,7 +241,7 @@ Tail ID - 11 + 7 @@ -248,7 +250,7 @@ Class ShapedGraphic ID - 26 + 22 Shape HorizontalBrackets Text @@ -259,7 +261,8 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 Hex Text View (ASCII)} +\f0\fs24 \cf0 ASCII\ +Text View} @@ -268,7 +271,7 @@ Class ShapedGraphic ID - 25 + 21 Shape HorizontalBrackets Text @@ -279,7 +282,8 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 Hex Text View (Hex)} +\f0\fs24 \cf0 Hex\ +Text View} @@ -288,7 +292,7 @@ Class ShapedGraphic ID - 24 + 20 Shape HorizontalBrackets Text @@ -299,7 +303,8 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 Hex Text View (Offset)} +\f0\fs24 \cf0 Offset\ +Text View} @@ -308,10 +313,10 @@ Head ID - 22 + 18 ID - 23 + 19 Points {297.807, 236.054} @@ -332,7 +337,7 @@ Tail ID - 9 + 5 @@ -341,7 +346,7 @@ Class ShapedGraphic ID - 22 + 18 Shape Cloud Style @@ -350,12 +355,14 @@ Color + a + 1 b - 1.000000e+00 + 1 g - 8.490366e-01 + 0.849037 r - 9.965038e-01 + 0.996504 @@ -376,14 +383,14 @@ Head ID - 11 + 7 ID - 21 + 17 Points - {144, 348.527} - {207, 349.809} + {144, 347.879} + {207, 349.497} Style @@ -400,7 +407,7 @@ Tail ID - 17 + 13 @@ -409,14 +416,14 @@ Head ID - 17 + 13 ID - 20 + 16 Points - {100.788, 239.348} - {99.8262, 297} + {100.786, 239.348} + {99.8251, 297} Style @@ -433,7 +440,7 @@ Tail ID - 18 + 14 @@ -442,10 +449,10 @@ Head ID - 18 + 14 ID - 19 + 15 Points {218.607, 211.5} @@ -466,7 +473,7 @@ Tail ID - 9 + 5 @@ -475,7 +482,7 @@ Class ShapedGraphic ID - 18 + 14 Shape Cloud Style @@ -484,12 +491,14 @@ Color + a + 1 b - 1.000000e+00 + 1 g - 9.653430e-01 + 0.965343 r - 7.682484e-01 + 0.768248 @@ -515,7 +524,7 @@ Class ShapedGraphic ID - 16 + 12 Shape RoundRect Style @@ -524,12 +533,14 @@ Color + a + 1 b - 1.000000e+00 + 1 g - 7.482798e-01 + 0.74828 r - 4.663317e-01 + 0.466332 shadow @@ -537,13 +548,13 @@ Color a - 5.000000e-01 + 0.5 b - 7.500000e-01 + 0.75 g - 7.500000e-01 + 0.75 r - 7.500000e-01 + 0.75 stroke @@ -559,7 +570,7 @@ Class ShapedGraphic ID - 17 + 13 Shape Rectangle Text @@ -576,7 +587,7 @@ Sheet} ID - 15 + 11 Class @@ -584,14 +595,14 @@ Sheet} Head ID - 12 + 8 ID - 14 + 10 Points - {267.14, 239.328} - {265.695, 306} + {267.145, 239.33} + {265.696, 306} Style @@ -608,7 +619,7 @@ Sheet} Tail ID - 9 + 5 @@ -617,14 +628,14 @@ Sheet} Head ID - 9 + 5 ID - 13 + 9 Points {266.062, 117} - {267.252, 183.589} + {267.252, 183.588} Style @@ -641,7 +652,7 @@ Sheet} Tail ID - 7 + 3 @@ -655,7 +666,7 @@ Sheet} Class ShapedGraphic ID - 11 + 7 Shape Rectangle @@ -665,7 +676,7 @@ Sheet} Class ShapedGraphic ID - 12 + 8 Shape Rectangle Text @@ -681,7 +692,7 @@ Sheet} ID - 10 + 6 Bounds @@ -689,7 +700,7 @@ Sheet} Class ShapedGraphic ID - 9 + 5 Shape Cloud Style @@ -698,12 +709,14 @@ Sheet} Color + a + 1 b - 1.000000e+00 + 1 g - 9.653430e-01 + 0.965343 r - 7.682484e-01 + 0.768248 @@ -729,7 +742,7 @@ Sheet} Class ShapedGraphic ID - 6 + 2 Magnets {0, 1} @@ -756,7 +769,7 @@ Sheet} Class ShapedGraphic ID - 7 + 3 Shape Rectangle Style @@ -765,12 +778,14 @@ Sheet} Color + a + 1 b - 0.000000e+00 + 0 g - 0.000000e+00 + 0 r - 0.000000e+00 + 0 Width 2.000000e+00 @@ -783,7 +798,7 @@ Sheet} Class ShapedGraphic ID - 8 + 4 Shape Rectangle Style @@ -793,21 +808,23 @@ Sheet} Color a - 5.000000e-01 + 0.5 w - 3.333334e-01 + 0.333333 stroke Color + a + 1 b - 0.000000e+00 + 0 g - 0.000000e+00 + 0 r - 0.000000e+00 + 0 Width 2.000000e+00 @@ -826,7 +843,7 @@ Sheet} ID - 5 + 1 GridInfo @@ -864,8 +881,10 @@ Sheet} YES PageBreakColor + a + 1 w - 6.666667e-01 + 0.666667 PageBreaks YES @@ -873,178 +892,178 @@ Sheet} BAt0eXBlZHN0cmVhbYED6IQBQISEhAtOU1ByaW50SW5mbwGEhAhOU09iamVjdACFkoSE hBNOU011dGFibGVEaWN0aW9uYXJ5AISEDE5TRGljdGlvbmFyeQCUhAFpF5KEhIQITlNT - dHJpbmcBlIQBKw9OU1BhZ2VzUGVyU2hlZXSGkoSEhAhOU051bWJlcgCEhAdOU1ZhbHVl - AJSEASqEhAFznQGGkoSZmQ5OU0JvdHRvbU1hcmdpboaShJuchIQBZp4khpKEmZkPTlNQ - cmludEFsbFBhZ2VzhpKEm5ydnQCGkoSZmQ1OU0pvYkZlYXR1cmVzhpKElpcAhpKEmZkV - TlNIb3Jpem9uYWxQYWdpbmF0aW9uhpKEm5ydnQCGkoSZmRROU1ZlcnRpY2FsbHlDZW50 - ZXJlZIaShJucnZ0BhpKEmZkJTlNQcmludGVyhpKEhIQJTlNQcmludGVyAJSShJmZASCG - hpKEmZkPTlNTY2FsaW5nRmFjdG9yhpKEm5ygngGGkoSZmRJOU1JldmVyc2VQYWdlT3Jk - ZXKGkqKShJmZDE5TTGVmdE1hcmdpboaShJucoJ4khpKEmZkOTlNQTVBhZ2VGb3JtYXSG - koSEhAZOU0RhdGEAlJeBHyCEB1s3OTY4Y108P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k - aW5nPSJVVEYtOCI/Pgo8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZSBDb21w - dXRlci8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERz - L1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KPHBsaXN0IHZlcnNpb249IjEuMCI+CjxkaWN0 - PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8 - L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9y - PC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+ - CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxh - cnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0 - LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJCQkJPHJlYWw+Ny4yMDAwMDAwMDAwMDAwMDBl - KzAxPC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwv - a2V5PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+ - CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJ - PGRhdGU+MjAwMi0xMS0xN1QwMDoxNjowOVo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBs - ZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRl - Z2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxl - LnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJPGRpY3Q+CgkJPGtl - eT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNv - bS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5w - cmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJ - CTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5 - PgoJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50 - LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5n - bWFuYWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1v - ZERhdGU8L2tleT4KCQkJCTxkYXRlPjIwMDItMTEtMTdUMDA6MTY6MDlaPC9kYXRlPgoJ - CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJ - PGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+ - Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwva2V5PgoJ - PGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4K - CQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5 - PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJ - CQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2Fs - aW5nPC9rZXk+CgkJCQk8cmVhbD4xLjAwMDAwMDAwMDAwMDAwMGUrMDA8L3JlYWw+CgkJ - CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3Ry - aW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29t - LmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDAyLTEx - LTE3VDAwOjE2OjA5WjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl - dC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGlj - dD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZv - cm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5w - cmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50 - aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5p - dGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBw - bGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+CgkJCQk8cmVhbD43 - LjIwMDAwMDAwMDAwMDAwMGUrMDE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmlu - dC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGlu - Z21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5t - b2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDAyLTExLTE3VDAwOjE2OjA5WjwvZGF0ZT4K - CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJ - CTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0 - PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGlu - Zzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0 - b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmlu - Zz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJ - PGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3Jt - YXQuUE1WZXJ0aWNhbFNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjEuMDAwMDAwMDAwMDAw - MDAwZSswMDwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGll - bnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3Ry - aW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4K - CQkJCTxkYXRlPjIwMDItMTEtMTdUMDA6MTY6MDlaPC9kYXRlPgoJCQkJPGtleT5jb20u - YXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwv - aW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5h - cHBsZS5wcmludC5zdWJUaWNrZXQucGFwZXJfaW5mb190aWNrZXQ8L2tleT4KCTxkaWN0 - PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VS - ZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5j - cmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwv - c3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9r - ZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50 - LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJ - CQkJCQk8cmVhbD4wLjAwMDAwMDAwMDAwMDAwMGUrMDA8L3JlYWw+CgkJCQkJCTxyZWFs - PjAuMDAwMDAwMDAwMDAwMDAwZSswMDwvcmVhbD4KCQkJCQkJPHJlYWw+Ny44MzAwMDAw - MDAwMDAwMDBlKzAyPC9yZWFsPgoJCQkJCQk8cmVhbD41LjU5MDAwMDAwMDAwMDAwMGUr - MDI8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50 - aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdt - YW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1v - ZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAyLTExLTE3VDAwOjE2OjA5WjwvZGF0ZT4K - CQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJ - CQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8 - L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVk - UGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp - Y2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFu - YWdlcjwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFy - cmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxl - LnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxh - cnJheT4KCQkJCQkJPHJlYWw+LTEuODAwMDAwMDAwMDAwMDAwZSswMTwvcmVhbD4KCQkJ - CQkJPHJlYWw+LTEuODAwMDAwMDAwMDAwMDAwZSswMTwvcmVhbD4KCQkJCQkJPHJlYWw+ - OC4yNDAwMDAwMDAwMDAwMDBlKzAyPC9yZWFsPgoJCQkJCQk8cmVhbD41Ljc3MDAwMDAw - MDAwMDAwMGUrMDI8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBs - ZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUu - cHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQu - dGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAyLTExLTE3VDAwOjE2OjA5 - WjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFn - PC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9h - cnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBN - UGFwZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp - Y2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBv - c3RTY3JpcHQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0 - ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5h - cHBsZS5wcmludC5QYXBlckluZm8uUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5n - Pmlzby1hNDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5j - bGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2Ny - aXB0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERh - dGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAwLTA3LTI4VDIyOjU3OjA0WjwvZGF0ZT4KCQkJ + dHJpbmcBlIQBKxBOU0pvYkRpc3Bvc2l0aW9uhpKEmZkPTlNQcmludFNwb29sSm9ihpKE + mZkZTlNQcmludFJldmVyc2VPcmllbnRhdGlvboaShISECE5TTnVtYmVyAISEB05TVmFs + dWUAlIQBKoSEAXOdAIaShJmZC05TUGFwZXJTaXplhpKEnpyEhAx7X05TU2l6ZT1mZn2e + gQJTgQNKhpKEmZkUTlNWZXJ0aWNhbFBhZ2luYXRpb26GkoSdnJ+dAIaShJmZFE5TVmVy + dGljYWxseUNlbnRlcmVkhpKEnZyfnQGGkoSZmRJOU1JldmVyc2VQYWdlT3JkZXKGkpyS + hJmZD05TUGFnZXNQZXJTaGVldIaShJ2cn50BhpKEmZkOTlNQTVBhZ2VGb3JtYXSGkoSE + hAZOU0RhdGEAlJeBHyCEB1s3OTY4Y108P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n + PSJVVEYtOCI/Pgo8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZSBDb21wdXRl + ci8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1By + b3BlcnR5TGlzdC0xLjAuZHRkIj4KPHBsaXN0IHZlcnNpb249IjEuMCI+CjxkaWN0PgoJ + PGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8L2tl + eT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9r + ZXk+CgkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJ + PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJh + eT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBN + SG9yaXpvbnRhbFJlczwva2V5PgoJCQkJPHJlYWw+Ny4yMDAwMDAwMDAwMDAwMDBlKzAx + PC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5 + PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJ + CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJPGRh + dGU+MjAwMi0xMS0xN1QwMDoxNjowOVo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBsZS5w + cmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2Vy + PgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnBy + aW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJPGRpY3Q+CgkJPGtleT5j + b20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5h + cHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmlu + dC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxr + ZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJ + CQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp + Y2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFu + YWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERh + dGU8L2tleT4KCQkJCTxkYXRlPjIwMDItMTEtMTdUMDA6MTY6MDlaPC9kYXRlPgoJCQkJ + PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGlu + dGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8 + a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwva2V5PgoJPGRp + Y3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8 + c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNv + bS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8 + ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2FsaW5n + PC9rZXk+CgkJCQk8cmVhbD4xLjAwMDAwMDAwMDAwMDAwMGUrMDA8L3JlYWw+CgkJCQk8 + a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5n + PmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFw + cGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDAyLTExLTE3 + VDAwOjE2OjA5WjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5z + dGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4K + CQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1h + dC5QTVZlcnRpY2FsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmlu + dC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5n + bWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVt + QXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUu + cHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+CgkJCQk8cmVhbD43LjIw + MDAwMDAwMDAwMDAwMGUrMDE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50 + aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21h + bmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2RE + YXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDAyLTExLTE3VDAwOjE2OjA5WjwvZGF0ZT4KCQkJ + CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxp + bnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJ + PGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwv + a2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8 + L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4K + CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFy + cmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQu + UE1WZXJ0aWNhbFNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjEuMDAwMDAwMDAwMDAwMDAw + ZSswMDwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8 + L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5n + PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJ + CTxkYXRlPjIwMDItMTEtMTdUMDA6MTY6MDlaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBw + bGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50 + ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBs + ZS5wcmludC5zdWJUaWNrZXQucGFwZXJfaW5mb190aWNrZXQ8L2tleT4KCTxkaWN0PgoJ + CTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0 + PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVh + dG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3Ry + aW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+ + CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBh + Z2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJ + CQk8cmVhbD4wLjAwMDAwMDAwMDAwMDAwMGUrMDA8L3JlYWw+CgkJCQkJCTxyZWFsPjAu + MDAwMDAwMDAwMDAwMDAwZSswMDwvcmVhbD4KCQkJCQkJPHJlYWw+Ny44MzAwMDAwMDAw + MDAwMDBlKzAyPC9yZWFsPgoJCQkJCQk8cmVhbD41LjU5MDAwMDAwMDAwMDAwMGUrMDI8 + L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNr + ZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5h + Z2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERh + dGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAzLTExLTEwVDIxOjI4OjIyWjwvZGF0ZT4KCQkJ CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJ - PGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2Rp - Y3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBh - Z2VSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl + PGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2Rp + Y3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFw + ZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl + dC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdl + cjwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5 + PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnBy + aW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJh + eT4KCQkJCQkJPHJlYWw+LTEuODAwMDAwMDAwMDAwMDAwZSswMTwvcmVhbD4KCQkJCQkJ + PHJlYWw+LTEuODAwMDAwMDAwMDAwMDAwZSswMTwvcmVhbD4KCQkJCQkJPHJlYWw+OC4y + NDAwMDAwMDAwMDAwMDBlKzAyPC9yZWFsPgoJCQkJCQk8cmVhbD41Ljc3MDAwMDAwMDAw + MDAwMGUrMDI8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5w + cmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJp + bnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlj + a2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAzLTExLTEwVDIxOjI4OjIyWjwv + ZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9r + ZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJh + eT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNUGFw + ZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl dC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBvc3RT Y3JpcHQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1B cnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBs - ZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQkJCQk8 - YXJyYXk+CgkJCQkJCTxyZWFsPjAuMDAwMDAwMDAwMDAwMDAwZSswMDwvcmVhbD4KCQkJ - CQkJPHJlYWw+MC4wMDAwMDAwMDAwMDAwMDBlKzAwPC9yZWFsPgoJCQkJCQk8cmVhbD43 - LjgzMDAwMDAwMDAwMDAwMGUrMDI8L3JlYWw+CgkJCQkJCTxyZWFsPjUuNTkwMDAwMDAw - MDAwMDAwZSswMjwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxl - LnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5w - cmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJp - bnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAwLTA3LTI4VDIyOjU3 - OjA0WjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVG - bGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJ - PC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZv - LlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5h - cHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBs - ZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnBy - aW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJ - CQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVy - UmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTEuODAwMDAwMDAwMDAw - MDAwZSswMTwvcmVhbD4KCQkJCQkJPHJlYWw+LTEuODAwMDAwMDAwMDAwMDAwZSswMTwv - cmVhbD4KCQkJCQkJPHJlYWw+OC4yNDAwMDAwMDAwMDAwMDBlKzAyPC9yZWFsPgoJCQkJ - CQk8cmVhbD41Ljc3MDAwMDAwMDAwMDAwMGUrMDI8L3JlYWw+CgkJCQkJPC9hcnJheT4K - CQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJ - PHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQkJ - CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRh - dGU+MjAwMC0wNy0yOFQyMjo1NzowNFo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUu - cHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjE8L2ludGVn - ZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFw - cGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQk8ZGljdD4K - CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0 - cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5 - PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4K - CQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQu - UE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPkE0PC9zdHJpbmc+CgkJCQkJPGtl - eT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+ - Y29tLmFwcGxlLnByaW50LnBtLlBvc3RTY3JpcHQ8L3N0cmluZz4KCQkJCQk8a2V5PmNv - bS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDAt - MDctMjhUMjI6NTc6MDRaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp - Y2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJ - PC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmlu - dC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4K - CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQucHJpdmF0ZUxvY2s8L2tleT4KCQk8 - ZmFsc2UvPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+CgkJ - PHN0cmluZz5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvVGlja2V0PC9zdHJpbmc+Cgk8 - L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5 - PgoJPHN0cmluZz4wMC4yMDwvc3RyaW5nPgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlj - a2V0LnByaXZhdGVMb2NrPC9rZXk+Cgk8ZmFsc2UvPgoJPGtleT5jb20uYXBwbGUucHJp - bnQudGlja2V0LnR5cGU8L2tleT4KCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhZ2VG - b3JtYXRUaWNrZXQ8L3N0cmluZz4KPC9kaWN0Pgo8L3BsaXN0PgqGkoSZmRZOU0hvcml6 - b250YWxseUNlbnRlcmVkhpKokoSZmQ1OU1JpZ2h0TWFyZ2luhpKEm5ygniSGkoSZmRBO - U0pvYkRpc3Bvc2l0aW9uhpKEmZkPTlNQcmludFNwb29sSm9ihpKEmZkITlNDb3BpZXOG - koSbnISEAVOiAYaShJmZC05TUGFwZXJOYW1lhpKEmZkGaXNvLWE0hpKEmZkLTlNGaXJz - dFBhZ2WGkoSbnLyiAYaShJmZFE5TVmVydGljYWxQYWdpbmF0aW9uhpKEm5ydnQCGkoSZ - mQ1OU09yaWVudGF0aW9uhpKEm5ydnQCGkoSZmRlOU1ByaW50UmV2ZXJzZU9yaWVudGF0 - aW9uhpKikoSZmQpOU0xhc3RQYWdlhpKEm5yEl5eCf////4aShJmZC05TVG9wTWFyZ2lu - hpKEm5ygniSGkoSZmQtOU1BhcGVyU2l6ZYaShJychIQMe19OU1NpemU9ZmZ9o4ECU4ED - SoaGhg== + ZS5wcmludC5QYXBlckluZm8uUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPmlz + by1hNDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGll + bnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0 + PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8 + L2tleT4KCQkJCQk8ZGF0ZT4yMDAwLTA3LTI4VDIyOjU3OjA0WjwvZGF0ZT4KCQkJCQk8 + a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGlu + dGVnZXI+MTwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+ + CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhZ2VS + ZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5j + cmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBvc3RTY3Jp + cHQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJh + eTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5w + cmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQkJCQk8YXJy + YXk+CgkJCQkJCTxyZWFsPjAuMDAwMDAwMDAwMDAwMDAwZSswMDwvcmVhbD4KCQkJCQkJ + PHJlYWw+MC4wMDAwMDAwMDAwMDAwMDBlKzAwPC9yZWFsPgoJCQkJCQk8cmVhbD43Ljgz + MDAwMDAwMDAwMDAwMGUrMDI8L3JlYWw+CgkJCQkJCTxyZWFsPjUuNTkwMDAwMDAwMDAw + MDAwZSswMjwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnBy + aW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmlu + dC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQu + dGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAwLTA3LTI4VDIyOjU3OjA0 + WjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFn + PC9rZXk+CgkJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9h + cnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBN + VW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBs + ZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5w + cmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50 + LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJ + PGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVj + dDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTEuODAwMDAwMDAwMDAwMDAw + ZSswMTwvcmVhbD4KCQkJCQkJPHJlYWw+LTEuODAwMDAwMDAwMDAwMDAwZSswMTwvcmVh + bD4KCQkJCQkJPHJlYWw+OC4yNDAwMDAwMDAwMDAwMDBlKzAyPC9yZWFsPgoJCQkJCQk8 + cmVhbD41Ljc3MDAwMDAwMDAwMDAwMGUrMDI8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJ + CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0 + cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQkJCTxr + ZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+ + MjAwMC0wNy0yOFQyMjo1NzowNFo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJp + bnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjE8L2ludGVnZXI+ + CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxl + LnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQk8ZGljdD4KCQkJ + PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmlu + Zz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5PmNv + bS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJ + CTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1Q + YXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPkE0PC9zdHJpbmc+CgkJCQkJPGtleT5j + b20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29t + LmFwcGxlLnByaW50LnBtLlBvc3RTY3JpcHQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5h + cHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDAtMDct + MjhUMjI6NTc6MDRaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl + dC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPC9k + aWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50 + aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCQk8 + a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQucHJpdmF0ZUxvY2s8L2tleT4KCQk8ZmFs + c2UvPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+CgkJPHN0 + cmluZz5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvVGlja2V0PC9zdHJpbmc+Cgk8L2Rp + Y3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJ + PHN0cmluZz4wMC4yMDwvc3RyaW5nPgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0 + LnByaXZhdGVMb2NrPC9rZXk+Cgk8ZmFsc2UvPgoJPGtleT5jb20uYXBwbGUucHJpbnQu + dGlja2V0LnR5cGU8L2tleT4KCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3Jt + YXRUaWNrZXQ8L3N0cmluZz4KPC9kaWN0Pgo8L3BsaXN0PgqGkoSZmQ9OU1ByaW50QWxs + UGFnZXOGkpyShJmZFU5TSG9yaXpvbmFsUGFnaW5hdGlvboaShJ2cn50AhpKEmZkITlND + b3BpZXOGkoSdnISEAVOhAYaShJmZFk5TSG9yaXpvbnRhbGx5Q2VudGVyZWSGkqaShJmZ + CU5TUHJpbnRlcoaShISECU5TUHJpbnRlcgCUkoSZmQEghoaShJmZC05TUGFwZXJOYW1l + hpKEmZkGaXNvLWE0hpKEmZkPTlNTY2FsaW5nRmFjdG9yhpKEnZyEhAFmowGGkoSZmQ1O + U1JpZ2h0TWFyZ2luhpKEnZy8oySGkoSZmQ1OU0pvYkZlYXR1cmVzhpKElpcAhpKEmZkM + TlNMZWZ0TWFyZ2luhpKEnZy8oySGkoSZmQ5OU0JvdHRvbU1hcmdpboaShJ2cvKMkhpKE + mZkLTlNUb3BNYXJnaW6GkoSdnLyjJIaShJmZCk5TTGFzdFBhZ2WGkoSdnISXl4J///// + hpKEmZkLTlNGaXJzdFBhZ2WGkoSdnLKhAYaShJmZDU5TT3JpZW50YXRpb26GkoSdnJ+d + AIaGhg== RowAlign 0 @@ -1055,7 +1074,7 @@ Sheet} WindowInfo Frame - {{1998, 271}, {559, 717}} + {{38, 272}, {559, 717}} VisibleRegion {{-10, 0}, {544, 640}} Zoom diff --git a/NovaTools/English.lproj/Resource Types.strings b/NovaTools/English.lproj/Resource Types.strings index f492db88e1886fd6a94802b61434a57173647fab..4a080e08ebc0aee48691b885d8f68f42e4fd6790 100644 GIT binary patch delta 38 qcmdnT@qlB4Afse5Loq`sLoS07g93vs5Gyf&ME)@3ZsuS#V+H`OO$avt delta 12 TcmaFBv5#YeAme6ZMqOqA9Y6z! diff --git a/NovaTools/NovaWindowController.m b/NovaTools/NovaWindowController.m index 6b6eae6..abf209b 100644 --- a/NovaTools/NovaWindowController.m +++ b/NovaTools/NovaWindowController.m @@ -4,6 +4,8 @@ #import "ColrWindowController.h" #import "CronWindowController.h" #import "DescWindowController.h" +#import "MisnWindowController.h" +#import "ShipWindowController.h" @implementation NovaWindowController diff --git a/NovaTools/Structs.h b/NovaTools/Structs.h index f62ea08..8e7b657 100644 --- a/NovaTools/Structs.h +++ b/NovaTools/Structs.h @@ -7,21 +7,19 @@ // see http://developer.apple.com/techpubs/macosx/DeveloperTools/MachORuntime/2rt_powerpc_abi/PowerPC_Data_Alignment.html // align=reset is at the bottom of the file. -typedef struct RLEPixelData +typedef struct NovaControlBits { - // 'rl‘#' resource - short width; // pixel width (max for all frames) - short height; // pixel height (max for all frames) - short depth; // bit depth (8/16/32) - short palette; // color table 'clut' ID (0 for default) - short nframes; // number of frames in this resource - short reserved1; - short reserved2; - short reserved3; - char tokens[1]; // the RLE token data (variable size array) -} RLEPixelData; + // 10,000 bits for ncbs, could be made faster by aligning to word boundries? (using longs) but would require padding + char bits[1250]; // access bit 777 thus: bits[777/8] >> (777 % 8)) & 0x01 + // or: bits[777/8] & (0x01 << (777 % 8)) +} NovaControlBits; -#define kRLEResourceHeaderSize (sizeof(RLEPixelData) - 1) +typedef struct BoomRec +{ + short FrameAdvance; // 100 = normal speed, less is slower, higher faster + short SoundIndex; // 0-63 index, mapping to 300-363 resID, -1 == no sound + short GraphicIndex; // 0-63 index, mapping to 400-463 resID +} BoomRec; typedef struct CharRec { @@ -44,6 +42,60 @@ typedef struct CharRec short UnusedA[8]; } CharRec; +typedef struct ColrRec +{ + long ButtonUp; + long ButtonDown; + long ButtonGrey; + char MenuFont[64]; + short MenuFontSize; + long MenuColor1; + long MenuColor2; + long GridBright; + long GridDim; + // p2c: Structs.p, line 696: Warning: Symbol 'RECT' is not defined [221] + Rect ProgArea; + long ProgBright; + long ProgDim; + long ProgOutline; + + short Button1x; + short Button1y; + short Button2x; + short Button2y; + short Button3x; + short Button3y; + short Button4x; + short Button4y; + short Button5x; + short Button5y; + short Button6x; + short Button6y; + + long FloatingMap; + long ListText; + long ListBkgnd; + long ListHilite; + long EscortHilite; + + char ButtonFont[64]; + short ButtonFontSz; + + short LogoX; + short LogoY; + + short RolloverX; + short RolloverY; + + short Slide1x; + short Slide1y; + short Slide2x; + short Slide2y; + short Slide3x; + short Slide3y; + +} ColrRec; + typedef struct CronRec { short FirstDay; @@ -70,232 +122,6 @@ typedef struct CronRec short GovtNewsString[4]; } CronRec; -typedef struct SpinRec -{ - short SpritesID; - short MasksID; - short xSize; - short ySize; - short nx; - short ny; -} SpinRec; - -typedef struct ShanRec -{ - short BaseImageID; - short BaseMaskID; - short BaseSetCount; - short BaseXSize; - short BaseYSize; - short BaseTransp; - - short AltImageID; - short AltMaskID; - short AltSetCount; - short AltXSize; - short AltYSize; - - short GlowImageID; - short GlowMaskID; - short GlowXSize; - short GlowYSize; - - short LightImageID; - short LightMaskID; - short LightXSize; - short LightYSize; - - short WeapImageID; - short WeapMaskID; - short WeapXSize; - short WeapYSize; - - short Flags; - - short AnimDelay; - short WeapDecay; - short FramesPer; - short BlinkMode; - short BlinkA; - short BlinkB; - short BlinkC; - short BlinkD; - - short ShieldImgID; - short ShieldMaskID; - short ShieldXSize; - short ShieldYSize; - - short GunPosX[4]; - short GunPosY[4]; - short TurretPosX[4]; - short TurretPosY[4]; - short GuidedPosX[4]; - short GuidedPosY[4]; - short BeamPosX[4]; - short BeamPosY[4]; - - short UpCompressX; - short UpCompressY; - short DnCompressX; - short DnCompressY; - - short GunPosZ[4]; - short TurretPosZ[4]; - short GuidedPosZ[4]; - short BeamPosZ[4]; - - short UnusedA[8]; - -} ShanRec; - -typedef struct SystRec -{ - short xPos; - short yPos; - short con[16]; - short nav[16]; - short DudeTypes[8]; - short Probs[8]; - short AvgShips; - short Govt; - short Message; - short Asteroids; - short Interference; - short Person[8]; - short PersonProb[8]; - long BkgndColor; - short Murk; - short AstTypes; - char Visiblility[256]; - short ReinfFleet; - short ReinfTime; - short ReinfIntrval; - short UnusedA[8]; -} SystRec; - -typedef struct SpobRec -{ - short xPos; - short yPos; - short spobType; - long Flags; - short Tribute; - short TechLevel; - short SpecialTech1; - short SpecialTech2; - short SpecialTech3; - short Govt; - short MinCoolness; - short CustPicID; - short CustSndID; - short DefDude; - short DefCount; - short Flags2; - short AnimDelay; - short Frame0Bias; - short HyperLink[8]; - // OnDominate: packed array[0..254] of char; - // OnRelease: packed array[0..254] of char; - char cdata[510]; - long Fee; - short Gravity; - short Weapon; - long Strength; - short DeadType; - short DeadTime; - short ExplodType; - // OnDestroy : packed array[0..254] of char; - // OnRegen : packed array[0..254] of char; - char cdata2[510]; - short SpecialTech4; - short SpecialTech5; - short SpecialTech6; - short SpecialTech7; - short SpecialTech8; - short UnusedA[8]; -} SpobRec; - -typedef struct ShipRec -{ - short holds; - short Shield; - short Accel; - short Speed; - short Maneuver; - short Fuel; - short freeMass; - short Armor; - short ShieldRegen; - short WType[4]; - short WCount[4]; - short Ammo[4]; - short MaxGun; - short MaxTur; - short TechLevel; - long Cost; - short DeathDelay; - short ArmorRech; - short Explode1; - short Explode2; - short DispWeight; - short Mass; - short Length; - short InherentAI; - short Crew; - short Strength; - short InherentGovt; - short Flags; - short PodCount; - short DefaultItems[4]; - short ItemCount[4]; - short FuelRegen; - short SkillVar; - short Flags2; - long Contributes0; - long Contributes1; - // Availability: packed array[0..254] of char; - // AppearOn: packed array[0..254] of char; - // OnPurchase: packed array[0..255] of char; - - char cdata1[766]; - - short Deionize; - short IonizeMax; - short KeyCarried; - short DefaultItems2[4]; - short ItemCount2[4]; - long Require0; - long Require1; - - short BuyRandom; - short HireRandom; - - short unusedBlock[34]; - - // OnCapture: packed array[0..254] of char; - // OnRetire: packed array[0..254] of char; - // ShortName: packed array[0..63] of char; - // CommName: packed array[0..31] of char; - // LongName: packed array[0..127] of char; - // MovieFile: packed array[0..31] of char; - - char cdata2[766]; - - short WType2[4]; - short WCount2[4]; - short Ammo2[4]; - - // SubTitle: packed array[0..63] of char; - char cdata3[64]; - short Flags3; - short UpgradeTo; - long EscUpgrdCost; - long EscSellValue; - short EscortType; - short UnusedA[8]; -} ShipRec; - typedef struct DescRec { char Description[1]; @@ -308,99 +134,10 @@ typedef struct DescCodaRec short Flags; } DescCodaRec; -typedef struct WeapRec +typedef struct DeqtRec { - short Reload; - short Count; - short MassDmg; - short EnergyDmg; - short Guidance; - short Speed; - short AmmoType; - short Graphic; - short Inaccuracy; - short Sound; - short Impact; - short ExplodType; - short ProxRadius; - short BlastRadius; short Flags; - short Seeker; - short SmokeSet; - short Decay; - short Particles; - short PartVel; - short PartLifeMin; - short PartLifeMax; - long PartColor; - short BeamLength; - short BeamWidth; - short Falloff; - long BeamColor; - long CoronaColor; - short SubCount; - short SubType; - short SubTheta; - short SubLimit; - short ProxSafety; - short Flags2; - short Ionization; - short HitParticles; - short HitPartLife; - short HitPartVel; - long HitPartColor; - short Recoil; - short ExitType; - short BurstCount; - short BurstReload; - short JamVuln1; - short JamVuln2; - short JamVuln3; - short JamVuln4; - short Flags3; - short Durability; - short GuidedTurn; - short MaxAmmo; - short LiDensity; - short LiAmplitude; - long IonizeColor; - short UnusedA[8]; -} WeapRec; - -typedef struct OutfRec -{ - short DispWeight; - short Mass; - short TechLevel; - short ModType; - short ModVal; - short Max; - short Flags; - long Cost; - short ModType2; - short ModVal2; - short ModType3; - short ModVal3; - short ModType4; - short ModVal4; - long Contributes0; - long Contributes1; - long Require0; - long Require1; - // Availability: packed array[0..254] of char; - // OnPurchase: packed array[0..254] of char; - // OnSell: packed array[0..254] of char; - // ShortName: packed array[0..63] of char; - // LCName: packed array[0..63] of char; - // LCPlural: packed array[0..64] of char; - char cdata[958]; - short ItemClass; - short ScanMask; - short BuyRandom; - short RequireGovt; - short UnusedA[8]; -} OutfRec; - +} DeqtRec; typedef struct DudeRec { @@ -413,6 +150,58 @@ typedef struct DudeRec short UnusedA[8]; } DudeRec; +typedef struct FletRec +{ + short LeadShipType; + short EscortShipType[4]; + short EscortMin[4]; + short EscortMax[4]; + short Govt; + short LinkSyst; + char ActivateOn[256]; + short Quote; + short Flags; + short UnusedA[8]; +} FletRec; + +typedef struct IntfRec +{ + long BrightText; + long DimText; + Rect RadarArea; + long BrightRadar; + long DimRadar; + Rect ShieldArea; + long Shield; + Rect ArmorArea; + long Armor; + Rect FuelArea; + long FuelFull; + long FuelPartial; + Rect NavArea; + Rect WeapArea; + Rect TargArea; + Rect CargoArea; + char StatusFont[64]; + short StatFontSize; + short SubtitleSize; + short StatusBkgnd; +} IntfRec; + +typedef struct JunkRec +{ + short SoldAt[8]; + short BoughtAt[8]; + short BasePrice; + short Flags; + short ScanMask; + // LCName: packed array[0..63] of char; + // Abbrev: packed array[0..63] of char; + // BuyOn: packed array[0..254] of char; + // SellOn: packed array[0..254] of char; + char cdata[638]; +} JunkRec; + typedef struct GovtRec { short VoiceType; @@ -514,6 +303,63 @@ typedef struct MisnRec short UnusedA[8]; } MisnRec; +typedef struct NebuRec +{ + short XPos; + short YPos; + short XSize; + short YSize; + // ActiveOn: packed array[0..254] of char; + // OnExplore: packed array[0..254] of char; + char cdata[510]; + short UnusedA[8]; +} NebuRec; + +typedef struct OopsRec +{ + short Stellar; + short Commodity; + short PriceDelta; + short Duration; + short Freq; + char ActivateOn[256]; + short UnusedA[8]; +} OopsRec; + +typedef struct OutfRec +{ + short DispWeight; + short Mass; + short TechLevel; + short ModType; + short ModVal; + short Max; + short Flags; + long Cost; + short ModType2; + short ModVal2; + short ModType3; + short ModVal3; + short ModType4; + short ModVal4; + long Contributes0; + long Contributes1; + long Require0; + long Require1; + // Availability: packed array[0..254] of char; + // OnPurchase: packed array[0..254] of char; + // OnSell: packed array[0..254] of char; + // ShortName: packed array[0..63] of char; + // LCName: packed array[0..63] of char; + // LCPlural: packed array[0..64] of char; + char cdata[958]; + short ItemClass; + short ScanMask; + short BuyRandom; + short RequireGovt; + short UnusedA[8]; +} OutfRec; + typedef struct PersRec { short LinkSyst; @@ -542,78 +388,6 @@ typedef struct PersRec short UnusedA[8]; } PersRec; -typedef struct DeqtRec -{ - short Flags; -} DeqtRec; - -typedef struct YearRec -{ - short Day; - short Month; - short Year; - char Prefix[16]; - char Suffix[15]; -} YearRec; - -typedef struct OopsRec -{ - short Stellar; - short Commodity; - short PriceDelta; - short Duration; - short Freq; - char ActivateOn[256]; - short UnusedA[8]; -} OopsRec; - -typedef struct NebuRec -{ - short XPos; - short YPos; - short XSize; - short YSize; - // ActiveOn: packed array[0..254] of char; - // OnExplore: packed array[0..254] of char; - char cdata[510]; - short UnusedA[8]; -} NebuRec; - -typedef struct BoomRec -{ - short FrameAdvance; // 100 = normal speed, less is slower, higher faster - short SoundIndex; // 0-63 index, mapping to 300-363 resID, -1 == no sound - short GraphicIndex; // 0-63 index, mapping to 400-463 resID -} BoomRec; - -typedef struct FletRec -{ - short LeadShipType; - short EscortShipType[4]; - short EscortMin[4]; - short EscortMax[4]; - short Govt; - short LinkSyst; - char ActivateOn[256]; - short Quote; - short Flags; - short UnusedA[8]; -} FletRec; - -typedef struct JunkRec -{ - short SoldAt[8]; - short BoughtAt[8]; - short BasePrice; - short Flags; - short ScanMask; - // LCName: packed array[0..63] of char; - // Abbrev: packed array[0..63] of char; - // BuyOn: packed array[0..254] of char; - // SellOn: packed array[0..254] of char; - char cdata[638]; -} JunkRec; - typedef struct RankRec { short Weight; @@ -645,82 +419,314 @@ typedef struct RoidRec short UnusedA[8]; } RoidRec; -typedef struct ColrRec +typedef struct RLEPixelData { - long ButtonUp; - long ButtonDown; - long ButtonGrey; - char MenuFont[64]; - short MenuFontSize; - long MenuColor1; - long MenuColor2; - long GridBright; - long GridDim; - // p2c: Structs.p, line 696: Warning: Symbol 'RECT' is not defined [221] - Rect ProgArea; - long ProgBright; - long ProgDim; - long ProgOutline; + // 'rl‘#' resource + short width; // pixel width (max for all frames) + short height; // pixel height (max for all frames) + short depth; // bit depth (8/16/32) + short palette; // color table 'clut' ID (0 for default) + short nframes; // number of frames in this resource + short reserved1; + short reserved2; + short reserved3; + char tokens[1]; // the RLE token data (variable size array) +} RLEPixelData; - short Button1x; - short Button1y; - short Button2x; - short Button2y; - short Button3x; - short Button3y; - short Button4x; - short Button4y; - short Button5x; - short Button5y; - short Button6x; - short Button6y; +#define kRLEResourceHeaderSize (sizeof(RLEPixelData) - 1) - long FloatingMap; - long ListText; - long ListBkgnd; - long ListHilite; - long EscortHilite; - - char ButtonFont[64]; - short ButtonFontSz; - - short LogoX; - short LogoY; - - short RolloverX; - short RolloverY; - - short Slide1x; - short Slide1y; - short Slide2x; - short Slide2y; - short Slide3x; - short Slide3y; - -} ColrRec; - -typedef struct IntfRec +typedef struct ShanRec { - long BrightText; - long DimText; - Rect RadarArea; - long BrightRadar; - long DimRadar; - Rect ShieldArea; - long Shield; - Rect ArmorArea; - long Armor; - Rect FuelArea; - long FuelFull; - long FuelPartial; - Rect NavArea; - Rect WeapArea; - Rect TargArea; - Rect CargoArea; - char StatusFont[64]; - short StatFontSize; - short SubtitleSize; - short StatusBkgnd; -} IntfRec; + short BaseImageID; + short BaseMaskID; + short BaseSetCount; + short BaseXSize; + short BaseYSize; + short BaseTransp; + + short AltImageID; + short AltMaskID; + short AltSetCount; + short AltXSize; + short AltYSize; + + short GlowImageID; + short GlowMaskID; + short GlowXSize; + short GlowYSize; + + short LightImageID; + short LightMaskID; + short LightXSize; + short LightYSize; + + short WeapImageID; + short WeapMaskID; + short WeapXSize; + short WeapYSize; + + short Flags; + + short AnimDelay; + short WeapDecay; + short FramesPer; + short BlinkMode; + short BlinkA; + short BlinkB; + short BlinkC; + short BlinkD; + + short ShieldImgID; + short ShieldMaskID; + short ShieldXSize; + short ShieldYSize; + + short GunPosX[4]; + short GunPosY[4]; + short TurretPosX[4]; + short TurretPosY[4]; + short GuidedPosX[4]; + short GuidedPosY[4]; + short BeamPosX[4]; + short BeamPosY[4]; + + short UpCompressX; + short UpCompressY; + short DnCompressX; + short DnCompressY; + + short GunPosZ[4]; + short TurretPosZ[4]; + short GuidedPosZ[4]; + short BeamPosZ[4]; + + short UnusedA[8]; + +} ShanRec; + +typedef struct ShipRec +{ + short holds; + short Shield; + short Accel; + short Speed; + short Maneuver; + short Fuel; + short freeMass; + short Armor; + short ShieldRegen; + short WType[4]; + short WCount[4]; + short Ammo[4]; + short MaxGun; + short MaxTur; + short TechLevel; + long Cost; + short DeathDelay; + short ArmorRech; + short Explode1; + short Explode2; + short DispWeight; + short Mass; + short Length; + short InherentAI; + short Crew; + short Strength; + short InherentGovt; + short Flags; + short PodCount; + short DefaultItems[4]; + short ItemCount[4]; + short FuelRegen; + short SkillVar; + short Flags2; + long Contributes0; + long Contributes1; + // Availability: packed array[0..254] of char; + // AppearOn: packed array[0..254] of char; + // OnPurchase: packed array[0..255] of char; + + char cdata1[766]; + + short Deionize; + short IonizeMax; + short KeyCarried; + short DefaultItems2[4]; + short ItemCount2[4]; + long Require0; + long Require1; + + short BuyRandom; + short HireRandom; + + short unusedBlock[34]; + + // OnCapture: packed array[0..254] of char; + // OnRetire: packed array[0..254] of char; + // ShortName: packed array[0..63] of char; + // CommName: packed array[0..31] of char; + // LongName: packed array[0..127] of char; + // MovieFile: packed array[0..31] of char; + + char cdata2[766]; + + short WType2[4]; + short WCount2[4]; + short Ammo2[4]; + + // SubTitle: packed array[0..63] of char; + char cdata3[64]; + short Flags3; + short UpgradeTo; + long EscUpgrdCost; + long EscSellValue; + short EscortType; + short UnusedA[8]; +} ShipRec; + +typedef struct SpinRec +{ + short SpritesID; + short MasksID; + short xSize; + short ySize; + short nx; + short ny; +} SpinRec; + +typedef struct SpobRec +{ + short xPos; + short yPos; + short spobType; + long Flags; + short Tribute; + short TechLevel; + short SpecialTech1; + short SpecialTech2; + short SpecialTech3; + short Govt; + short MinCoolness; + short CustPicID; + short CustSndID; + short DefDude; + short DefCount; + short Flags2; + short AnimDelay; + short Frame0Bias; + short HyperLink[8]; + // OnDominate: packed array[0..254] of char; + // OnRelease: packed array[0..254] of char; + char cdata[510]; + long Fee; + short Gravity; + short Weapon; + long Strength; + short DeadType; + short DeadTime; + short ExplodType; + // OnDestroy : packed array[0..254] of char; + // OnRegen : packed array[0..254] of char; + char cdata2[510]; + short SpecialTech4; + short SpecialTech5; + short SpecialTech6; + short SpecialTech7; + short SpecialTech8; + short UnusedA[8]; +} SpobRec; + +typedef struct SystRec +{ + short xPos; + short yPos; + short con[16]; + short nav[16]; + short DudeTypes[8]; + short Probs[8]; + short AvgShips; + short Govt; + short Message; + short Asteroids; + short Interference; + short Person[8]; + short PersonProb[8]; + long BkgndColor; + short Murk; + short AstTypes; + char Visiblility[256]; + short ReinfFleet; + short ReinfTime; + short ReinfIntrval; + short UnusedA[8]; +} SystRec; + +typedef struct WeapRec +{ + short Reload; + short Count; + short MassDmg; + short EnergyDmg; + short Guidance; + short Speed; + short AmmoType; + short Graphic; + short Inaccuracy; + short Sound; + short Impact; + short ExplodType; + short ProxRadius; + short BlastRadius; + short Flags; + short Seeker; + short SmokeSet; + short Decay; + short Particles; + short PartVel; + short PartLifeMin; + short PartLifeMax; + long PartColor; + short BeamLength; + short BeamWidth; + short Falloff; + long BeamColor; + long CoronaColor; + short SubCount; + short SubType; + short SubTheta; + short SubLimit; + short ProxSafety; + short Flags2; + short Ionization; + short HitParticles; + short HitPartLife; + short HitPartVel; + long HitPartColor; + short Recoil; + short ExitType; + short BurstCount; + short BurstReload; + short JamVuln1; + short JamVuln2; + short JamVuln3; + short JamVuln4; + short Flags3; + short Durability; + short GuidedTurn; + short MaxAmmo; + short LiDensity; + short LiAmplitude; + long IonizeColor; + short UnusedA[8]; +} WeapRec; + +typedef struct YearRec +{ + short Day; + short Month; + short Year; + char Prefix[16]; + char Suffix[15]; +} YearRec; #pragma options align=reset \ No newline at end of file diff --git a/NovaTools/boom/BoomWindowController.h b/NovaTools/boom/BoomWindowController.h index 6463047..e784a97 100644 --- a/NovaTools/boom/BoomWindowController.h +++ b/NovaTools/boom/BoomWindowController.h @@ -35,7 +35,7 @@ enum // boom defaults - (void)update; - (void)controlTextDidChange:(NSNotification *)notification; -- (IBAction)toggleSilence:(id)sender; +- (IBAction)setSilent:(id)sender; - (IBAction)playSound:(id)sender; @end diff --git a/NovaTools/boom/BoomWindowController.m b/NovaTools/boom/BoomWindowController.m index 0076b62..30af5e2 100644 --- a/NovaTools/boom/BoomWindowController.m +++ b/NovaTools/boom/BoomWindowController.m @@ -111,11 +111,9 @@ [self setDocumentEdited:[resource isDirty]]; } -- (IBAction)toggleSilence:(id)sender +- (IBAction)setSilent:(id)sender { silent = ![soundButton state]; - [soundField setEnabled:!silent]; - [playButton setEnabled:!silent]; [resource touch]; [self setDocumentEdited:YES]; } diff --git a/NovaTools/boom/English.lproj/boom.nib/classes.nib b/NovaTools/boom/English.lproj/boom.nib/classes.nib index a853176..9d69c4b 100644 --- a/NovaTools/boom/English.lproj/boom.nib/classes.nib +++ b/NovaTools/boom/English.lproj/boom.nib/classes.nib @@ -1,7 +1,7 @@ { IBClasses = ( { - ACTIONS = {playSound = id; toggleSilence = id; }; + ACTIONS = {playSound = id; setSilent = id; }; CLASS = BoomWindowController; LANGUAGE = ObjC; OUTLETS = { @@ -16,7 +16,7 @@ }, {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, { - ACTIONS = {toggleResID = id; }; + ACTIONS = {}; CLASS = NovaWindowController; LANGUAGE = ObjC; SUPERCLASS = NSWindowController; diff --git a/NovaTools/boom/English.lproj/boom.nib/info.nib b/NovaTools/boom/English.lproj/boom.nib/info.nib index 3517477..d11da9b 100644 --- a/NovaTools/boom/English.lproj/boom.nib/info.nib +++ b/NovaTools/boom/English.lproj/boom.nib/info.nib @@ -3,14 +3,24 @@ IBDocumentLocation - 86 100 356 240 0 0 1024 746 + 17 87 357 296 0 0 1280 1002 IBFramework Version - 283.0 + 326.0 + IBLockedObjects + + 41 + 30 + 37 + 38 + 39 + 22 + 49 + IBOpenObjects 5 IBSystem Version - 6G30 + 7A179 diff --git a/NovaTools/boom/English.lproj/boom.nib/objects.nib b/NovaTools/boom/English.lproj/boom.nib/objects.nib index 14eb620fea7517b899134b93939c751a9c401168..0226f44be746dc6813de97cd28c4cae2e26b5669 100644 GIT binary patch literal 5515 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 literal 5278 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 #import "NovaWindowController.h" +#define titleField [titleForm cellAtIndex:0] #define cashField [goodiesForm cellAtIndex:0] #define killsField [goodiesForm cellAtIndex:1] #define prefixField [timeForm cellAtIndex:0] @@ -9,6 +10,19 @@ #define statusField2 [statusForm cellAtIndex:1] #define statusField3 [statusForm cellAtIndex:2] #define statusField4 [statusForm cellAtIndex:3] +#define governmentField1 [governmentForm cellAtRow:0 column:0] +#define governmentField2 [governmentForm cellAtRow:1 column:0] +#define governmentField3 [governmentForm cellAtRow:2 column:0] +#define governmentField4 [governmentForm cellAtRow:3 column:0] +#define startField1 [startForm cellAtRow:0 column:0] +#define startField2 [startForm cellAtRow:1 column:0] +#define startField3 [startForm cellAtRow:2 column:0] +#define startField4 [startForm cellAtRow:3 column:0] +#define introPictField1 [introPictTextForm cellAtRow:0 column:0] +#define introPictField2 [introPictTextForm cellAtRow:1 column:0] +#define introPictField3 [introPictTextForm cellAtRow:2 column:0] +#define introPictField4 [introPictTextForm cellAtRow:3 column:0] +#define introTextField [introPictTextForm cellAtRow:4 column:0] #define introDelayField1 [introDelayForm cellAtIndex:0] #define introDelayField2 [introDelayForm cellAtIndex:1] #define introDelayField3 [introDelayForm cellAtIndex:2] @@ -19,10 +33,15 @@ { CharRec *charRec; + // ===== + + // char info + IBOutlet NSForm *titleForm; IBOutlet NSButton *principalCharButton; IBOutlet NSComboBox *shipField; IBOutlet NSForm *goodiesForm; + // beginning of time IBOutlet NSTextField *dayField; IBOutlet NSTextField *monthField; IBOutlet NSTextField *yearField; @@ -31,28 +50,22 @@ IBOutlet NSStepper *yearStepper; IBOutlet NSForm *timeForm; - IBOutlet NSComboBox *startField1; - IBOutlet NSComboBox *startField2; - IBOutlet NSComboBox *startField3; - IBOutlet NSComboBox *startField4; - + // govt status & start locs IBOutlet NSForm *statusForm; - IBOutlet NSComboBox *governmentField1; - IBOutlet NSComboBox *governmentField2; - IBOutlet NSComboBox *governmentField3; - IBOutlet NSComboBox *governmentField4; + IBOutlet NSMatrix *governmentForm; + IBOutlet NSMatrix *startForm; - IBOutlet NSComboBox *introPictField1; - IBOutlet NSComboBox *introPictField2; - IBOutlet NSComboBox *introPictField3; - IBOutlet NSComboBox *introPictField4; + // introduction + IBOutlet NSMatrix *introPictTextForm; IBOutlet NSForm *introDelayForm; - IBOutlet NSComboBox *introTextField; IBOutlet NSButton *introImageView; // button so user can click to skip to next pic IBOutlet NSTextView *introTextView; + // ncbs IBOutlet NSForm *ncbForm; + // ====== + // char BOOL principalChar; diff --git a/NovaTools/char/English.lproj/char.nib/classes.nib b/NovaTools/char/English.lproj/char.nib/classes.nib index 4e957ab..8cd2aec 100644 --- a/NovaTools/char/English.lproj/char.nib/classes.nib +++ b/NovaTools/char/English.lproj/char.nib/classes.nib @@ -13,29 +13,20 @@ dayField = NSTextField; dayStepper = NSStepper; goodiesForm = NSForm; - governmentField1 = NSComboBox; - governmentField2 = NSComboBox; - governmentField3 = NSComboBox; - governmentField4 = NSComboBox; + governmentForm = NSMatrix; introDelayForm = NSForm; introImageView = NSButton; - introPictField1 = NSComboBox; - introPictField2 = NSComboBox; - introPictField3 = NSComboBox; - introPictField4 = NSComboBox; - introTextField = NSComboBox; + introPictTextForm = NSMatrix; introTextView = NSTextView; monthField = NSTextField; monthStepper = NSStepper; ncbForm = NSForm; principalCharButton = NSButton; shipField = NSComboBox; - startField1 = NSComboBox; - startField2 = NSComboBox; - startField3 = NSComboBox; - startField4 = NSComboBox; + startForm = NSMatrix; statusForm = NSForm; timeForm = NSForm; + titleForm = NSForm; yearField = NSTextField; yearStepper = NSStepper; }; diff --git a/NovaTools/char/English.lproj/char.nib/info.nib b/NovaTools/char/English.lproj/char.nib/info.nib index ddf632d..e4a8a0f 100644 --- a/NovaTools/char/English.lproj/char.nib/info.nib +++ b/NovaTools/char/English.lproj/char.nib/info.nib @@ -3,24 +3,49 @@ IBDocumentLocation - 308 330 356 240 0 0 1024 746 + 10 459 386 530 0 0 1280 1002 IBFramework Version - 283.0 + 326.0 IBGroupedObjects 2 - 194 - 192 - 190 - 189 - 196 - 191 + 372 + 367 + 365 + 370 + 368 + 366 IBLastGroupID 3 + IBLockedObjects + + 369 + 365 + 370 + 366 + 372 + 367 + 368 + 371 + 184 + 181 + 183 + 374 + 403 + 154 + 390 + 218 + + IBOldestOS + 3 + IBOpenObjects + + 137 + IBSystem Version - 6G30 + 7A179 diff --git a/NovaTools/char/English.lproj/char.nib/keyedobjects.nib b/NovaTools/char/English.lproj/char.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..47e278cc19efd278c3903633329b670e78441566 GIT binary patch literal 28648 zcmcJ22Y3`k|NoRNmqzZ=E9oRa64EP4NFgK;LOLAeE*!}b0wD=0^vDjq7eNrQP!+LY zLr@e&R0Kh#OA{0UQEZ@s4gcTWy%Zp?FYoVp{@jyfZ)bMOXTJSAvy5t}t!ZkGh&YZg zB8Vam@kl@-vepNh8Y{=tOf)wR3xr=yHT88Rfz9;|!vgC^jWt&`H&tlu^NRpa>L);!!e6LzQS8T817$tI^|V z8+s1Cie5vnquuB&^bXpG_M?O76Z9E6f{vq;=oC7G&Y|<@OY{|b4_!i6&^PEBx`}>4 zzoOgd5A+x2u`l++{x}GS;4mDH``{=Xjbm{fPRCg|8xO!aI1dlTg}4Nd$91?KH{eFx zf*-<*@lw13KaMxy&3GGr5pTyY<5%zw{5t&Ih2MnVZ{a=g`(3$jych37-{24M0eldD zhL7Om_yj(M&)_fcxA=Sf6aEGNj{hK5XdAI5c0@;4VsBI!%|kvx)5hLdtKhP050WD=Q7rjV&*8ktU7$wOoYkq9FT$a1oZtVZ9WY2+!g zo@^wW$TMUsd5*kDUM8=S9b_kYk9>e8kdMh>@(KBj93iJkA(~CjkPGA@`HFl^u99z{ zt?T4R@)J2rekH$=Kgi!ypd!^!8>*usk*EW8CT`S?dJtdgNxi5K^`pILZyH6@XgbY6 zHnaqOO6f41N~_Q|T0_UtT3SczX(Mf>6X_&6l}@Lv^dUNv&Y|-x^_S4)P=6JD1WH!Z zM=f`sq#NMw7Wy>YeTF`3xx1ad0(W1hJK^pw`ljXXyL2Di-A_M)y9ek&^d9|~9=4Pn zqbH&43_S~F=ja#oOZpZ4nqH>g&};NNdY%4Af1)?&P5K+XMSrJ%(7)*&j^_mO45#6& zIBU*^v*o&R_M8Lf&Utd(IX|u^*NY3|BDp9ohKrTgor~iV&^KHXmkhQ0a;aPzm&s*u zIb1F`n9Ju1xuKk%E9XXYHQZRPj;rSyxhDAA!cFF;aMQTyoWwD13AdbE$*tzraBI28 zxF@(Lx%J#L+*a;+?j`PJ?p5wJZYQ^kdz0I(^!OIH2YP&$+sD1neZYMP{qE-uavyVt zxntZ3?sM)uJo`2G4fg~0BljD3i@VMJ!Trhog=4upJmLvYd6C!fTI|Q`a2W5%JK&fm2-;l6FNgM4 z@GC8M*Yc0U-SzwieiPi^%s*|p|2)4P?!U^v26uPxJ1uwL=HG?8@ADtP-4FTw(Bnt^ zK}*?Z{4ppy#eWWEr};B5%Cr1={tNzV{tADMzs}#}f8qb&|59rUMBs6%U?o`7R>4NF zv)pwQT;Q&U;0brVgzlERfkH6c?Jb1D-7uk#Ah6dSSR=5RAe|!6Z})Rl;bYTBs4m3bn#`pEsZwhY-?+EV-dxiIekAws8_n`2p@R@J~zU>uG2%ih5g|osr;S1q{@TKsT z@U?JRxGH=jd@Fn>d@uYU{3QG=+!THheiLp9zYBi|e+&PJSfqTW7$HWAQDU?hBgT>_ zF;0vpj$(qCC?<)?VqY;ujK@Swg*s_sKQSHZM+$oQouN{9gP){89W# z{8_vq-V}cke-(cdZ;7|X-^D+~KgGYqzr{P^KN_UL8ls^Z4$ao^8bKp!G#V?7wZ=wc ztFhB`)7WdY8lA>Ld(L`t>HBqI3buG2E7qs@s4s}EJNQ-pH0XZTkMrf#|skwfb`$Uuk)3ew%P3t95?V~SB*@RM1DvE^}4{m8T0aC^0=F17)Ht)E{M|0VoIMqJd}-%0q)uJ{p1wP$4Qp#i#_8qB1lT4MTb~9F0Kb z$bgKf0*yo_$x6y%WFD9Uj4Wbg2_wrGS;5FkMjl~g4I_^+@;D<;GV&}V&oi=}kyjYm z!N@K~_Av4RBL^8d#KD+HFYMLT!!Ws=b1*CYXPm|`j*B@vlJm^NSTuL1+62hMdMK&sz(iI0%}A}s2R1O ziD(j<4DC%pQ_(au9krr|&5zWmomi`n`?pm&2kAeDnF)@rcCrj=B9@Fx+=5$ME^Q@HLIYTg2wvhdbuK8 z7q>K+8zw1hR;g03Z`A$GD;pz6T`nT z{0k$o(oE=f+O)`+P~XUy)==MRv9WL!5z*SJ(&HL5YBPEitwoQaby7FURq~R2K1WZW zC(%=AJ=y@xZ$z8WW>|_XXe@dfJ%hHQXJO(cHO;kV83cd^Kxn9MY?e`nX`1Vr6-l7- zUm1)Bm_eyNw5F%9<+EfJPH6oywRy(6o&}bFn9s zd8u<+jCP`3=neFy5`OE3M;Co*I@B;wwLkobjWe7ngl$fd|56SH)`UvK?4IKa^!<&F; z>Z&DowYQJap-t!zI*ei!Y1t-GlsYooDHnIo=~K&`Jd2`|x*EvQPAhp#9*E?vC3iP* z!qPL&RUxAD~hq8`31VL30*)J6=7?cNP1(VX$ml%@^_d@ znTf4s(;`EC6IxGMP;4W?ua#b90=x`^4wgxz-`$;FwR9R%mR)16tx7rpF4A}CI{F^q z{Q>=menLN^8#0f}GC(Fn`L9ewG8xL(vTQK}>t=$pT3cVOsFhHuw^opPNnvHhQ<|F1 zg=IhJJ(gJ{euz4m|%)Ih2mtwf)!SUh(4(ON*<}A*MKTz)*1>$@?V%vyRf>T)nWmQSc9#w zHMYUF*baBY_E?K`*a16YC**;h(R}QJU9lTj6Z5e<_Q0OV4|`#6+#SCAKp zS5?a)yv|$=io;T_JXuqxi0Af_(J*UMGt4Di5!S#7YI$4BYB}&-c$K-bX1qz3z~Rkf z>RXzC)z!g{F*UW_Xp$18SSd+Lm7=A-Qj`=arAhsy^s?Rop#cFAWns#nV<-U!z!D~+ zL>ws3ZX6ggQjD^6xCaj2h=Ubvo>impx2bW;G29dCAI80KZyYK!K1{b}R7Bzs8TstHfRpx-e^nbremaJkZ}2@a6C@Hi8u)-!?N{7 z$8ZWxMYC}l?uX`s-2(8}HPT5wm-apR%@;HH*V4TptgqE!D+%i*PX*H2zY5M&_Q! zrML_a#lx^3562^LIW}M;t^l-0ViVv!3RmJPY{sK;H6DX&@K`(!182ZcRYSA5c}lH$ zu&GHkw$*#Gh6m~e;0M>#$?6KEidv#5!uD^9wE{GxmKDLEE3}Rl(lCp(Tng1kB_cO5@sYjLehT+i?phOaV`bY3-N z@C+=0z#oqpYQ;10EIb=podamsfV4b@=i+&IK3)J+zYwS5MKJG-`bMC-k|_;f;XwdW zfwe#pK=pNi#E{XWo6L$GQUYc`Q-i4y_&^rzs)1s`E2Dn0+=4Wi;UNse?|iL;l+SRX zI)^1_)CRn;lc|N5!IUQ9#-suf(hHBX~7lgCE6f@nd+MR3KGL4bpjr zV;N3lIECSKhWlU8I{a7L7%XG_1bz}p_$jyRcgD z8?y4ZG;~a9sQm8H?6!=?(ACp#cY6A?@^r=BPrqY%dgL$#xybvh5B#3eL>n~byB~kw z^7!ae7Mpw`_%>77Vs=R5q_I++1DAnNseH4urGt;+W2&Vijh8@7 zX)9HGq5WZt8G=tLW=Mo;hTzZf>CO1GYS*d^1??(kRJ-kq&*F2>;B)wVhoNE_lv1x8 zED^aA<;z)>tHIupuwbb(rlIfzmxg+ zy42X2lYanqeFXmqoZKWawc5{U)JA**-;|oA>8J3o%38Lq9Ahd~KLI?#izJY!s9N~$8-XJ2; zC?-LHxv{3cs-{x$b0?Z$;Xnr{^kPmB0LuAxd1=P&8t1d$c{2BBZy9j8WDd?Hn*AOO4Vqkt}>`N#ix$7 zNLdmjlg|~>Lt1bWeM>?}Ph`df#K0`l3qL}7!z5*EF}DhqK^}`7Q?SskG*_A@%~#MS z;pjkNWSKf{bqJ9pY9on4v9Q{mX#L(kVxW&$5=TO%h0+;mk=j@SG#1sarAZR1>F#gh~mGD#(A(h})}!m>d1lSw+sK&>Q`WZ_xJgY<_+v*Bj|$sxHol?;TdK`<6M zJ_58QGb`{z4wxrOunktZsoe-^yD2S|j!Da;&%pnX4oSz=&IhAWo1m?MB&T!NLr4KB zBt^2kAjL4Y68I^FPZ=2s5y4?Z53ps`SGFne0g6C`PBU8?o0P~-r6rcKTzX$xA-y7f zptC~K$7+`&KoF49vnp>B12zyNsZhEaNlauEjAj6-Bvs%O{X}w!nT#gYuw=zx2AQj} zz$pZi85m1;W6bjEm9~8xm^dNENkp&8C_0idP*Hc4N7{B zj3whpEg4VhNIhvF6G$UzBF)lDX_fSdv|3stJu0o09+TEdk4sNfXx-Br8fwkH1zFj? z4dC9GN7b7et9+Xk+sDIFmYZ2}elID#!TBBlT6yYu|~H z;Su+@5UEt|4>Gr*sijsHyuM&%HN(QzG&IZ4MBV?4Wk@+CgY)h$gb-ME4TvHTpG}=d z)m`bRBsV+TcVbLeBXO0DH*nJLZ_-_zP)T;y{bd1}^^N9&cF;v&d{R2dHl@P~AMpn$8EWP>Ec@>dS!1q^C&MJkyl=mbPfQOb?j~ zJ@{vW_L0_0FP$I@$s%HerWTVWpp*T`QnF0uVrZloyb};j@KoMlBZx?r`!fQOjbY(50jPBCg}xfqsriqpaWn~fYNBJR~K_YJ&3y;bEDbfgOW959S+$a z0(nYy+hA2K!JxYbq1N0^7H$R*Us641_x8H?JJ1l6C$GrdU9CR(8kxP3%to>5x7Uej zBQc@a&&e+G26>b0CT~Igw;@HohrEN2!Z_b0d*OGP;zzcbBJI7%QIC#A%B^cMH_8EU z1q@{hS?1BEmfGgKr=UQaS5r5xqa8)n4>mQ9gUu2hQG-`?HW#Hgq`k+;J~^61-Uqk& z2E+%824v(!`pTaO)V7=-k^?w!BiTAD~5g`hb$}hdWF`r$r9X_ z3G1GybEk)3nLo8WvD&JQVbZ0r0eIVsc9F>;)oklvEsmfqb&PLa=H2yaTeK?#(~ zq4HXgddFZ>!8v99&yz0zJVl)Wt>@G?7dO;5OM9euhE4+)B`m?BX1^qb8)1t=Y#RiZ zWC*e&d?S1dHVZ{hP@n+hLc zF;eA+Ap#}0V;L*?p8NnwkNwhzL*@8mSY+!l@-s{!l-wXU$uD4eL3~X~b0}fK1JXh1 zBj9BSUDi)hb&pDFx5({HQbryWfksTF7=8$q|8bO;>$fy2Su{|EC8ow|b2D71A!+|K3AppH z4kPJP=@ZZ<)24+%0zjT4qyc2>%3`^;mRD5Ox2bG3Y)h@E_0!b4!-#{P+G?D+Z)CQe z#%2d2>jq=9r&?HeFiR`J?vak@F!oPtbjg&CDuIW)2a*sEE0|z0y{IE~+CrV$Ad&U3 zVq(ak++#t4brMHiR11>2N++dL_qkKDok-nDTDzV2xg5c<2+el$utX+^cJW5NWowvr z_fH3buI;WY6!j%Nw~(G~qk2Ghp8C@O8c2g^57nKg!LmC~L-0b{6B1o-!ri3|2TNaQ zd4@w6?jc=ZxF^Fgipd!ZoDvzS+QEr%85L(SIcX>wwS|V!aN37P&`9Z`^asPxf|g;= z3tD^pF^#4%G?vEEc-0}HASP*In}bP{z%`XWeu{IunkLh}@NFwip{cTGC+E9lv=#p> z$JA6Ni#>?wwh@350|V1%Qd5U$f#)(IrU*eevm64JjV3iYsE9sG@>q86G9eoW!7gBt zQpgu~)RQi0Md^3xO9x1hqE0djEusA^GU_X^?VIlxXcx3PnyH$0G>i79+2kKO08PXf zL4C^JXFZxg5zV2wbRc{N(L6dBu*-*a7(&BHE-j#iw1^hN3?PA*W3H(l)2zCekmste zZ5dw&)*Yy;`!bPoQVWRr{t~qfXm3DcjhcA$Pag@acv<>dy6WE#bf!Q2An8{n(|2Q} zgrwWj73qd_3q%n3J`rm8hL(X|qeG={PQ!BQ>2NSnLg)xuP7Sb_Nz_Oy;4>1YVWOjG zC4in|Hh~Ax-X3An)I`O)>OFo z<&-5ZVTnpmGqBNUT8-YIV{oeUgY=#BlXU&=Wg2T)rte3LQ3oPhZJny%qjbEb%8y`2 zsg-2LQ*@2WWes$~7CNCLAOXQvg&aGk1_Pt9K-C@LlKBuY`GhvnBAn{r6e%Z%I;DST zi>1q(z*3fwNC(w+>UlDqvXM?{^S0WSzEfMogHE%w^_#xBZDoOyo7?zB6}uJzI)h4E zsRS#>Fm96?s%EGkKdQc+$CT(vTLUTvv*_$CbaopCuztW;qv|1KDKFXu$npFq_Leh_ zN(70{?UKPE|0uJ#^yhw4=us{-_K=J}W@*=~I3_CFF%&-%~9x5a+$&kFvuuE5v zY^AR%kh}(v>`)*4+_a{`WAfNRv?MAKoY4yvIih}hvDuF zdo%3Iun)sQDkOVlNZw=EuPaF2pzkY?d;pMqs6rCJus_3r|943A5LyG1A}R{9?qEL0 zw02=OSd4}asdA_@LKdT84!W$8Os@yU=M(xVd_Gg~39;Z4qTq7`@HxtGD8s!O4re%w z;b;|~<1#)c81B;*K8NTj1)t9WpVKNnkqk#L9QA+4N0r3q(Lc}JouR+S0F|TK^a8*F zfqr_C;W&oll@O+CTF1$@n-b}d{|}LVdI>T|mPkLt3BwBHa86{BbyxjdvGjA5;UtEW z+Y<_jiZTE1-Fyq_srGLAs@+6&-OcxwZhl}GgkxHJH*v}?qJQt^XUKuIchgVpCc5ix zezA1(E5jKKXSR0}o$%j5yA6r9_HMG&ZeqIb=1--YTl6o6vl$+sbQ2W`{)Un+O8^Ty z3LKB~_)q%Je~RA2=AbQTF^BOwG@B!8{GOv6r)cx`P`%>nGMvkBj$+o$o!Rdnh6g!l zk`U7Ouc~QQ;xz3(2HMVvatMXtf$h3R$@daWMH;a&JE4yg5kF%JIa9*Wn_3L!xao07#_y(NUgQX zlI=U;Vw9{xTb7jTEsp|(j{d&XC>IXv-iPz$BGl9!*Dah zEsAW21-TWcpdJ+mpaTV;ws=GGo=uBKL>`4F7jxq{BmRV|r70X>HBk{stK`j<8gQ?R zA|g&ISV!e zsZ%bYs`7Uz#M9+H$+>l~Z)ZHjz5@E~n_?vAemBC;TfL{Z#Q zZrNsTnVMjQ=wflRxdHYU%MPDfzJh!BY3|_;PZC0FmO5S0&MFJ-Ji_oChUd2H)_7G& z$PD|RwjOYga-%wQ>%3A37MPRnM|z!t^y3UKV0fX@egaVBgP~jr$Uem_ptud?fPQHT zDCj}ezy@w3h>=a)W{Vow!j(Z=Ps8s{YG4h+iy3~D;nfT;VR-F5N+2>3?BAHSh#L1S zWJI}b+;a>=KR^iU(4RiBb&9 zsA!oiqoC+MdxranJJ6xKHZ#1bLaWO#SJ%|l!CpJxA)|duYQ~$}O)GUX19wR4@^3=_ zlXjv1Dfbz7gbM+oe^eFvV3b{E_!7fkGyIGy^koNxJK9<3pM=eA)3{Tz(BI1NS8BD> zklN`P?P=-HE0@Vt5SZFp%m& zwb#os?Ox%)FL<8eH%`Nj%6qo)bJw_UfzZB#pjj!DA48Kwm0XMta7R&w3@Q(ZTnsWcZilu^P>4(!`uPJ9OHFVxMF$J=+n^De`C7~ae9`wZ`6_-%&YDpj{8cWgA~A$ammS9tKw48M0D9=xlJhrCBv z!Gl&DziaR9{q^1N!jD#*{1^N@+wl9aY)}oHmPxut$|tH~hYBk01J6 zwml#w4^!s5Mau)mY9VlVsV7w&pNH>10@mo-h3#0!sO@$A1FsJ_;5Z@j$ZJ6Xb~U5 z@G*uVhH*k+siP3uXZSe7=M+Zeqd`0PCb z5iQ{p`4C#oC-KR$1%29qV|SpRGaV9evz)-<+1%@x)V|K_o4n@nIFkUL#DIF(UT1E4Krzf0@Ni(BFXD?;G0d01M&$W? zDg5pvhJR%E8-{;k7-A&X82-84LywJB!V1yRpyp&cRhM1%7yRY?WW(K(A;X%nuU00DiegoDY0CRO-V{3GyLtw7RhfuvP|WDP*_C?gt1L`JL` zv0_B4lGI}|Bgy`sY8&WIZ$9`~r5yHmeiXpRn;9t@J#yMzSx=c|x-KPV)-_&4D5 zrUJHB0IB2pIYD=`lg6VRfu(^+D4s=H7o@{mB1h(R@GimjLV={G~R{M=2w9jHEGA&&YU2`Z3a=s6FMNw-VopijWfo z9cu4aS?&GC-{NocpeNHA$zx_H*%5q#m} zr$BPs0?BO!5`TaM#PD!N^o*1q4U3tJ?&~C@CLh@8P|=ZNh^BlObfn zCrbh5h6R`#3NZZv7!V{)j5IRR!bmeCQ&nJcWMDu{OzaAne!?IHm^=VxunG+L7?T*8 z^1lMpAyK;0Z4hwo2z^5QQ%?0-lp7S?)0eE=gyMF;mdvQoIw<)>IqaDShwPQN_o#k0 zq=)6UV%tygDp~=YXGJGOMkUB8mWT*&N{6eJ;vm)vC%dObhsQ)jB}AEfM?=E7)0ftg zN;vD18N`+>%=4yj7 z40#iyykWMz27oY0fFsb1fCIA@7O1(ty1Lffp5K%kRrd)B(}d}pgy~pGT*4U{_1L*5;%Q^)v(3YC%zl?Qne zRSC0^S%9N1XtXd_m?z8^76=PDBjl9eTvvgqc??`-z^Ve3G4d26&oHuu!Bz#b^|-JY zB+L?FDR9X$_*q_|?XITC;LyIjMYwhfBs=6o*G-nAix4uBH$TWb9APITyhNZ@K2rt# z0E2F3WWCCoaFlwJuu@nhJi^EZMm93Cskq8CrF1-`r^l2`F}Km-W5T*k!aCt`nG)fQ zlls;sOAZ@e_yjq)jxT`vMET8ENxtg21~|A8F1M-NG~9JhCGriz#!bS;&MRR7p?xLp zg>JL3MS%{q3V2}KfaC7#QJF!7*1n@Z<<7k=Ju7TeS{lg+IBYM#^4`~yjDoSF8TsqI zt-L5~S6ZoL+e@1AO-RAHY&t2>4Fg%5-e zh5f=pk_t3Bq(PB?jO=CP9Y)?|=xz{{}S z-ynR#$Uay=OBPpodBA88O=jgqF{L$4`8BookLRdx490UD#*@a#enviIB1S6JwMhr%dxw=1y!YRUM)R597xuZ>1}_QGYS{g;!lS`@!evK zs}L@!g-3=fq;^lSS-7GWA1hai?`wRda80dnLNC+UJ&&7&>uTw#5pwB$Pge;)s^zDL zHA7PFu4&=b!VR_XY=u^*tconTWa)WVJ-$KsRjqg4SY6-d!`)rwJK?rk<$@j*MWfPy zN_&3_e{I(mk{B}Tqf z<<1>+aijcxBxU#_Qicyl)K@}xD@hO7n{ft)20!o?sj+aFI1Y}GJd79e-|^q!)yN;F zG~ z?IO$tkXAu7{|0AWaJk{er4o0Ms6{3n-OrPA%^@XBY!dSHzRi#`G--& zC}xx}N*U!C@SuA1OjiGq@|i}tCs|o4?>?08 z!iJT$UZdpwC+#P$l(srv%^*M3-gG3SAUb`Gih_3`l*@;FgPVMZOoB7eoktuM1%0$- zk0LwuC%2-8XDla@;oS$IFmq-5u48`kF^KljM#3}lyI*9%AwwhgtWXO|6#lyVLL4O1 zPZJu3iqSysIb_0$UPN04x2%l%rqug1%iocD9;;Ez*KaKK9DhQAMAYQf#bI}M8T4nfI zt`ZG_U8m)!8lpG9s z#Uim-ED=k^GI6LlOw^0R#Svn;Xb_EJg*Z|)iKE0yu}UXw^Mq?O_Wi*b_ct#T#O=L8Q(PT#ZGMd6@Dx+zP_G2`i z(F{g28O>s}Kcm@<4q!Bg(OgCcGCGLSJVpmIn$PGEMhh4%WVDFUVn$0CEoHQf(V>hE zV^q)Ra7ITkTF$6}Q6r-jjE-c~#ONpnXJ%*>qh>}&Gg{5)7)EOt9n0uAMr#=z&uAT^ z^^7(!I)TwfMw=LIX0(OTiHuHSbTXq;7@f-KG)AX0+RErdjLu+GVw5pDlhIj>&SrED zqjPomV;!EO!#W*q(cyF2wK_abyHJM(9e!AcdF?74cGcl-+V6E3>N;y5*PhhjV>&!b zhdF`kt_@M#@BtHZE2`hfOX9X_GMD|HwuRqAk!4p-~2qZV$|XouD+Pivml zJg?cI*{j*7`9O0{b6N9)=6B5uBp_>n!VR>m2KW)_KtW6HcM=l*{rZxY4fTykPTQQdxoPv4EpIE@TG`sz+S!KNCfR1$4zV@Zj+3qmfNkhTW|M@-EOQ?F=(XG|JuKPfDM0Z|yRd-W&$3f@d z=-}kw;^5;D=#cJUbeQ1K+G(uQc&7%ZCZ~x`Q=DFO+U<1M>6FuDr<+cHJN@HKoOx%B zv$eCWv%RyMv!`=}bCh$ebEop(6zbbiBmxAWW1 z?>L`wzUX|-`8((Doqu%x*~P)d$;HLR(!=>7##$}vKv&#aPMJ_M7yyCLo z<$%i%E+cCEjZl~NXx?OU+ z?DmJ-Uv78YMR!~GZthz5F!x0FWcL*JH1~n-)7+Q4KkdH5eV_XY_p9#L+`n`G-u;IA zFYdp&-**4oqnn4LhqFg_k6@1|k2H_L9%UYt9_FU@ui06}@n>=6kJm`7I^Apd{ zJWqR`^}O!+gXd44zkA;CLSDqHk5`IUu2+$l(QBmFD6cB7(OxxP+u&W{ZSt=4Hhb53 z&+(q;y})~s_Y&`A-YdLUdOza5#(S;zI`5s{$Gxw0cj-Q`dv*62-Pd=2v-`>JfBA?$ zUOs_7eSFe=2Kf~D6#10+)c8#DVLq#TR{K2a^O(xe_j%dpO`jt^U-(@1x$1Mx z=R2PpKEL?<=5yQE#@E-^-#64Z#W%w@%QxG%z*p~EL>Zl^qcLs!f%b=dcPO^Uh#X)?{&Z3esB97 z^*io&!(a5b^7r=d3`M#rvD!SVt`eEO@L#7Z$O`b$bjg8*nrG{yny0>(E(EfW(6z_SR1e> z;6T99fU^M?1HKBl9B?(@S|A_j5a<~g5*Qs=9ymI1OyIb{hQP+aC4s90Hw3;I_;KLj zz)u5z3cL{{1la_61^ER91ce602h9wc6ErVqLD1r$WkD-~Rt2pIdMW6Qp!b754EiYO z@ahrMBd1464^xkcJr?v>)MH7HWj$8(Sl#2f9xwFR7i=Bu5*!qq7Cbz7 zbnv*~@xk@M6M`oOPYZ4ho*O(rcwzA3;HANy^D1-*)UmGzp| z>!Dt(*X&*!dhO|rdvm=9_0I2I*t?|n(B8v)SN0y=yQcTj-Ya^q>b<7-YrT(zI)%E1 z8beK?RiV|PV?)P>P7IwAIz4nl=;qL8LbrwP5B)kUIILILgs|qYNnumNTEnEU1!0TB zmW90*wlnO_u(!j`gxw0q;hOLP;RC~0gs%!;6aHBE6XEN_pACOLe0%uu@KfPu!q12Q z(Z{uqZ=XJW^7;(vQ`Bc{pGAF^_F2>CwLUxhyxHeSpBsIC?QGopKhUqnKLKB7Fr z95FLuPQ?6(ry|~s*cWjq;#$P@h#w(ylN^~JSr}OoX^0#dX^yOqlp<$EE{@z3`Bvn< z$cvGeB7chfJ&KF6j!KKli0U7e6E!Gma8yB*KB_!wLR53qq$nwBR@B_6BT>hrPDP!G zIv;g0>QdC@sK29yXsc-3=&dPVfp(a%P|6MZWBm*`tD zHZdVFy<@^+B4P%{%!rv8Gbd(Y%=(yTV|K*sirF3We$3&RqcPvaddK?42E_J=?HL;y z3x|4Q2geq~7RQ#yj*o4KZHk>3J0*5{?2Oo%v2$WK#%_t-8v9P{*RfY)e~SGz_I8{u z&MD3{u1{P^+|am&xTd&?aZBS~je9+Acii!~Q*meF&d2>4-#xx}d~|$jd~SSM{HXYG z@pbW&;-|;6_=WK+<2S@_i{BZ)H~x$GFXO+C|1-fW!6zXoAvGaAAuC}-!t8`437;pN zP52_=%Y?5Jt|ok&ND^%lwTX_2E{XApNr@?m8Hs}uM0r{?r1QxR$OcO~ym-jlpP`B3tw$w!lKCI6B9cVE<( z@7t}fYv1904Sh%Ut?WCxZ%yCYzAb%c^j+L{S>IKCpXj@-?+bko_C4SCM&Doi{+SY( z5}eX2B`hT_WlGBQlo=^AQ|6@1Pg#_*G-XxFhLp`IFQmMg@^;FZlH z&)S}~D{FVwo~%n*SF)~UUGHzzzeoR`{ge8)_Luta?|-oW;r^fXKi2VG-g zI@>N=o9&n#kv%wjdG^ZeGuh{}FJ@oLzLI?{`$qP!*|!IH5AYojFrdeP%mE_@j2$px zz)J&O9q`A1zjIIy%@J~}avXA;bKG)La{A?D=49to=14hfa$e5)Br8JBXg5-Q*w)POLK?insTdht8-t;-I2R1cX#fd+`YN)=bq2KlKW%sjoe>zZ|D9w zFlk`Qz}W-m4O}>I$-w0UR}Or9;8O!P4%|QR;K0KJKO6Y{AnQSc2NeujGw88FPYhZ= zXw#sl2W=np%Ag&C&I~#~=;EMDc_`02Z)9F&-nP6K@?Oe&HShJjH}c-g`ylV5yzldV z%Db8O+hE7R5rdlsPaORA;CBb_8~owm1A`9@J~8<7!DsVPKFt^Mt@3;1XXX#iU!1=z z|78B@{B!vi^1sTzoc}}q&-uR$aUbF}#Ak^AkhCG?Lz;#x9rE0e7l-T{a%RZQA$JNq z3w#TD7K9h17vvP^3(5=31rrOV6wE1DU9h%bbHR>+T?P9KJ})?1aH-&zf?I{S(4o+| zuy!9^)3o8 zN-G*!G_GiBQEQP@w4i8t(aNILMQe+mDB4uCwdm!dT}6kB&J_JzbgP&z?pEwv99EoN zoLih%Y%ZQuyu5g2@#^9ii{CCjS$w+qT=B2Pw~PNQaVl{w@hFKdi7QDg>02_mq@YA! zQeIL~Qd2UwO7@j}SaP7`P|2qy-|c`StQ2%WstbT7J9y&+Q z{)Qk!h@rP3+z@GqF~l2^3@L_whD<}YA=i*+7-A?glp2N^Mi`6+lcCB`Z5V49Z)h+y z873O07^WL$7-kyg80H%m8I~GW7*-k97#=e`VOVe2WO&-}tl@dXcEc-%9fn@h)hHQf8Rr=185bHC8o-m#=o-v*` zUNnAX{MvZcc+Gg-_=E8$;|=4l#@og}jdv=Lytk>ss=~ISTZOK|slv6wqr$7gr^3G? us3N4IcSU$bWJPpETtz}faz$!Idd0wsA?g7-0tX7^f0|hJZ` - - + + IBDocumentLocation - 75 569 356 240 0 0 1152 848 + 87 713 356 240 0 0 1280 1002 + IBEditorPositions + + 91 + 236 96 508 255 0 0 1280 1002 + IBFramework Version - 263.2 + 326.0 + IBLockedObjects + + 103 + 108 + 107 + 110 + 97 + 96 + 116 + 115 + 50 + 113 + 112 + 119 + 120 + 117 + + IBOldestOS + 3 + IBOpenObjects + + 39 + 91 + IBSystem Version - 5Q125 + 7A179 diff --git a/NovaTools/desc/English.lproj/desc.nib/keyedobjects.nib b/NovaTools/desc/English.lproj/desc.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..ecd11a4072d75e14ec84c4e1a85fb7056dc67022 GIT binary patch literal 13704 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 BH + + + + IBDocumentLocation + 18 738 356 240 0 0 1280 1002 + IBFramework Version + 326.0 + IBOldestOS + 3 + IBOpenObjects + + 39 + + IBSystem Version + 7A179 + + diff --git a/NovaTools/misn/English.lproj/misn.nib/keyedobjects.nib b/NovaTools/misn/English.lproj/misn.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..4cd980c8f71b6b4dedbce74cd35f7b4195979b41 GIT binary patch literal 58606 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 +#import "NovaWindowController.h" + +@interface MisnWindowController : NovaWindowController +{ +} +@end diff --git a/NovaTools/misn/MisnWindowController.m b/NovaTools/misn/MisnWindowController.m new file mode 100644 index 0000000..39272b6 --- /dev/null +++ b/NovaTools/misn/MisnWindowController.m @@ -0,0 +1,18 @@ +#import "MisnWindowController.h" + +@implementation MisnWindowController + +- (id)initWithResource:(id )newResource +{ + self = [self initWithWindowNibName:@"misn"]; + if( !self ) return nil; + return self; +} + +- (void)windowDidLoad +{ + [super windowDidLoad]; + [self showWindow:self]; +} + +@end diff --git a/NovaTools/ship/English.lproj/ship.nib/classes.nib b/NovaTools/ship/English.lproj/ship.nib/classes.nib new file mode 100644 index 0000000..5c1acc0 --- /dev/null +++ b/NovaTools/ship/English.lproj/ship.nib/classes.nib @@ -0,0 +1,16 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + CLASS = NovaWindowController; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + }, + { + CLASS = ShipWindowController; + LANGUAGE = ObjC; + SUPERCLASS = NovaWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/NovaTools/ship/English.lproj/ship.nib/info.nib b/NovaTools/ship/English.lproj/ship.nib/info.nib new file mode 100644 index 0000000..3965d1a --- /dev/null +++ b/NovaTools/ship/English.lproj/ship.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 47 80 356 240 0 0 1600 1002 + IBFramework Version + 313.0 + IBOpenObjects + + 5 + + IBSystem Version + 6L60 + + diff --git a/NovaTools/ship/English.lproj/ship.nib/objects.nib b/NovaTools/ship/English.lproj/ship.nib/objects.nib new file mode 100644 index 0000000000000000000000000000000000000000..50381483c4463b5d68660a6c7918fcde109ae10e GIT binary patch literal 4175 zcmcgve{37o9e>Yu9J`Lwx=Eq5{9y?E_-)>@t5Vk#jvI`>135t*D=vBkXkg<6$yzqq%vvJq?SM14WVw*q)e+)zVDqA zo7k?Rq3xpB_nyDs@B99G-|y!eidl07HCwbyRnFPL8w95aA^jO?;_#8lS5?ItlP%ds zUlJ0@Nd69T%05ZDRJ4qozqz+U0x8Z4WRhiS`6*l>`1^wy<8}F%md_e9X(Ml$hOVoo z>$n7K4^p7sl99#@GnZC%eJ>$>8EI6pG$YT~2|~gdiNB44Y)zXVd~J1fzAuFk38mlx z?yVW=*^(ts>T2W2g$3loKJbmhX*(*_he*#$Pdur-5=IE^g8$V!=tro86r`anlF<*5 z37>g*S3xX35hGYZOLz$_^|_7%r;dQJ!dxNJ%wb{RvocsXdx(%IDCnC7+5^dpnmPk- zv5fSBS}Yj(tZJf4nf$u!R1xXpTAye)b- z1k5~Jjg`rpr?@{;!k>#|5&U-Aan1;9JrX#PI!bKpwn!Eh!csw1vm>0& zb-M|`Tqo~*J9m6kQB;V%%){FztmwkJZ-46sgprW#;8+V{Hd(UNte-19F2JkE`MhBzt&*8{ zA>I=hd?ONZOcR+Xn{%jAMXpOOmY4YlFa|a>a?MYEPw>S68xv}2k zSbN4xs@}#Z@?iNi`Tg&}?kysWNz2HKu*Uqb`fG@)2t|0mT-c;kfSCRN^$K;Z~Pl;=We*{M5$g@qUDk_iu0ywAghH?w~{9Akh|3 z$}icyqpw3%pHf}&tLj6w&Ggx~W6)pMdaUnaM1o2xg>FIo!x#Sv8MCdCCj9JXs$4>l zBQEqjJi>#GTl@_M9P3~}@PDCg^pEIP7}U7ZL5Zg~p~TjP%l0LoYBa6y;JSFLGA)21 z@T!e&PEQ~-J<%Fc=QjWef*cY|w*Z1*r+)rj0-8AgR2zVZzMv}8P|cvc?&yXg;D<8; zL;M#4mN~QNk(*(5Z~bdymEru2D$}n0S|RmS_v;N{L)6@H2Nw~xx87_B3> zxQ%bv_@Is61RC+(7Lc&OX!u}DNW$gnhMllW{A{~-rP8FOS$cc(YSwzu{W>wn z(nc;{MWmor|{_0D46 z;I(HBCPaLgpqRY9gnf{}!Mnf*co={h-V`(tnbS$5t?L>+XKL%<0P^Q__b$~QpSAq) z8>^o`9m3ehBLO(1B@{LKu1BwVbZ3I@snPv4T8Fl^EhG73)loH9&}B=t@k)inHLZ#L zmHvQ@|MI+_mh**Kfc^^$A#M!!6wGP902k1Ihz~Aq-N7Wp`5{lkDLeSLC49+7f3}g$ zQE#ZoIhT-2Z`bMl33|b!pLz5vj}F!7ryl*{D&1S7H$A#ir_nkcuF=&xO`W8uPHS~K zkf5J?^r}bWb^5hO-@iZ;b?VjWIgehyR*lgWH~^+Uf1(u1&?sy{b6)R02M)M&)!%E9 zJ?>HtFnrx;4PF6%@Hqj9 zQ;ci6`baT(WF`+2ZDVLyn?_X&phXWL3wWt~$b0$OYJk%W!f2yS9x1^+g}#>0!+>p= zHu{s82H}_Wy+q~WNdcW^#PG}~t`{$+_`#7Z%u!PianTB^55wH8{W!|12id#Z*@Xdi zb&y@#!9Kr-eYTU`ypMggi+#PDtt44uAB*l`@kiM4Evyz}Lx +#import "NovaWindowController.h" + +@interface ShipWindowController : NovaWindowController +{ +} +@end diff --git a/NovaTools/ship/ShipWindowController.m b/NovaTools/ship/ShipWindowController.m new file mode 100644 index 0000000..70414a3 --- /dev/null +++ b/NovaTools/ship/ShipWindowController.m @@ -0,0 +1,18 @@ +#import "ShipWindowController.h" + +@implementation ShipWindowController + +- (id)initWithResource:(id )newResource +{ + self = [self initWithWindowNibName:@"ship"]; + if( !self ) return nil; + return self; +} + +- (void)windowDidLoad +{ + [super windowDidLoad]; + [self showWindow:self]; +} + +@end diff --git a/README.txt b/README.txt index 94918ab..cfd6048 100644 --- a/README.txt +++ b/README.txt @@ -1,36 +1,87 @@ -RESKNIFE Snapshot 2003-08-02 - +/* + * * * * * * * * * * * * * + RESKNIFE READ-ME + * * * * * * * * * * * * * + Last updated: 9 November 2003 WHAT IS IT? +----------- -This is a development snapshot of ResKnife, a resource editor for MacOS X. This is pre-pre-release software, do not use this on any vital files. +This is a development snapshot of ResKnife, a resource editor for the Macintosh. This is pre-release software and as such should only be used with copies of files, or on files you don't mind being destroyed :) TRYING OUT RESKNIFE +------------------- -There should be pre-built "deployment" binaries in the "build" folder. I've left the plugins in there as well, though you don't need to install them or anything like that, they're already installed. +Prebuilt binaries of ResKnife are available from http://resknife.sourceforge.net/ for MacOS 7.1 through to 10.3 +Please download them and try it out. If you like what you see, please tell us. If you don't like what you see, please tell us too! +ResKnife is an open-source editor and contributions from any and all are welcomed. BUILDING RESKNIFE +----------------- -Currently the only project that I've confirmed will build is "ResKnife (PB2).pbproj". You can build the target "Cocoa ResKnife" as well as three Cocoa editor plugins that are in there. Of those, only the Hex editor really works. NovaTools doesn't register for the right types and the Template editor is far from finished. +The source code for ResKnife is also available from http://resknife.sourceforge.net/ as a released source package corrisponding to the latest officially released binary, or as a nightly tarball. If you are familiar with CVS you may also download the code via anonymous cvs access from :pserver:anonymous@cvs.resknife.sourceforge.net/cvsroot/resknife as project 'ResKnife'. +ResKnife can be built as either a Cocoa app, Carbon app or Classic app, the Carbon version available in either MachO or PEF formats, using your choice of either CodeWarrior or Xcode/Project Builder (gcc 2.95, 3.1 or 3.3) as IDE/compiler. The Classic and Carbon versionsd are build from the same codebase, with the main differences being TARGET_API_MAC_CARBON being set on the latter, and linking against CarbonLib instead of InterfaceLib et al. When building the Carbon version as a Package, you can choose to use nib files instead of resources to define things like menus and dialogue boxes. The Carbon/Classic version is no longer maintained by the original developer, though you are free to work on it if you wish. The Cocoa version has a compleatly different codebase, and is the current focus of development. It is considered the most bug-free and most feature-compleate ('most' being about 20% as compared with 15% for Carbon). BUILDING A PLUGIN +----------------- -If you want to create a plugin for ResKnife, use the "ICONEditor" project as the basis. It's a simple, standalone project. You can install it in three places: +If you want to create a Cocoa plugin for ResKnife, use the "ICONEditor" project as the basis until the SDK is available. It's a simple, standalone project. You can install it in three places: -> In ResKnife itself by selecting it, choosing "Information" and there clicking the "Add" button in the "plugins" section -> In ~/Library/Application Support/ResKnife/Plugins/ for one user account. -> In /Library/Application Support/ResKnife/Plugins/ for the entire machine. +If you want to create a plugin for the Carbon version of ResKnife, take a look at the Hex Editor try to derivesomething from that. Editors for the Classic version + ROAD MAP +-------- -I've decided to focus on the Cocoa version so we get a useable product done soon. The general consensus between Nick and me (Uli) is that he'll take care of the engine, while I'll focus mainly on plugins. However, since Nick is rather busy at the moment, I've made some changes to the engine that should allow plugin developers to get something done. All the basic features for editing resources in resource files should now be there. If you're missing any, tell me. +Currently Uli and Nicholas have decided to delegate different parts of the project to each other, with Nick handling the host application and hex editor, and Uli handling the template editor. Nicholas is also working on an editor for resources associated with the game Escape Velocity Nova by Ambrosia Software. Other editors will be written as time permits, or perhaps by third parties such as yourself! If you have any ideas for editors, take a look at the SDK (avalable from the web site) which contains an empty 'shell' editor. Sample fully-working editors are of course available as part of the project themselves! + +HISTORY +------- + +ResKnife has had a protracted and erratic history. It started in 1997 when Nicholas Shanks decided ResEdit needed a successor and because he wanted to play around with the new resources available with Mac OS 8.0, yet didn't have the money to buy Resourcerer. After three months of fast R&D, version 0.1d9 was quite stable and had many features, including a working hex editor. Then in a careless act of stupidity, Nicholas decided to Carbonise the program without backing up the 0.1d9 source. It failed, and much that once was had been lost. Throwing away that mess and starting again, Nicholas tried to re-write ResKnife as a Carbon app from the ground up. Thrice. Versions 0.2 and 0.3 were aborted attempts to do this, version 0.4 was more successful, and now forms the basis for the Carbon varient of ResKnife. Soon after, the wonders of Cocoa were discovered and required learning, and Nicholas turned to his pet project ResKnife to help him learn. The Cocoa re-write became version 0.5 and in conjunction with version 0.4 which had had a few touch-ups added to it since, was committed to CVS almost two years after the last commit had occured. Two more years passed with not much change to ResKnife, before Uli Kusterer, collaborator for earlier versions of ResKnife and himself writing a resource editor with special consideration for users of the MacZoop framework, decided to write a template editor for the project. Throughout the development of the project contributions small and large have trickled in, and all who contributed are recognised below. -AUTHORS: -ResKnife was written by Nick Shanks (http://www.nickshanks.com) with additional changes by M. Uli Kusterer (http://www.zathras.de). +AUTHORS +------- -There is a web site for ResKnife at http://resknife.sourceforge.net +ResKnife was written by Nicholas Shanks http://web.nickshanks.com/ with additional changes and some editors supplied by M. Uli Kusterer http://www.zathras.de/ +Other contributors include (in alphabetical order): Thomas Castiglione, Philippe Devallois, Mike Margolis, Lane Roathe and Jeffrey Seibert. +There is a web site for ResKnife at http://resknife.sourceforge.net/ + +COMMENTS FOR THOSE WHO WISH TO CONTRIBUTE +----------------------------------------- + +Please try to conform to the existing formatting rules followed, including placement of braces and use of whitespace, and tabs rather than space characters for indenting. Tab width is four. + + +Notes on commenting/documenting for the ResKnife project: + +ResKnife methods, functions, headers, classes, ivars and practically anything else is commented using the format specified by HeaderDoc (a C-based equivalent to JavaDoc), although with ResKnife-specific modifications (NB: although I've yet to modify HeaderDoc to read these new parameters, they should still be used for the time being). The general format is to use the standard C block-commenting mechanism, with the addition of an exclamation mark immediatly after the open comment marker. Following this are one or more lines beginning with an at sign, a keyword, arguments if any, and finally a string value. For source code consistancy, I (Nicholas) am dictating the following rules which must be followed when documenting an object. + + 1) All HeaderDoc comments immediatly preceede the object to which they pertain. + 2) HeaderDoc comments documenting a method or function must follow the following order (for consistancy & readability), where an ellipsis indicates the line above can be repeated multiple times: + + @method or @function + @abstract + @author + @created + @change [reverse chronological, i.e. most recent at the top] + ... + @pending [higher priority TODO items should be above lower priority ones] + ... + @description + @param [listed in order taken by method/function] + ... + + 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 + 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. +*/ diff --git a/ResKnife.mcp.xml b/ResKnife.mcp.xml new file mode 100644 index 0000000..35dbda2 --- /dev/null +++ b/ResKnife.mcp.xml @@ -0,0 +1 @@ + ]> ResKnife (Carbon) UserSourceTrees AlwaysSearchUserPathsfalse InterpretDOSAndUnixPathsfalse RequireFrameworkStyleIncludesfalse UserSearchPaths SearchPath Path:Carbon: PathFormatMacOS PathRootProject Recursivetrue FrameworkPathfalse HostFlagsAll SearchPath Path:Prefix Files: PathFormatMacOS PathRootProject Recursivetrue FrameworkPathfalse HostFlagsAll SystemSearchPaths SearchPath PathMacOS Support PathFormatUnix PathRootCodeWarrior Recursivetrue FrameworkPathfalse HostFlagsAll SearchPath PathMSL PathFormatUnix PathRootCodeWarrior Recursivetrue FrameworkPathfalse HostFlagsAll MWRuntimeSettings_WorkingDirectory MWRuntimeSettings_CommandLine MWRuntimeSettings_HostApplication Path PathFormatGeneric PathRootAbsolute MWRuntimeSettings_EnvVars LinkerMacOS PPC Linker PreLinker PostLinker TargetnameResKnife (Carbon) OutputDirectory Pathbuild PathFormatUnix PathRootProject SaveEntriesUsingRelativePathstrue FileMappings FileTypeAPPL FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeAppl FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeMMLB FileExtension CompilerLib Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeMPLF FileExtension CompilerLib Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeMWCD FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeRSRC FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeTEXT FileExtension.arr Compiler EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.bh CompilerBalloon Help EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.c CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.c++ CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cc CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cp CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cpp CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.exp Compiler EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.h CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMaketrue FileTypeTEXT FileExtension.pch CompilerMW C/C++ PPC EditLanguageC/C++ Precompiletrue Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.pch++ CompilerMW C/C++ PPC EditLanguageC/C++ Precompiletrue Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.plist Compiler EditLanguage Precompilefalse Launchabletrue ResourceFilefalse IgnoredByMaketrue FileTypeTEXT FileExtension.r CompilerRez EditLanguageRez Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.s CompilerPPCAsm EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeXCOF FileExtension CompilerXCOFF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypedocu FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypersrc FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeshlb FileExtension CompilerPEF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypestub FileExtension CompilerPEF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileExtension.doc Compiler EditLanguage Precompilefalse Launchabletrue ResourceFilefalse IgnoredByMaketrue FileExtension.o CompilerXCOFF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileExtension.ppob Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileExtension.rsrc Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse CacheModDatestrue DumpBrowserInfofalse CacheSubprojectstrue UseThirdPartyDebuggerfalse BrowserGenerator1 DebuggerAppPath Path PathFormatGeneric PathRootAbsolute DebuggerCmdLineArgs DebuggerWorkingDir Path PathFormatGeneric PathRootAbsolute CodeCompletionPrefixFileNameMacHeaders.c CodeCompletionMacroFileNameMacOS_Carbon_C++_Macros.h ConsoleEncoding0 LogSystemMessagestrue AutoTargetDLLsfalse StopAtWatchpointstrue PauseWhileRunningfalse PauseInterval5 PauseUIFlags0 AltExePath Path PathFormatGeneric PathRootAbsolute StopAtTempBPOnLaunchfalse CacheSymbolicstrue TempBPFunctionNamemain TempBPType0 Enabledfalse ConnectionNameno connections available DownloadPath LaunchRemoteAppfalse RemoteAppPath CoreID0 JTAGClockSpeed8000 IsMultiCorefalse OSDownloadfalse UseGlobalOSDownloadfalse OSDownloadConnectionName OSDownloadPath AltDownloadfalse AltDownloadConnectionName OtherExecutables ExecutablePath Path:build:Editors:Hex Editor PathFormatMacOS PathRootProject RemoteDownloadfalse Debugtrue RemotePath Mergedfalse OriginalPath Path PathFormatMacOS PathRootAbsolute CustomColor1 Red0 Green32767 Blue0 CustomColor2 Red0 Green32767 Blue0 CustomColor3 Red0 Green32767 Blue0 CustomColor4 Red0 Green32767 Blue0 MWFrontEnd_C_cplusplus0 MWFrontEnd_C_checkprotos0 MWFrontEnd_C_arm0 MWFrontEnd_C_trigraphs0 MWFrontEnd_C_onlystdkeywords0 MWFrontEnd_C_enumsalwaysint0 MWFrontEnd_C_mpwpointerstyle0 MWFrontEnd_C_prefixnameCarbon Prefix.h MWFrontEnd_C_ansistrict0 MWFrontEnd_C_mpwcnewline0 MWFrontEnd_C_wchar_type1 MWFrontEnd_C_enableexceptions1 MWFrontEnd_C_dontreusestrings0 MWFrontEnd_C_poolstrings0 MWFrontEnd_C_dontinline0 MWFrontEnd_C_useRTTI1 MWFrontEnd_C_multibyteaware0 MWFrontEnd_C_unsignedchars0 MWFrontEnd_C_autoinline0 MWFrontEnd_C_booltruefalse1 MWFrontEnd_C_inlinelevel0 MWFrontEnd_C_ecplusplus0 MWFrontEnd_C_objective_c0 MWFrontEnd_C_defer_codegen0 MWFrontEnd_C_templateparser0 MWFrontEnd_C_c991 MWFrontEnd_C_bottomupinline1 MWWarning_C_warn_illpragma1 MWWarning_C_warn_emptydecl1 MWWarning_C_warn_possunwant1 MWWarning_C_warn_unusedvar1 MWWarning_C_warn_unusedarg1 MWWarning_C_warn_extracomma1 MWWarning_C_pedantic1 MWWarning_C_warningerrors0 MWWarning_C_warn_hidevirtual1 MWWarning_C_warn_implicitconv0 MWWarning_C_warn_notinlined1 MWWarning_C_warn_structclass1 MWFTP_Post_hostName MWFTP_Post_username MWFTP_Post_password0ÿà(l"¨T MWFTP_Post_remoteDir MWFTP_Post_ftp_PathVersion0 MWFTP_Post_ftp_PathType0 MWFTP_Post_ftp_PathFormat0 MWFTP_Post_ftp_tree MWFTP_Post_uploadDir MWFTP_Post_ftp_port21 MWFTP_Post_SendBin1 MWFTP_Post_ShouldLog1 MWCommandLine_Java_clsName MWCommandLine_Java_args MWVJavaDebugging_Protocol1 MWVJavaDebugging_JDKVersion1 MWVJavaDebugging_TimeOut10 MWVJavaDebugging_SupportSlowDevicesfalse MWVJavaDebugging_UseRemoteLaunchAgentfalse MWVJavaDebugging_LaunchVMasServerfalse MWJava_Language_optimizefalse MWJava_Language_warnDeprecatedfalse MWJava_Language_emitMapfalse MWJava_Language_strictFileNamesfalse MWJava_Language_strictFileHierarchyfalse MWJava_Language_1_1_Compatiblefalse MWJava_Language_emitHeaders0 MWJava_Language_headerTypeJNINativeHeaders MWJava_Language_packageFilter MWJava_Language_genCommentstrue MWJava_Language_genHeadersfalse MWJava_Language_enableAssertsfalse MWJava_Language_targetVM1.1 Manifest-JAD Attributes AttributeMain-Class ValueAuto-Generated MWJava_MRJAppBuilder_outFileMRJApplication MWJava_MRJAppBuilder_mergefalse MWJava_MRJAppBuilder_quitMenutrue MWJava_MRJAppBuilder_growfalse MWJava_MRJAppBuilder_stdoutTypeConsole MWJava_MRJAppBuilder_stderrTypeConsole MWJava_MRJAppBuilder_stdinTypeConsole MWJava_MRJAppBuilder_appIconPVersion0 MWJava_MRJAppBuilder_appIconPType0 MWJava_MRJAppBuilder_appIconPFormat0 MWJava_MRJAppBuilder_appIconPTree MWJava_MRJAppBuilder_appIconFile MWJava_MRJAppBuilder_splashScreenPVersion0 MWJava_MRJAppBuilder_splashScreenPType0 MWJava_MRJAppBuilder_splashScreenPFormat0 MWJava_MRJAppBuilder_splashScreenPTree MWJava_MRJAppBuilder_splashScreenPICTFile MWJava_MRJAppBuilder_aboutName MWJava_MRJAppBuilder_stdoutPVersion0 MWJava_MRJAppBuilder_stdoutPType0 MWJava_MRJAppBuilder_stdoutPFormat0 MWJava_MRJAppBuilder_stdoutPTree MWJava_MRJAppBuilder_stdoutFile MWJava_MRJAppBuilder_stdoutAppendfalse MWJava_MRJAppBuilder_stderrPType0 MWJava_MRJAppBuilder_stderrPFormat0 MWJava_MRJAppBuilder_stderrPTree MWJava_MRJAppBuilder_stderrFile MWJava_MRJAppBuilder_stderrAppendfalse MWJava_MRJAppBuilder_stdinPType0 MWJava_MRJAppBuilder_stdinPFormat0 MWJava_MRJAppBuilder_stdinPTree MWJava_MRJAppBuilder_stdinFile MWJava_Output_outputtypeJarFile MWJava_Output_outfileJavaClasses.jar MWJava_Output_ftype1514754080 MWJava_Output_fcreator1297570384 MWJava_Output_compress0 MWJava_Output_genManifest0 MWJava_Output_trunctypeFront MWJava_Output_deleteClasses0 MWJava_Output_consoleApp1 MWJava_Output_preverify0 MWJava_Output_genJad0 MWJava_Output_obfuscate0 MWJava_Proj_projtypeApplet MWJava_Proj_mainClassName MWJava_Proj_HTMLAppCreator1463898714 MWJava_Proj_HTMLAppName MWJava_Proj_PathVersion0 MWJava_Proj_PathType0 MWJava_Proj_PathFormat0 MWJava_Proj_tree MWJava_Proj_HTMLAppWin32Name MWJava_Proj_compress0 MWJava_Proj_simulator1 MWJava_Proj_useVM\000\000macosx MWJava_Proj_vmarguments MWJava_Proj_vmName MWJava_Proj_simPropFile MWJavaDoc_Proj_Version1 MWJavaDoc_Proj_Deprecated1 MWJavaDoc_Proj_Author1 MWJavaDoc_Proj_Index1 MWJavaDoc_Proj_Tree1 MWJavaDoc_Proj_SunResolveToSame0 MWJavaDoc_Proj_Shortnames1 MWJavaDoc_Proj_Folder0 MWJavaDoc_Proj_GenerateAPILinks0 MWJavaDoc_Proj_scopePublic MWJavaDoc_Proj_fcreator1297303877 MWJavaDoc_Proj_encodingName MWJavaDoc_Proj_decodingName MWJavaDoc_Proj_javaPackagePathhttp://java.sun.com/products/jdk/1.1/docs/api/ MWMerge_MacOS_projectTypeApplication MWMerge_MacOS_outputNameMerge Out MWMerge_MacOS_outputCreator???? MWMerge_MacOS_outputTypeAPPL MWMerge_MacOS_suppressWarning0 MWMerge_MacOS_copyFragments1 MWMerge_MacOS_copyResources1 MWMerge_MacOS_flattenResource0 MWMerge_MacOS_flatFileNamea.rsrc MWMerge_MacOS_flatFileOutputPath Path: PathFormatMacOS PathRootProject MWMerge_MacOS_skipResources DLGX ckid Proj WSPC mcvs FileLockedfalse ResourcesMapIsReadOnlyfalse PrinterDriverIsMultiFinderCompatiblefalse Invisiblefalse HasBundlefalse NameLockedfalse Stationeryfalse HasCustomIconfalse Sharedfalse HasBeenInitedfalse Label0 Comments MWMacOSPackager_UsePackager0 MWMacOSPackager_FolderToPackage Path PathFormatMacOS PathRootAbsolute MWMacOSPackager_CreateClassicAlias0 MWMacOSPackager_ClassicAliasMethodUseTargetOutput MWMacOSPackager_ClassicAliasPath MWMacOSPackager_CreatePkgInfo0 MWMacOSPackager_PkgCreatorType???? MWMacOSPackager_PkgFileTypeAPPL MWCodeGen_PPC_structalignmentPPC_mw MWCodeGen_PPC_tracebacktablesInline MWCodeGen_PPC_processorGeneric MWCodeGen_PPC_function_align4 MWCodeGen_PPC_tocdata1 MWCodeGen_PPC_largetoc0 MWCodeGen_PPC_profiler0 MWCodeGen_PPC_vectortocdata1 MWCodeGen_PPC_poolconst0 MWCodeGen_PPC_peephole1 MWCodeGen_PPC_readonlystrings0 MWCodeGen_PPC_linkerpoolsstrings0 MWCodeGen_PPC_volatileasm0 MWCodeGen_PPC_schedule0 MWCodeGen_PPC_altivec0 MWCodeGen_PPC_altivec_move_block0 MWCodeGen_PPC_strictIEEEfp0 MWCodeGen_PPC_fpcontract1 MWCodeGen_PPC_genfsel0 MWCodeGen_PPC_orderedfpcmp0 MWCodeGen_MachO_structalignmentPPC_mw MWCodeGen_MachO_profiler_enumOff MWCodeGen_MachO_processorGeneric MWCodeGen_MachO_function_align4 MWCodeGen_MachO_common0 MWCodeGen_MachO_peephole1 MWCodeGen_MachO_readonlystrings0 MWCodeGen_MachO_linkerpoolsstrings1 MWCodeGen_MachO_volatileasm0 MWCodeGen_MachO_schedule0 MWCodeGen_MachO_altivec0 MWCodeGen_MachO_vecmove0 MWCodeGen_MachO_fp_ieee_strict0 MWCodeGen_MachO_fpcontract1 MWCodeGen_MachO_genfsel0 MWCodeGen_MachO_fp_cmps_ordered0 MWDisassembler_PPC_showcode1 MWDisassembler_PPC_extended1 MWDisassembler_PPC_mix0 MWDisassembler_PPC_nohex0 MWDisassembler_PPC_showdata1 MWDisassembler_PPC_showexceptions1 MWDisassembler_PPC_showsym0 MWDisassembler_PPC_shownames1 GlobalOptimizer_PPC_optimizationlevelLevel0 GlobalOptimizer_PPC_optforSpeed MWLinker_PPC_linksym1 MWLinker_PPC_symfullpath0 MWLinker_PPC_linkmap0 MWLinker_PPC_nolinkwarnings0 MWLinker_PPC_dontdeadstripinitcode0 MWLinker_PPC_permitmultdefs0 MWLinker_PPC_linkmodeFast MWLinker_PPC_initname MWLinker_PPC_mainname__start MWLinker_PPC_termname MWLinker_MacOSX_linksym0 MWLinker_MacOSX_symfullpath0 MWLinker_MacOSX_nolinkwarnings0 MWLinker_MacOSX_linkmap0 MWLinker_MacOSX_dontdeadstripinitcode0 MWLinker_MacOSX_permitmultdefs1 MWLinker_MacOSX_use_objectivec_semantics0 MWLinker_MacOSX_strip_debug_symbols0 MWLinker_MacOSX_split_segs0 MWLinker_MacOSX_report_msl_overloads0 MWLinker_MacOSX_objects_follow_linkorder0 MWLinker_MacOSX_linkmodeFast MWLinker_MacOSX_exportsReferencedGlobals MWLinker_MacOSX_sortcodeNone MWLinker_MacOSX_mainname MWProject_MacOSX_typeExecutable MWProject_MacOSX_outfileResKnife Carbon (PEF) MWProject_MacOSX_filecreatorResK MWProject_MacOSX_filetypeAPPL MWProject_MacOSX_vmaddress4096 MWProject_MacOSX_usedefaultvmaddr1 MWProject_MacOSX_flatrsrc0 MWProject_MacOSX_flatrsrcfilename MWProject_MacOSX_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_MacOSX_installpath./ MWProject_MacOSX_dont_prebind0 MWProject_MacOSX_flat_namespace0 MWProject_MacOSX_frameworkversionA MWProject_MacOSX_currentversion0 MWProject_MacOSX_flat_oldimpversion0 MWLinker_MachO_exportsNone MWLinker_MachO_mainname MWLinker_MachO_currentversion0 MWLinker_MachO_compatibleversion0 MWLinker_MachO_symfullpath0 MWLinker_MachO_supresswarnings0 MWLinker_MachO_multisymerror0 MWLinker_MachO_prebind1 MWLinker_MachO_deadstrip1 MWLinker_MachO_objectivecsemantics0 MWLinker_MachO_whichfileloaded0 MWLinker_MachO_whyfileloaded0 MWLinker_MachO_readonlyrelocsErrors MWLinker_MachO_undefinedsymbolsErrors MWLinker_MachO_twolevelnamespace1 MWLinker_MachO_stripdebugsymbols0 MWProject_MachO_typeExecutable MWProject_MachO_outfilea.exe MWProject_MachO_filecreator???? MWProject_MachO_filetypeMEXE MWProject_MachO_vmaddress4096 MWProject_MachO_flatrsrc1 MWProject_MachO_flatrsrcfilenamea.rsrc MWProject_MachO_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_MachO_installpath./ MWProject_MachO_frameworkversion MWPEF_exportsPragma MWPEF_libfolder128 MWPEF_sortcodeNone MWPEF_expandbss0 MWPEF_sharedata0 MWPEF_olddefversion0 MWPEF_oldimpversion0 MWPEF_currentversion0 MWPEF_fragmentnameResKnife MWPEF_collapsereloads0 MWProject_PPC_typeApplication MWProject_PPC_outfileResKnife Carbon (PEF) MWProject_PPC_filecreatorResK MWProject_PPC_filetypeAPPL MWProject_PPC_size4096 MWProject_PPC_minsize2048 MWProject_PPC_stacksize128 MWProject_PPC_flags22720 MWProject_PPC_symfilename MWProject_PPC_rsrcname MWProject_PPC_rsrcheaderNative MWProject_PPC_rsrctype???? MWProject_PPC_rsrcid0 MWProject_PPC_rsrcflags0 MWProject_PPC_rsrcstore0 MWProject_PPC_rsrcmerge0 MWProject_PPC_flatrsrc0 MWProject_PPC_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_PPC_flatrsrcfilename MWAssembler_PPC_auxheader0 MWAssembler_PPC_symmodeMac MWAssembler_PPC_dialectPPC MWAssembler_PPC_prefixfile MWAssembler_PPC_typecheck0 MWAssembler_PPC_warnings0 MWAssembler_PPC_casesensitive0 PList_OutputTypeResource PList_OutputEncodingUTF-8 PList_Prefix PList_FileFilenameInfo.plist PList_FileDirectory Path: PathFormatMacOS PathRootProject PList_ResourceTypeplst PList_ResourceID0 PList_ResourceNameProperty List MWRez_Language_maxwidth80 MWRez_Language_scriptRoman MWRez_Language_alignmentAlign1 MWRez_Language_filtermodeFilterSkip MWRez_Language_suppresswarnings0 MWRez_Language_escapecontrolchars1 MWRez_Language_prefixname MWRez_Language_filteredtypes'CODE' 'DATA' 'PICT' MWWinRC_prefixname MWCodeGen_X86_processorGeneric MWCodeGen_X86_alignmentbytes8 MWCodeGen_X86_exceptionsZeroOverhead MWCodeGen_X86_name_manglingMWWin32 MWCodeGen_X86_use_extinst0 MWCodeGen_X86_extinst_mmx0 MWCodeGen_X86_extinst_3dnow0 MWCodeGen_X86_use_mmx_3dnow_convention0 MWCodeGen_X86_extinst_cmov0 MWCodeGen_X86_extinst_sse0 MWCodeGen_X86_extinst_sse20 MWCodeGen_X86_intrinsics0 MWCodeGen_X86_optimizeasm0 MWCodeGen_X86_disableopts0 MWCodeGen_X86_profile0 MWLinker_X86_runtimeCustom MWCodeGen_X86_readonlystrings0 MWLinker_X86_subsysmajorid4 MWLinker_X86_subsysminorid0 MWCOFF_X86_opsysmajorid4 MWCOFF_X86_opsysminorid0 MWLinker_X86_usrmajorid0 MWLinker_X86_usrminorid0 MWProject_X86_maxstacksize1024 MWProject_X86_minstacksize4 MWProject_X86_size1024 MWProject_X86_minsize4 MWCOFF_X86_coff_flags0 MWCOFF_X86_dll_flags0 MWProject_X86_baseaddress4194304 MWCOFF_X86_filealign512 MWCOFF_X86_sectionalign4096 PDisasmX86_showHeaderstrue PDisasmX86_showSectHeaderstrue PDisasmX86_showSymTabtrue PDisasmX86_showCodetrue PDisasmX86_showDatatrue PDisasmX86_showDebugfalse PDisasmX86_showExceptionsfalse PDisasmX86_showRawfalse PDisasmX86_showAllRawfalse PDisasmX86_showSourcefalse PDisasmX86_showRelocationtrue PDisasmX86_showHextrue PDisasmX86_showCommentsfalse PDisasmX86_showSymDefstrue PDisasmX86_unmanglefalse PDisasmX86_verbosefalse PDisasmX86_resolveRelocstrue PDisasmX86_resolveLocalsfalse MWDebugger_X86_Exceptions 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GlobalOptimizer_X86_optimizationlevelLevel0 GlobalOptimizer_X86_optforSpeed MWLinker_X86_entrypointusageDefault MWLinker_X86_entrypoint MWLinker_X86_subsystemWinGUI MWLinker_X86_commandfile MWLinker_X86_generatemap0 MWLinker_X86_linksym0 MWLinker_X86_linkCV1 MWLinker_X86_symfullpathfalse MWLinker_X86_linkdebugtrue MWLinker_X86_checksumfalse MWLinker_X86_zero_init_bssfalse MWLinker_X86_mergedatafalse MWLinker_X86_usedefaultlibsfalse MWLinker_X86_adddefaultlibsfalse MWLinker_X86_nowarningsfalse MWLinker_X86_verbosefalse MWProject_X86_typeApplication MWProject_X86_outfilenoname.exe MWProject_X86_importlib MWProject_X86_setimportlibdirfalse MWProject_X86_dontgenerateimportlibfalse MWProject_X86_oldformatlibfalse MWProject_X86_replaceobjextensionfalse MWProject_X86_copyallfilesfalse PathRelative Project :Carbon: :Classes:Application.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:Application.h MacOS Text PathRelative Project :Carbon: :Classes:Asynchronous.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:DataBrowser.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:Asynchronous.h MacOS Text PathRelative Project :Carbon: :Classes:DataBrowser.h MacOS Text PathRelative Project :Carbon: :Classes:WindowObject.h MacOS Text PathRelative Project :Carbon: :Classes:Utility.h MacOS Text PathRelative Project :Carbon: :Classes:ResourceObject.h MacOS Text PathRelative Project :Carbon: :Classes:PlugWindow.h MacOS Text PathRelative Project :Carbon: :Classes:PlugObject.h MacOS Text PathRelative Project :Carbon: :Classes:PickerWindow.h MacOS Text PathRelative Project :Carbon: :Classes:InspectorWindow.h MacOS Text PathRelative Project :Carbon: :Classes:HostCallbacks.h MacOS Text PathRelative Project :Carbon: :Classes:FileWindow.h MacOS Text PathRelative Project :Carbon: :Classes:Files.h MacOS Text PathRelative Project :Carbon: :Classes:Errors.h MacOS Text PathRelative Project :Carbon: :Classes:EditorWindow.h MacOS Text PathRelative Project :Carbon: :Classes:EditorWindow.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:Errors.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:Files.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:FileWindow.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:HostCallbacks.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:InspectorWindow.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:PickerWindow.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:PlugObject.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:PlugWindow.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:ResourceObject.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:Utility.cpp MacOS Text Debug PathRelative Project :Carbon: :Classes:WindowObject.cpp MacOS Text Debug PathRelative Project :Carbon: :Transfer.h MacOS Text PathRelative Project :Carbon: :ResKnife.h MacOS Text PathRelative Project :Carbon: :Generic.h MacOS Text PathRelative Project :Carbon: :Resources:Carbon.r MacOS Text Debug PathRelative Project :Carbon: :Resources:ResKnife.r MacOS Text Debug PathRelative Project :Carbon: :Resources:ResKnife.rsrc MacOS Resource Debug PathRelative CodeWarrior MacOS Support Universal/Libraries/StubLibraries/CarbonLib Unix Library Debug PathRelative CodeWarrior MacOS Support Libraries/Runtime/Libs/MSL_All_Carbon.Lib Unix Library Debug PathRelative Project :Carbon: :Classes:Application.cpp MacOS PathRelative Project :Carbon: :Classes:Application.h MacOS PathRelative Project :Carbon: :Classes:Asynchronous.cpp MacOS PathRelative Project :Carbon: :Classes:DataBrowser.cpp MacOS PathRelative Project :Carbon: :Classes:Asynchronous.h MacOS PathRelative Project :Carbon: :Classes:DataBrowser.h MacOS PathRelative Project :Carbon: :Classes:WindowObject.h MacOS PathRelative Project :Carbon: :Classes:Utility.h MacOS PathRelative Project :Carbon: :Classes:ResourceObject.h MacOS PathRelative Project :Carbon: :Classes:PlugWindow.h MacOS PathRelative Project :Carbon: :Classes:PlugObject.h MacOS PathRelative Project :Carbon: :Classes:PickerWindow.h MacOS PathRelative Project :Carbon: :Classes:InspectorWindow.h MacOS PathRelative Project :Carbon: :Classes:HostCallbacks.h MacOS PathRelative Project :Carbon: :Classes:FileWindow.h MacOS PathRelative Project :Carbon: :Classes:Files.h MacOS PathRelative Project :Carbon: :Classes:Errors.h MacOS PathRelative Project :Carbon: :Classes:EditorWindow.h MacOS PathRelative Project :Carbon: :Classes:EditorWindow.cpp MacOS PathRelative Project :Carbon: :Classes:Errors.cpp MacOS PathRelative Project :Carbon: :Classes:Files.cpp MacOS PathRelative Project :Carbon: :Classes:FileWindow.cpp MacOS PathRelative Project :Carbon: :Classes:HostCallbacks.cpp MacOS PathRelative Project :Carbon: :Classes:InspectorWindow.cpp MacOS PathRelative Project :Carbon: :Classes:PickerWindow.cpp MacOS PathRelative Project :Carbon: :Classes:PlugObject.cpp MacOS PathRelative Project :Carbon: :Classes:PlugWindow.cpp MacOS PathRelative Project :Carbon: :Classes:ResourceObject.cpp MacOS PathRelative Project :Carbon: :Classes:Utility.cpp MacOS PathRelative Project :Carbon: :Classes:WindowObject.cpp MacOS PathRelative Project :Carbon: :Transfer.h MacOS PathRelative Project :Carbon: :ResKnife.h MacOS PathRelative Project :Carbon: :Generic.h MacOS PathRelative Project :Carbon: :Resources:Carbon.r MacOS PathRelative Project :Carbon: :Resources:ResKnife.r MacOS PathRelative Project :Carbon: :Resources:ResKnife.rsrc MacOS PathRelative CodeWarrior MacOS Support Universal/Libraries/StubLibraries/CarbonLib Unix PathRelative CodeWarrior MacOS Support Libraries/Runtime/Libs/MSL_All_Carbon.Lib Unix ResKnife (Classic) UserSourceTrees AlwaysSearchUserPathsfalse InterpretDOSAndUnixPathsfalse RequireFrameworkStyleIncludesfalse UserSearchPaths SearchPath Path: PathFormatMacOS PathRootProject Recursivetrue FrameworkPathfalse HostFlagsAll SystemSearchPaths SearchPath Path: PathFormatMacOS PathRootCodeWarrior Recursivetrue FrameworkPathfalse HostFlagsAll MWRuntimeSettings_WorkingDirectory MWRuntimeSettings_CommandLine MWRuntimeSettings_HostApplication Path PathFormatMacOS PathRootAbsolute MWRuntimeSettings_EnvVars LinkerMacOS PPC Linker PreLinker PostLinker TargetnameResKnife (Classic) OutputDirectory Path:build: PathFormatMacOS PathRootProject SaveEntriesUsingRelativePathstrue FileMappings FileTypeAPPL FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeAppl FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeMMLB FileExtension CompilerLib Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeMPLF FileExtension CompilerLib Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeMWCD FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeRSRC FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeTEXT FileExtension.arr Compiler EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.bh CompilerBalloon Help EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.c CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.c++ CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cc CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cp CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cpp CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.exp Compiler EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.h CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMaketrue FileTypeTEXT FileExtension.pch CompilerMW C/C++ PPC EditLanguageC/C++ Precompiletrue Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.pch++ CompilerMW C/C++ PPC EditLanguageC/C++ Precompiletrue Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.plist Compiler EditLanguage Precompilefalse Launchabletrue ResourceFilefalse IgnoredByMaketrue FileTypeTEXT FileExtension.r CompilerRez EditLanguageRez Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.s CompilerPPCAsm EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeXCOF FileExtension CompilerXCOFF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypedocu FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypersrc FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeshlb FileExtension CompilerPEF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypestub FileExtension CompilerPEF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileExtension.doc Compiler EditLanguage Precompilefalse Launchabletrue ResourceFilefalse IgnoredByMaketrue FileExtension.o CompilerXCOFF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileExtension.ppob Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileExtension.rsrc Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse CacheModDatestrue DumpBrowserInfofalse CacheSubprojectstrue UseThirdPartyDebuggerfalse BrowserGenerator1 DebuggerAppPath Path PathFormatGeneric PathRootAbsolute DebuggerCmdLineArgs DebuggerWorkingDir Path PathFormatGeneric PathRootAbsolute CodeCompletionPrefixFileNameMacHeaders.c CodeCompletionMacroFileNameMacOS_Carbon_C++_Macros.h ConsoleEncoding0 LogSystemMessagestrue AutoTargetDLLsfalse StopAtWatchpointstrue PauseWhileRunningfalse PauseInterval5 PauseUIFlags0 AltExePath Path PathFormatGeneric PathRootAbsolute StopAtTempBPOnLaunchfalse CacheSymbolicstrue TempBPFunctionNamemain TempBPType0 Enabledfalse ConnectionName DownloadPath LaunchRemoteAppfalse RemoteAppPath CoreID0 JTAGClockSpeed8000 IsMultiCorefalse OSDownloadfalse UseGlobalOSDownloadfalse OSDownloadConnectionName OSDownloadPath AltDownloadfalse AltDownloadConnectionName OtherExecutables CustomColor1 Red0 Green32767 Blue0 CustomColor2 Red0 Green32767 Blue0 CustomColor3 Red0 Green32767 Blue0 CustomColor4 Red0 Green32767 Blue0 MWFrontEnd_C_cplusplus0 MWFrontEnd_C_checkprotos0 MWFrontEnd_C_arm0 MWFrontEnd_C_trigraphs0 MWFrontEnd_C_onlystdkeywords0 MWFrontEnd_C_enumsalwaysint0 MWFrontEnd_C_mpwpointerstyle0 MWFrontEnd_C_prefixname MWFrontEnd_C_ansistrict0 MWFrontEnd_C_mpwcnewline0 MWFrontEnd_C_wchar_type1 MWFrontEnd_C_enableexceptions1 MWFrontEnd_C_dontreusestrings0 MWFrontEnd_C_poolstrings0 MWFrontEnd_C_dontinline0 MWFrontEnd_C_useRTTI1 MWFrontEnd_C_multibyteaware0 MWFrontEnd_C_unsignedchars0 MWFrontEnd_C_autoinline0 MWFrontEnd_C_booltruefalse1 MWFrontEnd_C_inlinelevel0 MWFrontEnd_C_ecplusplus0 MWFrontEnd_C_objective_c0 MWFrontEnd_C_defer_codegen0 MWFrontEnd_C_templateparser0 MWFrontEnd_C_c990 MWFrontEnd_C_bottomupinline1 MWWarning_C_warn_illpragma1 MWWarning_C_warn_emptydecl1 MWWarning_C_warn_possunwant1 MWWarning_C_warn_unusedvar1 MWWarning_C_warn_unusedarg1 MWWarning_C_warn_extracomma1 MWWarning_C_pedantic1 MWWarning_C_warningerrors0 MWWarning_C_warn_hidevirtual1 MWWarning_C_warn_implicitconv0 MWWarning_C_warn_notinlined1 MWWarning_C_warn_structclass1 MWFTP_Post_hostName MWFTP_Post_username MWFTP_Post_password0ÿà(l"¨T MWFTP_Post_remoteDir MWFTP_Post_ftp_PathVersion0 MWFTP_Post_ftp_PathType0 MWFTP_Post_ftp_PathFormat0 MWFTP_Post_ftp_tree MWFTP_Post_uploadDir MWFTP_Post_ftp_port21 MWFTP_Post_SendBin1 MWFTP_Post_ShouldLog1 MWCommandLine_Java_clsName MWCommandLine_Java_args MWVJavaDebugging_Protocol1 MWVJavaDebugging_JDKVersion1 MWVJavaDebugging_TimeOut10 MWVJavaDebugging_SupportSlowDevicesfalse MWVJavaDebugging_UseRemoteLaunchAgentfalse MWVJavaDebugging_LaunchVMasServerfalse MWJava_Language_optimizefalse MWJava_Language_warnDeprecatedfalse MWJava_Language_emitMapfalse MWJava_Language_strictFileNamesfalse MWJava_Language_strictFileHierarchyfalse MWJava_Language_1_1_Compatiblefalse MWJava_Language_emitHeaders0 MWJava_Language_headerTypeJNINativeHeaders MWJava_Language_packageFilter MWJava_Language_genCommentstrue MWJava_Language_genHeadersfalse MWJava_Language_enableAssertsfalse MWJava_Language_targetVM1.1 Manifest-JAD Attributes AttributeMain-Class ValueAuto-Generated MWJava_MRJAppBuilder_outFileMRJApplication MWJava_MRJAppBuilder_mergefalse MWJava_MRJAppBuilder_quitMenutrue MWJava_MRJAppBuilder_growfalse MWJava_MRJAppBuilder_stdoutTypeConsole MWJava_MRJAppBuilder_stderrTypeConsole MWJava_MRJAppBuilder_stdinTypeConsole MWJava_MRJAppBuilder_appIconPVersion0 MWJava_MRJAppBuilder_appIconPType0 MWJava_MRJAppBuilder_appIconPFormat0 MWJava_MRJAppBuilder_appIconPTree MWJava_MRJAppBuilder_appIconFile MWJava_MRJAppBuilder_splashScreenPVersion0 MWJava_MRJAppBuilder_splashScreenPType0 MWJava_MRJAppBuilder_splashScreenPFormat0 MWJava_MRJAppBuilder_splashScreenPTree MWJava_MRJAppBuilder_splashScreenPICTFile MWJava_MRJAppBuilder_aboutName MWJava_MRJAppBuilder_stdoutPVersion0 MWJava_MRJAppBuilder_stdoutPType0 MWJava_MRJAppBuilder_stdoutPFormat0 MWJava_MRJAppBuilder_stdoutPTree MWJava_MRJAppBuilder_stdoutFile MWJava_MRJAppBuilder_stdoutAppendfalse MWJava_MRJAppBuilder_stderrPType0 MWJava_MRJAppBuilder_stderrPFormat0 MWJava_MRJAppBuilder_stderrPTree MWJava_MRJAppBuilder_stderrFile MWJava_MRJAppBuilder_stderrAppendfalse MWJava_MRJAppBuilder_stdinPType0 MWJava_MRJAppBuilder_stdinPFormat0 MWJava_MRJAppBuilder_stdinPTree MWJava_MRJAppBuilder_stdinFile MWJava_Output_outputtypeJarFile MWJava_Output_outfileJavaClasses.jar MWJava_Output_ftype1514754080 MWJava_Output_fcreator1297570384 MWJava_Output_compress0 MWJava_Output_genManifest0 MWJava_Output_trunctypeFront MWJava_Output_deleteClasses0 MWJava_Output_consoleApp1 MWJava_Output_preverify0 MWJava_Output_genJad0 MWJava_Output_obfuscate0 MWJava_Proj_projtypeApplet MWJava_Proj_mainClassName MWJava_Proj_HTMLAppCreator1463898714 MWJava_Proj_HTMLAppName MWJava_Proj_PathVersion1 MWJava_Proj_PathType0 MWJava_Proj_PathFormat0 MWJava_Proj_tree MWJava_Proj_HTMLAppWin32Name MWJava_Proj_compress0 MWJava_Proj_simulator0 MWJava_Proj_useVM\000\000macosx MWJava_Proj_vmarguments MWJava_Proj_vmName MWJava_Proj_simPropFile MWJavaDoc_Proj_Version1 MWJavaDoc_Proj_Deprecated1 MWJavaDoc_Proj_Author1 MWJavaDoc_Proj_Index1 MWJavaDoc_Proj_Tree1 MWJavaDoc_Proj_SunResolveToSame0 MWJavaDoc_Proj_Shortnames1 MWJavaDoc_Proj_Folder0 MWJavaDoc_Proj_GenerateAPILinks0 MWJavaDoc_Proj_scopePublic MWJavaDoc_Proj_fcreator1297303877 MWJavaDoc_Proj_encodingName MWJavaDoc_Proj_decodingName MWJavaDoc_Proj_javaPackagePathhttp://java.sun.com/products/jdk/1.1/docs/api/ MWMerge_MacOS_projectTypeApplication MWMerge_MacOS_outputNameMerge Out MWMerge_MacOS_outputCreator???? MWMerge_MacOS_outputTypeAPPL MWMerge_MacOS_suppressWarning0 MWMerge_MacOS_copyFragments1 MWMerge_MacOS_copyResources1 MWMerge_MacOS_flattenResource0 MWMerge_MacOS_flatFileNamea.rsrc MWMerge_MacOS_flatFileOutputPath Path: PathFormatMacOS PathRootProject MWMerge_MacOS_skipResources DLGX ckid Proj WSPC mcvs FileLockedfalse ResourcesMapIsReadOnlyfalse PrinterDriverIsMultiFinderCompatiblefalse Invisiblefalse HasBundlefalse NameLockedfalse Stationeryfalse HasCustomIconfalse Sharedfalse HasBeenInitedfalse Label0 Comments MWMacOSPackager_UsePackager0 MWMacOSPackager_FolderToPackage Path PathFormatMacOS PathRootAbsolute MWMacOSPackager_CreateClassicAlias0 MWMacOSPackager_ClassicAliasMethodUseTargetOutput MWMacOSPackager_ClassicAliasPath MWMacOSPackager_CreatePkgInfo0 MWMacOSPackager_PkgCreatorType???? MWMacOSPackager_PkgFileTypeAPPL MWCodeGen_PPC_structalignmentPPC_mw MWCodeGen_PPC_tracebacktablesNone MWCodeGen_PPC_processorGeneric MWCodeGen_PPC_function_align4 MWCodeGen_PPC_tocdata1 MWCodeGen_PPC_largetoc0 MWCodeGen_PPC_profiler0 MWCodeGen_PPC_vectortocdata1 MWCodeGen_PPC_poolconst0 MWCodeGen_PPC_peephole1 MWCodeGen_PPC_readonlystrings0 MWCodeGen_PPC_linkerpoolsstrings0 MWCodeGen_PPC_volatileasm0 MWCodeGen_PPC_schedule0 MWCodeGen_PPC_altivec0 MWCodeGen_PPC_altivec_move_block0 MWCodeGen_PPC_strictIEEEfp0 MWCodeGen_PPC_fpcontract1 MWCodeGen_PPC_genfsel0 MWCodeGen_PPC_orderedfpcmp0 MWCodeGen_MachO_structalignmentPPC_mw MWCodeGen_MachO_profiler_enumOff MWCodeGen_MachO_processorGeneric MWCodeGen_MachO_function_align4 MWCodeGen_MachO_common0 MWCodeGen_MachO_peephole1 MWCodeGen_MachO_readonlystrings0 MWCodeGen_MachO_linkerpoolsstrings1 MWCodeGen_MachO_volatileasm0 MWCodeGen_MachO_schedule0 MWCodeGen_MachO_altivec0 MWCodeGen_MachO_vecmove0 MWCodeGen_MachO_fp_ieee_strict0 MWCodeGen_MachO_fpcontract1 MWCodeGen_MachO_genfsel0 MWCodeGen_MachO_fp_cmps_ordered0 MWDisassembler_PPC_showcode1 MWDisassembler_PPC_extended1 MWDisassembler_PPC_mix0 MWDisassembler_PPC_nohex0 MWDisassembler_PPC_showdata1 MWDisassembler_PPC_showexceptions1 MWDisassembler_PPC_showsym0 MWDisassembler_PPC_shownames1 GlobalOptimizer_PPC_optimizationlevelLevel0 GlobalOptimizer_PPC_optforSpeed MWLinker_PPC_linksym0 MWLinker_PPC_symfullpath1 MWLinker_PPC_linkmap0 MWLinker_PPC_nolinkwarnings0 MWLinker_PPC_dontdeadstripinitcode0 MWLinker_PPC_permitmultdefs0 MWLinker_PPC_linkmodeFast MWLinker_PPC_initname MWLinker_PPC_mainname__start MWLinker_PPC_termname MWLinker_MacOSX_linksym0 MWLinker_MacOSX_symfullpath0 MWLinker_MacOSX_nolinkwarnings0 MWLinker_MacOSX_linkmap0 MWLinker_MacOSX_dontdeadstripinitcode0 MWLinker_MacOSX_permitmultdefs1 MWLinker_MacOSX_use_objectivec_semantics0 MWLinker_MacOSX_strip_debug_symbols0 MWLinker_MacOSX_split_segs0 MWLinker_MacOSX_report_msl_overloads0 MWLinker_MacOSX_objects_follow_linkorder0 MWLinker_MacOSX_linkmodeFast MWLinker_MacOSX_exportsReferencedGlobals MWLinker_MacOSX_sortcodeNone MWLinker_MacOSX_mainname MWProject_MacOSX_typeExecutable MWProject_MacOSX_outfile MWProject_MacOSX_filecreator???? MWProject_MacOSX_filetypeMEXE MWProject_MacOSX_vmaddress4096 MWProject_MacOSX_usedefaultvmaddr1 MWProject_MacOSX_flatrsrc0 MWProject_MacOSX_flatrsrcfilename MWProject_MacOSX_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_MacOSX_installpath./ MWProject_MacOSX_dont_prebind0 MWProject_MacOSX_flat_namespace0 MWProject_MacOSX_frameworkversionA MWProject_MacOSX_currentversion0 MWProject_MacOSX_flat_oldimpversion0 MWLinker_MachO_exportsNone MWLinker_MachO_mainname MWLinker_MachO_currentversion0 MWLinker_MachO_compatibleversion0 MWLinker_MachO_symfullpath0 MWLinker_MachO_supresswarnings0 MWLinker_MachO_multisymerror0 MWLinker_MachO_prebind1 MWLinker_MachO_deadstrip1 MWLinker_MachO_objectivecsemantics0 MWLinker_MachO_whichfileloaded0 MWLinker_MachO_whyfileloaded0 MWLinker_MachO_readonlyrelocsErrors MWLinker_MachO_undefinedsymbolsErrors MWLinker_MachO_twolevelnamespace1 MWLinker_MachO_stripdebugsymbols0 MWProject_MachO_typeExecutable MWProject_MachO_outfilea.exe MWProject_MachO_filecreator???? MWProject_MachO_filetypeMEXE MWProject_MachO_vmaddress4096 MWProject_MachO_flatrsrc1 MWProject_MachO_flatrsrcfilenamea.rsrc MWProject_MachO_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_MachO_installpath./ MWProject_MachO_frameworkversion MWPEF_exportsPragma MWPEF_libfolder128 MWPEF_sortcodeNone MWPEF_expandbss0 MWPEF_sharedata0 MWPEF_olddefversion0 MWPEF_oldimpversion0 MWPEF_currentversion0 MWPEF_fragmentnameResKnife MWPEF_collapsereloads0 MWProject_PPC_typeApplication MWProject_PPC_outfilea.out MWProject_PPC_filecreator???? MWProject_PPC_filetypeAPPL MWProject_PPC_size384 MWProject_PPC_minsize384 MWProject_PPC_stacksize64 MWProject_PPC_flags22720 MWProject_PPC_symfilename MWProject_PPC_rsrcname MWProject_PPC_rsrcheaderNative MWProject_PPC_rsrctype???? MWProject_PPC_rsrcid0 MWProject_PPC_rsrcflags0 MWProject_PPC_rsrcstore0 MWProject_PPC_rsrcmerge0 MWProject_PPC_flatrsrc0 MWProject_PPC_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_PPC_flatrsrcfilename MWAssembler_PPC_auxheader0 MWAssembler_PPC_symmodeMac MWAssembler_PPC_dialectPPC MWAssembler_PPC_prefixfile MWAssembler_PPC_typecheck0 MWAssembler_PPC_warnings0 MWAssembler_PPC_casesensitive0 PList_OutputTypeFile PList_OutputEncodingUTF-8 PList_Prefix PList_FileFilenameInfo.plist PList_FileDirectory Path: PathFormatMacOS PathRootProject PList_ResourceTypeplst PList_ResourceID0 PList_ResourceName MWRez_Language_maxwidth80 MWRez_Language_scriptRoman MWRez_Language_alignmentAlign1 MWRez_Language_filtermodeFilterSkip MWRez_Language_suppresswarnings0 MWRez_Language_escapecontrolchars1 MWRez_Language_prefixname MWRez_Language_filteredtypes'CODE' 'DATA' 'PICT' MWWinRC_prefixname MWCodeGen_X86_processorGeneric MWCodeGen_X86_alignmentbytes8 MWCodeGen_X86_exceptionsZeroOverhead MWCodeGen_X86_name_manglingMWWin32 MWCodeGen_X86_use_extinst0 MWCodeGen_X86_extinst_mmx0 MWCodeGen_X86_extinst_3dnow0 MWCodeGen_X86_use_mmx_3dnow_convention0 MWCodeGen_X86_extinst_cmov0 MWCodeGen_X86_extinst_sse0 MWCodeGen_X86_extinst_sse20 MWCodeGen_X86_intrinsics0 MWCodeGen_X86_optimizeasm0 MWCodeGen_X86_disableopts0 MWCodeGen_X86_profile0 MWLinker_X86_runtimeCustom MWCodeGen_X86_readonlystrings0 MWLinker_X86_subsysmajorid4 MWLinker_X86_subsysminorid0 MWCOFF_X86_opsysmajorid4 MWCOFF_X86_opsysminorid0 MWLinker_X86_usrmajorid0 MWLinker_X86_usrminorid0 MWProject_X86_maxstacksize1024 MWProject_X86_minstacksize4 MWProject_X86_size1024 MWProject_X86_minsize4 MWCOFF_X86_coff_flags0 MWCOFF_X86_dll_flags0 MWProject_X86_baseaddress4194304 MWCOFF_X86_filealign512 MWCOFF_X86_sectionalign4096 PDisasmX86_showHeaderstrue PDisasmX86_showSectHeaderstrue PDisasmX86_showSymTabtrue PDisasmX86_showCodetrue PDisasmX86_showDatatrue PDisasmX86_showDebugfalse PDisasmX86_showExceptionsfalse PDisasmX86_showRawfalse PDisasmX86_showAllRawfalse PDisasmX86_showSourcefalse PDisasmX86_showRelocationtrue PDisasmX86_showHextrue PDisasmX86_showCommentsfalse PDisasmX86_showSymDefstrue PDisasmX86_unmanglefalse PDisasmX86_verbosefalse PDisasmX86_resolveRelocstrue PDisasmX86_resolveLocalsfalse MWDebugger_X86_Exceptions 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GlobalOptimizer_X86_optimizationlevelLevel0 GlobalOptimizer_X86_optforSpeed MWLinker_X86_entrypointusageDefault MWLinker_X86_entrypoint MWLinker_X86_subsystemWinGUI MWLinker_X86_commandfile MWLinker_X86_generatemap0 MWLinker_X86_linksym0 MWLinker_X86_linkCV1 MWLinker_X86_symfullpathfalse MWLinker_X86_linkdebugtrue MWLinker_X86_checksumfalse MWLinker_X86_zero_init_bssfalse MWLinker_X86_mergedatafalse MWLinker_X86_usedefaultlibsfalse MWLinker_X86_adddefaultlibsfalse MWLinker_X86_nowarningsfalse MWLinker_X86_verbosefalse MWProject_X86_typeApplication MWProject_X86_outfilenoname.exe MWProject_X86_importlib MWProject_X86_setimportlibdirfalse MWProject_X86_dontgenerateimportlibfalse MWProject_X86_oldformatlibfalse MWProject_X86_replaceobjextensionfalse MWProject_X86_copyallfilesfalse PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:InterfaceLib MacOS Library Debug PathRelative CodeWarrior : :Carbon Support:CarbonLib:Stub:CarbonAccessors.o MacOS Library Debug PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:AppearanceLib MacOS Library Debug, WeakImport PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:NavigationLib MacOS Library Debug, WeakImport PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:WindowsLib MacOS Library Debug, WeakImport PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:ControlsLib MacOS Library Debug, WeakImport PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:DragLib MacOS Library Debug, WeakImport PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:MenusLib MacOS Library Debug, WeakImport PathRelative CodeWarrior : :MSL:MSL_C++:MSL_MacOS:Lib:PPC:MSL_C++_PPC.Lib MacOS Library Debug PathRelative CodeWarrior : :MSL:MSL_C:MSL_MacOS:Lib:PPC:MSL_C_PPC.Lib MacOS Library Debug PathRelative CodeWarrior : :MacOS Support:Libraries:Runtime:Libs:MSL_Runtime_PPC.Lib MacOS Library Debug PathRelative Project : :Carbon:Classes:Application.cpp MacOS Text PathRelative Project : :Carbon:Classes:Application.h MacOS Text PathRelative Project : :Carbon:Classes:Asynchronous.cpp MacOS Text PathRelative Project : :Carbon:Classes:DataBrowser.cpp MacOS Text PathRelative Project : :Carbon:Classes:Asynchronous.h MacOS Text PathRelative Project : :Carbon:Classes:DataBrowser.h MacOS Text PathRelative Project : :Carbon:Classes:WindowObject.h MacOS Text PathRelative Project : :Carbon:Classes:Utility.h MacOS Text PathRelative Project : :Carbon:Classes:ResourceObject.h MacOS Text PathRelative Project : :Carbon:Classes:PlugWindow.h MacOS Text PathRelative Project : :Carbon:Classes:PlugObject.h MacOS Text PathRelative Project : :Carbon:Classes:PickerWindow.h MacOS Text PathRelative Project : :Carbon:Classes:InspectorWindow.h MacOS Text PathRelative Project : :Carbon:Classes:HostCallbacks.h MacOS Text PathRelative Project : :Carbon:Classes:FileWindow.h MacOS Text PathRelative Project : :Carbon:Classes:Files.h MacOS Text PathRelative Project : :Carbon:Classes:Errors.h MacOS Text PathRelative Project : :Carbon:Classes:EditorWindow.h MacOS Text PathRelative Project : :Carbon:Classes:EditorWindow.cpp MacOS Text PathRelative Project : :Carbon:Classes:Errors.cpp MacOS Text PathRelative Project : :Carbon:Classes:Files.cpp MacOS Text PathRelative Project : :Carbon:Classes:FileWindow.cpp MacOS Text PathRelative Project : :Carbon:Classes:HostCallbacks.cpp MacOS Text PathRelative Project : :Carbon:Classes:InspectorWindow.cpp MacOS Text PathRelative Project : :Carbon:Classes:PickerWindow.cpp MacOS Text PathRelative Project : :Carbon:Classes:PlugObject.cpp MacOS Text PathRelative Project : :Carbon:Classes:PlugWindow.cpp MacOS Text PathRelative Project : :Carbon:Classes:ResourceObject.cpp MacOS Text PathRelative Project : :Carbon:Classes:Utility.cpp MacOS Text PathRelative Project : :Carbon:Classes:WindowObject.cpp MacOS Text PathRelative Project : :Carbon:Transfer.h MacOS Text PathRelative Project : :Carbon:ResKnife.h MacOS Text PathRelative Project : :Carbon:Generic.h MacOS Text PathRelative Project : :Carbon:Resources:ResKnife.r MacOS Text PathRelative Project : :Carbon:Resources:ResKnife.rsrc MacOS Resource PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:AppearanceLib MacOS PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:ControlsLib MacOS PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:DragLib MacOS PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:InterfaceLib MacOS PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:MenusLib MacOS PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:NavigationLib MacOS PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:WindowsLib MacOS PathRelative CodeWarrior : :Carbon Support:CarbonLib:Stub:CarbonAccessors.o MacOS PathRelative CodeWarrior : :MSL:MSL_C++:MSL_MacOS:Lib:PPC:MSL_C++_PPC.Lib MacOS PathRelative CodeWarrior : :MSL:MSL_C:MSL_MacOS:Lib:PPC:MSL_C_PPC.Lib MacOS PathRelative CodeWarrior : :MacOS Support:Libraries:Runtime:Libs:MSL_Runtime_PPC.Lib MacOS PathRelative Project : :Carbon:Classes:Application.cpp MacOS PathRelative Project : :Carbon:Classes:Application.h MacOS PathRelative Project : :Carbon:Classes:Asynchronous.cpp MacOS PathRelative Project : :Carbon:Classes:DataBrowser.cpp MacOS PathRelative Project : :Carbon:Classes:Asynchronous.h MacOS PathRelative Project : :Carbon:Classes:DataBrowser.h MacOS PathRelative Project : :Carbon:Classes:WindowObject.h MacOS PathRelative Project : :Carbon:Classes:Utility.h MacOS PathRelative Project : :Carbon:Classes:ResourceObject.h MacOS PathRelative Project : :Carbon:Classes:PlugWindow.h MacOS PathRelative Project : :Carbon:Classes:PlugObject.h MacOS PathRelative Project : :Carbon:Classes:PickerWindow.h MacOS PathRelative Project : :Carbon:Classes:InspectorWindow.h MacOS PathRelative Project : :Carbon:Classes:HostCallbacks.h MacOS PathRelative Project : :Carbon:Classes:FileWindow.h MacOS PathRelative Project : :Carbon:Classes:Files.h MacOS PathRelative Project : :Carbon:Classes:Errors.h MacOS PathRelative Project : :Carbon:Classes:EditorWindow.h MacOS PathRelative Project : :Carbon:Classes:EditorWindow.cpp MacOS PathRelative Project : :Carbon:Classes:Errors.cpp MacOS PathRelative Project : :Carbon:Classes:Files.cpp MacOS PathRelative Project : :Carbon:Classes:FileWindow.cpp MacOS PathRelative Project : :Carbon:Classes:HostCallbacks.cpp MacOS PathRelative Project : :Carbon:Classes:InspectorWindow.cpp MacOS PathRelative Project : :Carbon:Classes:PickerWindow.cpp MacOS PathRelative Project : :Carbon:Classes:PlugObject.cpp MacOS PathRelative Project : :Carbon:Classes:PlugWindow.cpp MacOS PathRelative Project : :Carbon:Classes:ResourceObject.cpp MacOS PathRelative Project : :Carbon:Classes:Utility.cpp MacOS PathRelative Project : :Carbon:Classes:WindowObject.cpp MacOS PathRelative Project : :Carbon:Transfer.h MacOS PathRelative Project : :Carbon:ResKnife.h MacOS PathRelative Project : :Carbon:Generic.h MacOS PathRelative Project : :Carbon:Resources:ResKnife.r MacOS PathRelative Project : :Carbon:Resources:ResKnife.rsrc MacOS ResKnife (68K) UserSourceTrees AlwaysSearchUserPathsfalse InterpretDOSAndUnixPathsfalse RequireFrameworkStyleIncludesfalse UserSearchPaths SearchPath Path: PathFormatMacOS PathRootProject Recursivetrue FrameworkPathfalse HostFlagsAll SystemSearchPaths SearchPath Path: PathFormatMacOS PathRootCodeWarrior Recursivetrue FrameworkPathfalse HostFlagsAll MWRuntimeSettings_WorkingDirectory MWRuntimeSettings_CommandLine MWRuntimeSettings_HostApplication Path PathFormatMacOS PathRootAbsolute MWRuntimeSettings_EnvVars LinkerMacOS 68K Linker PreLinker PostLinker TargetnameResKnife (68K) OutputDirectory Path:build: PathFormatMacOS PathRootProject SaveEntriesUsingRelativePathstrue CacheModDatestrue DumpBrowserInfofalse CacheSubprojectstrue UseThirdPartyDebuggerfalse BrowserGenerator1 DebuggerAppPath Path PathFormatGeneric PathRootAbsolute DebuggerCmdLineArgs DebuggerWorkingDir Path PathFormatGeneric PathRootAbsolute CodeCompletionPrefixFileName CodeCompletionMacroFileName ConsoleEncoding0 LogSystemMessagestrue AutoTargetDLLsfalse StopAtWatchpointstrue PauseWhileRunningfalse PauseInterval5 PauseUIFlags0 AltExePath Path PathFormatGeneric PathRootAbsolute StopAtTempBPOnLaunchfalse CacheSymbolicstrue TempBPFunctionNamemain TempBPType0 Enabledfalse ConnectionName DownloadPath LaunchRemoteAppfalse RemoteAppPath CoreID0 JTAGClockSpeed8000 IsMultiCorefalse OSDownloadfalse UseGlobalOSDownloadfalse OSDownloadConnectionName OSDownloadPath AltDownloadfalse AltDownloadConnectionName OtherExecutables CustomColor1 Red0 Green32767 Blue0 CustomColor2 Red0 Green32767 Blue0 CustomColor3 Red0 Green32767 Blue0 CustomColor4 Red0 Green32767 Blue0 MWFrontEnd_C_cplusplus0 MWFrontEnd_C_checkprotos0 MWFrontEnd_C_arm0 MWFrontEnd_C_trigraphs0 MWFrontEnd_C_onlystdkeywords0 MWFrontEnd_C_enumsalwaysint0 MWFrontEnd_C_mpwpointerstyle0 MWFrontEnd_C_prefixname MWFrontEnd_C_ansistrict0 MWFrontEnd_C_mpwcnewline0 MWFrontEnd_C_wchar_type1 MWFrontEnd_C_enableexceptions1 MWFrontEnd_C_dontreusestrings0 MWFrontEnd_C_poolstrings0 MWFrontEnd_C_dontinline0 MWFrontEnd_C_useRTTI1 MWFrontEnd_C_multibyteaware0 MWFrontEnd_C_unsignedchars0 MWFrontEnd_C_autoinline0 MWFrontEnd_C_booltruefalse1 MWFrontEnd_C_inlinelevel0 MWFrontEnd_C_ecplusplus0 MWFrontEnd_C_objective_c0 MWFrontEnd_C_defer_codegen0 MWFrontEnd_C_templateparser0 MWFrontEnd_C_c990 MWFrontEnd_C_bottomupinline1 MWWarning_C_warn_illpragma1 MWWarning_C_warn_emptydecl1 MWWarning_C_warn_possunwant1 MWWarning_C_warn_unusedvar1 MWWarning_C_warn_unusedarg1 MWWarning_C_warn_extracomma1 MWWarning_C_pedantic1 MWWarning_C_warningerrors0 MWWarning_C_warn_hidevirtual1 MWWarning_C_warn_implicitconv0 MWWarning_C_warn_notinlined1 MWWarning_C_warn_structclass1 MWFTP_Post_hostName MWFTP_Post_username MWFTP_Post_password0ÿà(l"¨T MWFTP_Post_remoteDir MWFTP_Post_ftp_PathVersion0 MWFTP_Post_ftp_PathType0 MWFTP_Post_ftp_PathFormat0 MWFTP_Post_ftp_tree MWFTP_Post_uploadDir MWFTP_Post_ftp_port21 MWFTP_Post_SendBin1 MWFTP_Post_ShouldLog1 MWCommandLine_Java_clsName MWCommandLine_Java_args MWVJavaDebugging_Protocol1 MWVJavaDebugging_JDKVersion1 MWVJavaDebugging_TimeOut10 MWVJavaDebugging_SupportSlowDevicesfalse MWVJavaDebugging_UseRemoteLaunchAgentfalse MWVJavaDebugging_LaunchVMasServerfalse MWJava_Language_optimizefalse MWJava_Language_warnDeprecatedfalse MWJava_Language_emitMapfalse MWJava_Language_strictFileNamesfalse MWJava_Language_strictFileHierarchyfalse MWJava_Language_1_1_Compatiblefalse MWJava_Language_emitHeaders0 MWJava_Language_headerTypeJNINativeHeaders MWJava_Language_packageFilter MWJava_Language_genCommentstrue MWJava_Language_genHeadersfalse MWJava_Language_enableAssertsfalse MWJava_Language_targetVM1.1 Manifest-JAD Attributes AttributeMain-Class ValueAuto-Generated MWJava_MRJAppBuilder_outFileMRJApplication MWJava_MRJAppBuilder_mergefalse MWJava_MRJAppBuilder_quitMenutrue MWJava_MRJAppBuilder_growfalse MWJava_MRJAppBuilder_stdoutTypeConsole MWJava_MRJAppBuilder_stderrTypeConsole MWJava_MRJAppBuilder_stdinTypeConsole MWJava_MRJAppBuilder_appIconPVersion0 MWJava_MRJAppBuilder_appIconPType0 MWJava_MRJAppBuilder_appIconPFormat0 MWJava_MRJAppBuilder_appIconPTree MWJava_MRJAppBuilder_appIconFile MWJava_MRJAppBuilder_splashScreenPVersion0 MWJava_MRJAppBuilder_splashScreenPType0 MWJava_MRJAppBuilder_splashScreenPFormat0 MWJava_MRJAppBuilder_splashScreenPTree MWJava_MRJAppBuilder_splashScreenPICTFile MWJava_MRJAppBuilder_aboutName MWJava_MRJAppBuilder_stdoutPVersion0 MWJava_MRJAppBuilder_stdoutPType0 MWJava_MRJAppBuilder_stdoutPFormat0 MWJava_MRJAppBuilder_stdoutPTree MWJava_MRJAppBuilder_stdoutFile MWJava_MRJAppBuilder_stdoutAppendfalse MWJava_MRJAppBuilder_stderrPType0 MWJava_MRJAppBuilder_stderrPFormat0 MWJava_MRJAppBuilder_stderrPTree MWJava_MRJAppBuilder_stderrFile MWJava_MRJAppBuilder_stderrAppendfalse MWJava_MRJAppBuilder_stdinPType0 MWJava_MRJAppBuilder_stdinPFormat0 MWJava_MRJAppBuilder_stdinPTree MWJava_MRJAppBuilder_stdinFile MWJava_Output_outputtypeJarFile MWJava_Output_outfileJavaClasses.jar MWJava_Output_ftype1514754080 MWJava_Output_fcreator1297570384 MWJava_Output_compress0 MWJava_Output_genManifest0 MWJava_Output_trunctypeFront MWJava_Output_deleteClasses0 MWJava_Output_consoleApp1 MWJava_Output_preverify0 MWJava_Output_genJad0 MWJava_Output_obfuscate0 MWJava_Proj_projtypeApplet MWJava_Proj_mainClassName MWJava_Proj_HTMLAppCreator1463898714 MWJava_Proj_HTMLAppName MWJava_Proj_PathVersion1 MWJava_Proj_PathType0 MWJava_Proj_PathFormat0 MWJava_Proj_tree MWJava_Proj_HTMLAppWin32Name MWJava_Proj_compress0 MWJava_Proj_simulator0 MWJava_Proj_useVM\000\000macosx MWJava_Proj_vmarguments MWJava_Proj_vmName MWJava_Proj_simPropFile MWJavaDoc_Proj_Version1 MWJavaDoc_Proj_Deprecated1 MWJavaDoc_Proj_Author1 MWJavaDoc_Proj_Index1 MWJavaDoc_Proj_Tree1 MWJavaDoc_Proj_SunResolveToSame0 MWJavaDoc_Proj_Shortnames1 MWJavaDoc_Proj_Folder0 MWJavaDoc_Proj_GenerateAPILinks0 MWJavaDoc_Proj_scopePublic MWJavaDoc_Proj_fcreator1297303877 MWJavaDoc_Proj_encodingName MWJavaDoc_Proj_decodingName MWJavaDoc_Proj_javaPackagePathhttp://java.sun.com/products/jdk/1.1/docs/api/ MWMerge_MacOS_projectTypeApplication MWMerge_MacOS_outputNameMerge Out MWMerge_MacOS_outputCreator???? MWMerge_MacOS_outputTypeAPPL MWMerge_MacOS_suppressWarning0 MWMerge_MacOS_copyFragments1 MWMerge_MacOS_copyResources1 MWMerge_MacOS_flattenResource0 MWMerge_MacOS_flatFileNamea.rsrc MWMerge_MacOS_flatFileOutputPath Path: PathFormatMacOS PathRootProject MWMerge_MacOS_skipResources DLGX ckid Proj WSPC mcvs FileLockedfalse ResourcesMapIsReadOnlyfalse PrinterDriverIsMultiFinderCompatiblefalse Invisiblefalse HasBundlefalse NameLockedfalse Stationeryfalse HasCustomIconfalse Sharedfalse HasBeenInitedfalse Label0 Comments MWMacOSPackager_UsePackager0 MWMacOSPackager_FolderToPackage Path PathFormatMacOS PathRootAbsolute MWMacOSPackager_CreateClassicAlias0 MWMacOSPackager_ClassicAliasMethodUseTargetOutput MWMacOSPackager_ClassicAliasPath MWMacOSPackager_CreatePkgInfo0 MWMacOSPackager_PkgCreatorType???? MWMacOSPackager_PkgFileTypeAPPL MWCodeGen_PPC_structalignmentPPC_mw MWCodeGen_PPC_tracebacktablesNone MWCodeGen_PPC_processorGeneric MWCodeGen_PPC_function_align4 MWCodeGen_PPC_tocdata1 MWCodeGen_PPC_largetoc0 MWCodeGen_PPC_profiler0 MWCodeGen_PPC_vectortocdata1 MWCodeGen_PPC_poolconst0 MWCodeGen_PPC_peephole1 MWCodeGen_PPC_readonlystrings0 MWCodeGen_PPC_linkerpoolsstrings0 MWCodeGen_PPC_volatileasm0 MWCodeGen_PPC_schedule0 MWCodeGen_PPC_altivec0 MWCodeGen_PPC_altivec_move_block0 MWCodeGen_PPC_strictIEEEfp0 MWCodeGen_PPC_fpcontract1 MWCodeGen_PPC_genfsel0 MWCodeGen_PPC_orderedfpcmp0 MWCodeGen_MachO_structalignmentPPC_mw MWCodeGen_MachO_profiler_enumOff MWCodeGen_MachO_processorGeneric MWCodeGen_MachO_function_align4 MWCodeGen_MachO_common0 MWCodeGen_MachO_peephole1 MWCodeGen_MachO_readonlystrings0 MWCodeGen_MachO_linkerpoolsstrings1 MWCodeGen_MachO_volatileasm0 MWCodeGen_MachO_schedule0 MWCodeGen_MachO_altivec0 MWCodeGen_MachO_vecmove0 MWCodeGen_MachO_fp_ieee_strict0 MWCodeGen_MachO_fpcontract1 MWCodeGen_MachO_genfsel0 MWCodeGen_MachO_fp_cmps_ordered0 MWDisassembler_PPC_showcode1 MWDisassembler_PPC_extended1 MWDisassembler_PPC_mix0 MWDisassembler_PPC_nohex0 MWDisassembler_PPC_showdata1 MWDisassembler_PPC_showexceptions1 MWDisassembler_PPC_showsym0 MWDisassembler_PPC_shownames1 GlobalOptimizer_PPC_optimizationlevelLevel0 GlobalOptimizer_PPC_optforSpeed MWLinker_PPC_linksym0 MWLinker_PPC_symfullpath1 MWLinker_PPC_linkmap0 MWLinker_PPC_nolinkwarnings0 MWLinker_PPC_dontdeadstripinitcode0 MWLinker_PPC_permitmultdefs0 MWLinker_PPC_linkmodeFast MWLinker_PPC_initname MWLinker_PPC_mainname__start MWLinker_PPC_termname MWLinker_MacOSX_linksym0 MWLinker_MacOSX_symfullpath0 MWLinker_MacOSX_nolinkwarnings0 MWLinker_MacOSX_linkmap0 MWLinker_MacOSX_dontdeadstripinitcode0 MWLinker_MacOSX_permitmultdefs1 MWLinker_MacOSX_use_objectivec_semantics0 MWLinker_MacOSX_strip_debug_symbols0 MWLinker_MacOSX_split_segs0 MWLinker_MacOSX_report_msl_overloads0 MWLinker_MacOSX_objects_follow_linkorder0 MWLinker_MacOSX_linkmodeFast MWLinker_MacOSX_exportsReferencedGlobals MWLinker_MacOSX_sortcodeNone MWLinker_MacOSX_mainname MWProject_MacOSX_typeExecutable MWProject_MacOSX_outfile MWProject_MacOSX_filecreator???? MWProject_MacOSX_filetypeMEXE MWProject_MacOSX_vmaddress4096 MWProject_MacOSX_usedefaultvmaddr1 MWProject_MacOSX_flatrsrc0 MWProject_MacOSX_flatrsrcfilename MWProject_MacOSX_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_MacOSX_installpath./ MWProject_MacOSX_dont_prebind0 MWProject_MacOSX_flat_namespace0 MWProject_MacOSX_frameworkversionA MWProject_MacOSX_currentversion0 MWProject_MacOSX_flat_oldimpversion0 MWLinker_MachO_exportsNone MWLinker_MachO_mainname MWLinker_MachO_currentversion0 MWLinker_MachO_compatibleversion0 MWLinker_MachO_symfullpath0 MWLinker_MachO_supresswarnings0 MWLinker_MachO_multisymerror0 MWLinker_MachO_prebind1 MWLinker_MachO_deadstrip1 MWLinker_MachO_objectivecsemantics0 MWLinker_MachO_whichfileloaded0 MWLinker_MachO_whyfileloaded0 MWLinker_MachO_readonlyrelocsErrors MWLinker_MachO_undefinedsymbolsErrors MWLinker_MachO_twolevelnamespace1 MWLinker_MachO_stripdebugsymbols0 MWProject_MachO_typeExecutable MWProject_MachO_outfilea.exe MWProject_MachO_filecreator???? MWProject_MachO_filetypeMEXE MWProject_MachO_vmaddress4096 MWProject_MachO_flatrsrc1 MWProject_MachO_flatrsrcfilenamea.rsrc MWProject_MachO_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_MachO_installpath./ MWProject_MachO_frameworkversion MWPEF_exportsPragma MWPEF_libfolder128 MWPEF_sortcodeNone MWPEF_expandbss0 MWPEF_sharedata0 MWPEF_olddefversion0 MWPEF_oldimpversion0 MWPEF_currentversion0 MWPEF_fragmentnameResKnife MWPEF_collapsereloads0 MWProject_PPC_typeApplication MWProject_PPC_outfilea.out MWProject_PPC_filecreator???? MWProject_PPC_filetypeAPPL MWProject_PPC_size384 MWProject_PPC_minsize384 MWProject_PPC_stacksize64 MWProject_PPC_flags22720 MWProject_PPC_symfilename MWProject_PPC_rsrcname MWProject_PPC_rsrcheaderNative MWProject_PPC_rsrctype???? MWProject_PPC_rsrcid0 MWProject_PPC_rsrcflags0 MWProject_PPC_rsrcstore0 MWProject_PPC_rsrcmerge0 MWProject_PPC_flatrsrc0 MWProject_PPC_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_PPC_flatrsrcfilename MWAssembler_PPC_auxheader0 MWAssembler_PPC_symmodeMac MWAssembler_PPC_dialectPPC MWAssembler_PPC_prefixfile MWAssembler_PPC_typecheck0 MWAssembler_PPC_warnings0 MWAssembler_PPC_casesensitive0 PList_OutputTypeFile PList_OutputEncodingUTF-8 PList_Prefix PList_FileFilenameInfo.plist PList_FileDirectory Path: PathFormatMacOS PathRootProject PList_ResourceTypeplst PList_ResourceID0 PList_ResourceName MWRez_Language_maxwidth80 MWRez_Language_scriptRoman MWRez_Language_alignmentAlign1 MWRez_Language_filtermodeFilterSkip MWRez_Language_suppresswarnings0 MWRez_Language_escapecontrolchars1 MWRez_Language_prefixname MWRez_Language_filteredtypes'CODE' 'DATA' 'PICT' MWWinRC_prefixname MWCodeGen_X86_processorGeneric MWCodeGen_X86_alignmentbytes8 MWCodeGen_X86_exceptionsZeroOverhead MWCodeGen_X86_name_manglingMWWin32 MWCodeGen_X86_use_extinst0 MWCodeGen_X86_extinst_mmx0 MWCodeGen_X86_extinst_3dnow0 MWCodeGen_X86_use_mmx_3dnow_convention0 MWCodeGen_X86_extinst_cmov0 MWCodeGen_X86_extinst_sse0 MWCodeGen_X86_extinst_sse20 MWCodeGen_X86_intrinsics0 MWCodeGen_X86_optimizeasm0 MWCodeGen_X86_disableopts0 MWCodeGen_X86_profile0 MWLinker_X86_runtimeCustom MWCodeGen_X86_readonlystrings0 MWLinker_X86_subsysmajorid4 MWLinker_X86_subsysminorid0 MWCOFF_X86_opsysmajorid4 MWCOFF_X86_opsysminorid0 MWLinker_X86_usrmajorid0 MWLinker_X86_usrminorid0 MWProject_X86_maxstacksize1024 MWProject_X86_minstacksize4 MWProject_X86_size1024 MWProject_X86_minsize4 MWCOFF_X86_coff_flags0 MWCOFF_X86_dll_flags0 MWProject_X86_baseaddress4194304 MWCOFF_X86_filealign512 MWCOFF_X86_sectionalign4096 PDisasmX86_showHeaderstrue PDisasmX86_showSectHeaderstrue PDisasmX86_showSymTabtrue PDisasmX86_showCodetrue PDisasmX86_showDatatrue PDisasmX86_showDebugfalse PDisasmX86_showExceptionsfalse PDisasmX86_showRawfalse PDisasmX86_showAllRawfalse PDisasmX86_showSourcefalse PDisasmX86_showRelocationtrue PDisasmX86_showHextrue PDisasmX86_showCommentsfalse PDisasmX86_showSymDefstrue PDisasmX86_unmanglefalse PDisasmX86_verbosefalse PDisasmX86_resolveRelocstrue PDisasmX86_resolveLocalsfalse MWDebugger_X86_Exceptions 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GlobalOptimizer_X86_optimizationlevelLevel0 GlobalOptimizer_X86_optforSpeed MWLinker_X86_entrypointusageDefault MWLinker_X86_entrypoint MWLinker_X86_subsystemWinGUI MWLinker_X86_commandfile MWLinker_X86_generatemap0 MWLinker_X86_linksym0 MWLinker_X86_linkCV1 MWLinker_X86_symfullpathfalse MWLinker_X86_linkdebugtrue MWLinker_X86_checksumfalse MWLinker_X86_zero_init_bssfalse MWLinker_X86_mergedatafalse MWLinker_X86_usedefaultlibsfalse MWLinker_X86_adddefaultlibsfalse MWLinker_X86_nowarningsfalse MWLinker_X86_verbosefalse MWProject_X86_typeApplication MWProject_X86_outfilenoname.exe MWProject_X86_importlib MWProject_X86_setimportlibdirfalse MWProject_X86_dontgenerateimportlibfalse MWProject_X86_oldformatlibfalse MWProject_X86_replaceobjextensionfalse MWProject_X86_copyallfilesfalse PathRelative CodeWarrior : :MacOS Support:Libraries:MacOS 68K:MacOS.lib MacOS Library Debug PathRelative CodeWarrior : :MacOS Support:Libraries:Runtime:Runtime 68K:Libs:MSL Runtime68K.Lib MacOS Library Debug PathRelative CodeWarrior : :MacOS Support:Libraries:MacOS 68K:MathLib68K:MathLib68K (Model Near):MathLib68K (2i).Lib MacOS Library Debug PathRelative CodeWarrior : :MSL:MSL_C:MSL_MacOS:Lib:68K:MSL C.68K (2i).Lib MacOS Library Debug PathRelative CodeWarrior : :MSL:MSL_C++:MSL_MacOS:Lib:68K:MSL C++.68K (2i).Lib MacOS Library Debug PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:Classic68kLibraries:Navigation.o MacOS Library Debug PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:Classic68kLibraries:Navigation.o MacOS PathRelative CodeWarrior : :MacOS Support:Libraries:MacOS 68K:MacOS.lib MacOS PathRelative CodeWarrior : :MacOS Support:Libraries:Runtime:Runtime 68K:Libs:MSL Runtime68K.Lib MacOS PathRelative CodeWarrior : :MacOS Support:Libraries:MacOS 68K:MathLib68K:MathLib68K (Model Near):MathLib68K (2i).Lib MacOS PathRelative CodeWarrior : :MSL:MSL_C:MSL_MacOS:Lib:68K:MSL C.68K (2i).Lib MacOS PathRelative CodeWarrior : :MSL:MSL_C++:MSL_MacOS:Lib:68K:MSL C++.68K (2i).Lib MacOS First Segment Preloaded, Protected, Locked PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:Classic68kLibraries:Navigation.o MacOS PathRelative CodeWarrior : :MacOS Support:Libraries:MacOS 68K:MacOS.lib MacOS PathRelative CodeWarrior : :MacOS Support:Libraries:Runtime:Runtime 68K:Libs:MSL Runtime68K.Lib MacOS PathRelative CodeWarrior : :MacOS Support:Libraries:MacOS 68K:MathLib68K:MathLib68K (Model Near):MathLib68K (2i).Lib MacOS PathRelative CodeWarrior : :MSL:MSL_C:MSL_MacOS:Lib:68K:MSL C.68K (2i).Lib MacOS PathRelative CodeWarrior : :MSL:MSL_C++:MSL_MacOS:Lib:68K:MSL C++.68K (2i).Lib MacOS Hex Editor (Carbon) UserSourceTrees AlwaysSearchUserPathsfalse InterpretDOSAndUnixPathsfalse RequireFrameworkStyleIncludesfalse UserSearchPaths SearchPath Path PathFormatUnix PathRootProject Recursivetrue FrameworkPathfalse HostFlagsAll SystemSearchPaths SearchPath PathMacOS Support PathFormatUnix PathRootCodeWarrior Recursivetrue FrameworkPathfalse HostFlagsAll SearchPath PathMSL PathFormatUnix PathRootCodeWarrior Recursivetrue FrameworkPathfalse HostFlagsAll MWRuntimeSettings_WorkingDirectory MWRuntimeSettings_CommandLine MWRuntimeSettings_HostApplication Pathbuild/ResKnife Carbon (PEF) PathFormatUnix PathRootProject MWRuntimeSettings_EnvVars LinkerMacOS PPC Linker PreLinker PostLinker TargetnameHex Editor (Carbon) OutputDirectory Path:build:Editors: PathFormatMacOS PathRootProject SaveEntriesUsingRelativePathsfalse FileMappings FileTypeAPPL FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeAppl FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeMMLB FileExtension CompilerLib Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeMPLF FileExtension CompilerLib Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeMWCD FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeRSRC FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeTEXT FileExtension.arr Compiler EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.bh CompilerBalloon Help EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.c CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.c++ CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cc CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cp CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cpp CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.exp Compiler EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.h CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMaketrue FileTypeTEXT FileExtension.pch CompilerMW C/C++ PPC EditLanguageC/C++ Precompiletrue Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.pch++ CompilerMW C/C++ PPC EditLanguageC/C++ Precompiletrue Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.plist Compiler EditLanguage Precompilefalse Launchabletrue ResourceFilefalse IgnoredByMaketrue FileTypeTEXT FileExtension.r CompilerRez EditLanguageRez Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.s CompilerPPCAsm EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeXCOF FileExtension CompilerXCOFF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypedocu FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypersrc FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeshlb FileExtension CompilerPEF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypestub FileExtension CompilerPEF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileExtension.doc Compiler EditLanguage Precompilefalse Launchabletrue ResourceFilefalse IgnoredByMaketrue FileExtension.o CompilerXCOFF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileExtension.ppob Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileExtension.rsrc Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse CacheModDatestrue DumpBrowserInfofalse CacheSubprojectstrue UseThirdPartyDebuggerfalse BrowserGenerator1 DebuggerAppPath Path PathFormatGeneric PathRootAbsolute DebuggerCmdLineArgs DebuggerWorkingDir Path PathFormatGeneric PathRootAbsolute CodeCompletionPrefixFileNameMacHeaders.c CodeCompletionMacroFileNameMacOS_Carbon_C++_Macros.h ConsoleEncoding0 LogSystemMessagestrue AutoTargetDLLsfalse StopAtWatchpointstrue PauseWhileRunningfalse PauseInterval5 PauseUIFlags0 AltExePath Path PathFormatGeneric PathRootAbsolute StopAtTempBPOnLaunchfalse CacheSymbolicstrue TempBPFunctionNamemain TempBPType0 Enabledfalse ConnectionName DownloadPath LaunchRemoteAppfalse RemoteAppPath CoreID0 JTAGClockSpeed8000 IsMultiCorefalse OSDownloadfalse UseGlobalOSDownloadfalse OSDownloadConnectionName OSDownloadPath AltDownloadfalse AltDownloadConnectionName OtherExecutables ExecutablePath Path:build:ResKnife (CarbonLib) PathFormatMacOS PathRootProject RemoteDownloadfalse Debugtrue RemotePath Mergedfalse OriginalPath Path PathFormatMacOS PathRootAbsolute CustomColor1 Red0 Green32767 Blue0 CustomColor2 Red0 Green32767 Blue0 CustomColor3 Red0 Green32767 Blue0 CustomColor4 Red0 Green32767 Blue0 MWFrontEnd_C_cplusplus0 MWFrontEnd_C_checkprotos0 MWFrontEnd_C_arm0 MWFrontEnd_C_trigraphs0 MWFrontEnd_C_onlystdkeywords0 MWFrontEnd_C_enumsalwaysint0 MWFrontEnd_C_mpwpointerstyle0 MWFrontEnd_C_prefixname MWFrontEnd_C_ansistrict0 MWFrontEnd_C_mpwcnewline0 MWFrontEnd_C_wchar_type1 MWFrontEnd_C_enableexceptions1 MWFrontEnd_C_dontreusestrings0 MWFrontEnd_C_poolstrings0 MWFrontEnd_C_dontinline0 MWFrontEnd_C_useRTTI1 MWFrontEnd_C_multibyteaware0 MWFrontEnd_C_unsignedchars0 MWFrontEnd_C_autoinline0 MWFrontEnd_C_booltruefalse1 MWFrontEnd_C_inlinelevel0 MWFrontEnd_C_ecplusplus0 MWFrontEnd_C_objective_c0 MWFrontEnd_C_defer_codegen0 MWFrontEnd_C_templateparser0 MWFrontEnd_C_c991 MWFrontEnd_C_bottomupinline1 MWWarning_C_warn_illpragma1 MWWarning_C_warn_emptydecl1 MWWarning_C_warn_possunwant1 MWWarning_C_warn_unusedvar1 MWWarning_C_warn_unusedarg1 MWWarning_C_warn_extracomma1 MWWarning_C_pedantic1 MWWarning_C_warningerrors0 MWWarning_C_warn_hidevirtual1 MWWarning_C_warn_implicitconv0 MWWarning_C_warn_notinlined1 MWWarning_C_warn_structclass1 MWFTP_Post_hostName MWFTP_Post_username MWFTP_Post_password0ÿà(l"¨T MWFTP_Post_remoteDir MWFTP_Post_ftp_PathVersion0 MWFTP_Post_ftp_PathType0 MWFTP_Post_ftp_PathFormat0 MWFTP_Post_ftp_tree MWFTP_Post_uploadDir MWFTP_Post_ftp_port21 MWFTP_Post_SendBin1 MWFTP_Post_ShouldLog1 MWCommandLine_Java_clsName MWCommandLine_Java_args MWVJavaDebugging_Protocol1 MWVJavaDebugging_JDKVersion1 MWVJavaDebugging_TimeOut10 MWVJavaDebugging_SupportSlowDevicesfalse MWVJavaDebugging_UseRemoteLaunchAgentfalse MWVJavaDebugging_LaunchVMasServerfalse MWJava_Language_optimizefalse MWJava_Language_warnDeprecatedfalse MWJava_Language_emitMapfalse MWJava_Language_strictFileNamesfalse MWJava_Language_strictFileHierarchyfalse MWJava_Language_1_1_Compatiblefalse MWJava_Language_emitHeaders0 MWJava_Language_headerTypeJNINativeHeaders MWJava_Language_packageFilter MWJava_Language_genCommentstrue MWJava_Language_genHeadersfalse MWJava_Language_enableAssertsfalse MWJava_Language_targetVM1.1 Manifest-JAD Attributes AttributeMain-Class ValueAuto-Generated MWJava_MRJAppBuilder_outFileMRJApplication MWJava_MRJAppBuilder_mergefalse MWJava_MRJAppBuilder_quitMenutrue MWJava_MRJAppBuilder_growfalse MWJava_MRJAppBuilder_stdoutTypeConsole MWJava_MRJAppBuilder_stderrTypeConsole MWJava_MRJAppBuilder_stdinTypeConsole MWJava_MRJAppBuilder_appIconPVersion0 MWJava_MRJAppBuilder_appIconPType0 MWJava_MRJAppBuilder_appIconPFormat0 MWJava_MRJAppBuilder_appIconPTree MWJava_MRJAppBuilder_appIconFile MWJava_MRJAppBuilder_splashScreenPVersion0 MWJava_MRJAppBuilder_splashScreenPType0 MWJava_MRJAppBuilder_splashScreenPFormat0 MWJava_MRJAppBuilder_splashScreenPTree MWJava_MRJAppBuilder_splashScreenPICTFile MWJava_MRJAppBuilder_aboutName MWJava_MRJAppBuilder_stdoutPVersion0 MWJava_MRJAppBuilder_stdoutPType0 MWJava_MRJAppBuilder_stdoutPFormat0 MWJava_MRJAppBuilder_stdoutPTree MWJava_MRJAppBuilder_stdoutFile MWJava_MRJAppBuilder_stdoutAppendfalse MWJava_MRJAppBuilder_stderrPType0 MWJava_MRJAppBuilder_stderrPFormat0 MWJava_MRJAppBuilder_stderrPTree MWJava_MRJAppBuilder_stderrFile MWJava_MRJAppBuilder_stderrAppendfalse MWJava_MRJAppBuilder_stdinPType0 MWJava_MRJAppBuilder_stdinPFormat0 MWJava_MRJAppBuilder_stdinPTree MWJava_MRJAppBuilder_stdinFile MWJava_Output_outputtypeJarFile MWJava_Output_outfileJavaClasses.jar MWJava_Output_ftype1514754080 MWJava_Output_fcreator1297570384 MWJava_Output_compress0 MWJava_Output_genManifest0 MWJava_Output_trunctypeFront MWJava_Output_deleteClasses0 MWJava_Output_consoleApp1 MWJava_Output_preverify0 MWJava_Output_genJad0 MWJava_Output_obfuscate0 MWJava_Proj_projtypeApplet MWJava_Proj_mainClassName MWJava_Proj_HTMLAppCreator1463898714 MWJava_Proj_HTMLAppName MWJava_Proj_PathVersion1 MWJava_Proj_PathType0 MWJava_Proj_PathFormat0 MWJava_Proj_tree MWJava_Proj_HTMLAppWin32Name MWJava_Proj_compress0 MWJava_Proj_simulator0 MWJava_Proj_useVM\000\000macosx MWJava_Proj_vmarguments MWJava_Proj_vmName MWJava_Proj_simPropFile MWJavaDoc_Proj_Version1 MWJavaDoc_Proj_Deprecated1 MWJavaDoc_Proj_Author1 MWJavaDoc_Proj_Index1 MWJavaDoc_Proj_Tree1 MWJavaDoc_Proj_SunResolveToSame0 MWJavaDoc_Proj_Shortnames1 MWJavaDoc_Proj_Folder0 MWJavaDoc_Proj_GenerateAPILinks0 MWJavaDoc_Proj_scopePublic MWJavaDoc_Proj_fcreator1297303877 MWJavaDoc_Proj_encodingName MWJavaDoc_Proj_decodingName MWJavaDoc_Proj_javaPackagePathhttp://java.sun.com/products/jdk/1.1/docs/api/ MWMerge_MacOS_projectTypeApplication MWMerge_MacOS_outputNameMerge Out MWMerge_MacOS_outputCreator???? MWMerge_MacOS_outputTypeAPPL MWMerge_MacOS_suppressWarning0 MWMerge_MacOS_copyFragments1 MWMerge_MacOS_copyResources1 MWMerge_MacOS_flattenResource0 MWMerge_MacOS_flatFileNamea.rsrc MWMerge_MacOS_flatFileOutputPath Path: PathFormatMacOS PathRootProject MWMerge_MacOS_skipResources DLGX ckid Proj WSPC mcvs FileLockedfalse ResourcesMapIsReadOnlyfalse PrinterDriverIsMultiFinderCompatiblefalse Invisiblefalse HasBundlefalse NameLockedfalse Stationeryfalse HasCustomIconfalse Sharedfalse HasBeenInitedfalse Label0 Comments MWMacOSPackager_UsePackager0 MWMacOSPackager_FolderToPackage Path PathFormatMacOS PathRootAbsolute MWMacOSPackager_CreateClassicAlias0 MWMacOSPackager_ClassicAliasMethodUseTargetOutput MWMacOSPackager_ClassicAliasPath Path PathFormatMacOS PathRootAbsolute MWMacOSPackager_CreatePkgInfo0 MWMacOSPackager_PkgCreatorType???? MWMacOSPackager_PkgFileTypeAPPL MWCodeGen_PPC_structalignmentPPC_mw MWCodeGen_PPC_tracebacktablesInline MWCodeGen_PPC_processorGeneric MWCodeGen_PPC_function_align4 MWCodeGen_PPC_tocdata1 MWCodeGen_PPC_largetoc0 MWCodeGen_PPC_profiler0 MWCodeGen_PPC_vectortocdata1 MWCodeGen_PPC_poolconst0 MWCodeGen_PPC_peephole1 MWCodeGen_PPC_readonlystrings0 MWCodeGen_PPC_linkerpoolsstrings0 MWCodeGen_PPC_volatileasm0 MWCodeGen_PPC_schedule0 MWCodeGen_PPC_altivec0 MWCodeGen_PPC_altivec_move_block0 MWCodeGen_PPC_strictIEEEfp0 MWCodeGen_PPC_fpcontract1 MWCodeGen_PPC_genfsel0 MWCodeGen_PPC_orderedfpcmp0 MWCodeGen_MachO_structalignmentPPC_mw MWCodeGen_MachO_profiler_enumOff MWCodeGen_MachO_processorGeneric MWCodeGen_MachO_function_align4 MWCodeGen_MachO_common0 MWCodeGen_MachO_peephole1 MWCodeGen_MachO_readonlystrings0 MWCodeGen_MachO_linkerpoolsstrings1 MWCodeGen_MachO_volatileasm0 MWCodeGen_MachO_schedule0 MWCodeGen_MachO_altivec0 MWCodeGen_MachO_vecmove0 MWCodeGen_MachO_fp_ieee_strict0 MWCodeGen_MachO_fpcontract1 MWCodeGen_MachO_genfsel0 MWCodeGen_MachO_fp_cmps_ordered0 MWDisassembler_PPC_showcode1 MWDisassembler_PPC_extended1 MWDisassembler_PPC_mix0 MWDisassembler_PPC_nohex0 MWDisassembler_PPC_showdata1 MWDisassembler_PPC_showexceptions1 MWDisassembler_PPC_showsym0 MWDisassembler_PPC_shownames1 GlobalOptimizer_PPC_optimizationlevelLevel0 GlobalOptimizer_PPC_optforSpeed MWLinker_PPC_linksym1 MWLinker_PPC_symfullpath1 MWLinker_PPC_linkmap0 MWLinker_PPC_nolinkwarnings0 MWLinker_PPC_dontdeadstripinitcode0 MWLinker_PPC_permitmultdefs0 MWLinker_PPC_linkmodeFast MWLinker_PPC_initname MWLinker_PPC_mainname MWLinker_PPC_termname MWLinker_MacOSX_linksym0 MWLinker_MacOSX_symfullpath0 MWLinker_MacOSX_nolinkwarnings0 MWLinker_MacOSX_linkmap0 MWLinker_MacOSX_dontdeadstripinitcode0 MWLinker_MacOSX_permitmultdefs1 MWLinker_MacOSX_use_objectivec_semantics0 MWLinker_MacOSX_strip_debug_symbols0 MWLinker_MacOSX_split_segs0 MWLinker_MacOSX_report_msl_overloads0 MWLinker_MacOSX_objects_follow_linkorder0 MWLinker_MacOSX_linkmodeFast MWLinker_MacOSX_exportsReferencedGlobals MWLinker_MacOSX_sortcodeNone MWLinker_MacOSX_mainname MWProject_MacOSX_typeExecutable MWProject_MacOSX_outfile MWProject_MacOSX_filecreator???? MWProject_MacOSX_filetypeMEXE MWProject_MacOSX_vmaddress4096 MWProject_MacOSX_usedefaultvmaddr1 MWProject_MacOSX_flatrsrc0 MWProject_MacOSX_flatrsrcfilename MWProject_MacOSX_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_MacOSX_installpath./ MWProject_MacOSX_dont_prebind0 MWProject_MacOSX_flat_namespace0 MWProject_MacOSX_frameworkversionA MWProject_MacOSX_currentversion0 MWProject_MacOSX_flat_oldimpversion0 MWLinker_MachO_exportsNone MWLinker_MachO_mainname MWLinker_MachO_currentversion0 MWLinker_MachO_compatibleversion0 MWLinker_MachO_symfullpath0 MWLinker_MachO_supresswarnings0 MWLinker_MachO_multisymerror0 MWLinker_MachO_prebind1 MWLinker_MachO_deadstrip1 MWLinker_MachO_objectivecsemantics0 MWLinker_MachO_whichfileloaded0 MWLinker_MachO_whyfileloaded0 MWLinker_MachO_readonlyrelocsErrors MWLinker_MachO_undefinedsymbolsErrors MWLinker_MachO_twolevelnamespace1 MWLinker_MachO_stripdebugsymbols0 MWProject_MachO_typeExecutable MWProject_MachO_outfilea.exe MWProject_MachO_filecreator???? MWProject_MachO_filetypeMEXE MWProject_MachO_vmaddress4096 MWProject_MachO_flatrsrc1 MWProject_MachO_flatrsrcfilenamea.rsrc MWProject_MachO_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_MachO_installpath./ MWProject_MachO_frameworkversion MWPEF_exportsPragma MWPEF_libfolder0 MWPEF_sortcodeNone MWPEF_expandbss0 MWPEF_sharedata0 MWPEF_olddefversion0 MWPEF_oldimpversion0 MWPEF_currentversion0 MWPEF_fragmentnameHex Editor MWPEF_collapsereloads0 MWProject_PPC_typeLibrary MWProject_PPC_outfileHex Editor MWProject_PPC_filecreator???? MWProject_PPC_filetype???? MWProject_PPC_size0 MWProject_PPC_minsize0 MWProject_PPC_stacksize0 MWProject_PPC_flags0 MWProject_PPC_symfilename MWProject_PPC_rsrcname MWProject_PPC_rsrcheaderNative MWProject_PPC_rsrctype???? MWProject_PPC_rsrcid0 MWProject_PPC_rsrcflags0 MWProject_PPC_rsrcstore0 MWProject_PPC_rsrcmerge0 MWProject_PPC_flatrsrc0 MWProject_PPC_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_PPC_flatrsrcfilename MWAssembler_PPC_auxheader0 MWAssembler_PPC_symmodeMac MWAssembler_PPC_dialectPPC MWAssembler_PPC_prefixfile MWAssembler_PPC_typecheck0 MWAssembler_PPC_warnings0 MWAssembler_PPC_casesensitive0 PList_OutputTypeResource PList_OutputEncodingUTF-8 PList_Prefix PList_FileFilenameInfo.plist PList_FileDirectory Path: PathFormatMacOS PathRootProject PList_ResourceTypeplst PList_ResourceID0 PList_ResourceNameProperty List MWRez_Language_maxwidth80 MWRez_Language_scriptRoman MWRez_Language_alignmentAlign1 MWRez_Language_filtermodeFilterSkip MWRez_Language_suppresswarnings0 MWRez_Language_escapecontrolchars1 MWRez_Language_prefixname MWRez_Language_filteredtypes'CODE' 'DATA' 'PICT' MWWinRC_prefixname MWCodeGen_X86_processorGeneric MWCodeGen_X86_alignmentbytes8 MWCodeGen_X86_exceptionsZeroOverhead MWCodeGen_X86_name_manglingMWWin32 MWCodeGen_X86_use_extinst0 MWCodeGen_X86_extinst_mmx0 MWCodeGen_X86_extinst_3dnow0 MWCodeGen_X86_use_mmx_3dnow_convention0 MWCodeGen_X86_extinst_cmov0 MWCodeGen_X86_extinst_sse0 MWCodeGen_X86_extinst_sse20 MWCodeGen_X86_intrinsics0 MWCodeGen_X86_optimizeasm0 MWCodeGen_X86_disableopts0 MWCodeGen_X86_profile0 MWLinker_X86_runtimeCustom MWCodeGen_X86_readonlystrings0 MWLinker_X86_subsysmajorid4 MWLinker_X86_subsysminorid0 MWCOFF_X86_opsysmajorid4 MWCOFF_X86_opsysminorid0 MWLinker_X86_usrmajorid0 MWLinker_X86_usrminorid0 MWProject_X86_maxstacksize1024 MWProject_X86_minstacksize4 MWProject_X86_size1024 MWProject_X86_minsize4 MWCOFF_X86_coff_flags0 MWCOFF_X86_dll_flags0 MWProject_X86_baseaddress4194304 MWCOFF_X86_filealign512 MWCOFF_X86_sectionalign4096 PDisasmX86_showHeaderstrue PDisasmX86_showSectHeaderstrue PDisasmX86_showSymTabtrue PDisasmX86_showCodetrue PDisasmX86_showDatatrue PDisasmX86_showDebugfalse PDisasmX86_showExceptionsfalse PDisasmX86_showRawfalse PDisasmX86_showAllRawfalse PDisasmX86_showSourcefalse PDisasmX86_showRelocationtrue PDisasmX86_showHextrue PDisasmX86_showCommentsfalse PDisasmX86_showSymDefstrue PDisasmX86_unmanglefalse PDisasmX86_verbosefalse PDisasmX86_resolveRelocstrue PDisasmX86_resolveLocalsfalse MWDebugger_X86_Exceptions 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GlobalOptimizer_X86_optimizationlevelLevel0 GlobalOptimizer_X86_optforSpeed MWLinker_X86_entrypointusageDefault MWLinker_X86_entrypoint MWLinker_X86_subsystemWinGUI MWLinker_X86_commandfile MWLinker_X86_generatemap0 MWLinker_X86_linksym0 MWLinker_X86_linkCV1 MWLinker_X86_symfullpathfalse MWLinker_X86_linkdebugtrue MWLinker_X86_checksumfalse MWLinker_X86_zero_init_bssfalse MWLinker_X86_mergedatafalse MWLinker_X86_usedefaultlibsfalse MWLinker_X86_adddefaultlibsfalse MWLinker_X86_nowarningsfalse MWLinker_X86_verbosefalse MWProject_X86_typeApplication MWProject_X86_outfilenoname.exe MWProject_X86_importlib MWProject_X86_setimportlibdirfalse MWProject_X86_dontgenerateimportlibfalse MWProject_X86_oldformatlibfalse MWProject_X86_replaceobjextensionfalse MWProject_X86_copyallfilesfalse Name Events.cpp MacOS Text Debug Name Events.h MacOS Text Name Hex Editor.h MacOS Text Name HexWindow.cpp MacOS Text Debug Name HexWindow.h MacOS Text Name Initalisation.cpp MacOS Text Debug Name Initalisation.h MacOS Text Name ResKnifeLib MacOS Library Debug Name CarbonLib Unix Library Debug Name MSL_All_Carbon.Lib Unix Library Debug Name HexUtility.cpp Unix Text Debug Name HexUtility.h Unix Text Name ResKnifeLib MacOS Name Hex Editor.h MacOS Name Events.h MacOS Name HexWindow.h MacOS Name Initalisation.h MacOS Name Events.cpp MacOS Name HexWindow.cpp MacOS Name Initalisation.cpp MacOS Name CarbonLib Unix Name MSL_All_Carbon.Lib Unix Name HexUtility.cpp Unix Name HexUtility.h Unix Template Editor (Carbon) UserSourceTrees AlwaysSearchUserPathsfalse InterpretDOSAndUnixPathsfalse RequireFrameworkStyleIncludesfalse UserSearchPaths SearchPath Path: PathFormatMacOS PathRootProject Recursivetrue FrameworkPathfalse HostFlagsAll SystemSearchPaths SearchPath PathMacOS Support PathFormatUnix PathRootCodeWarrior Recursivetrue FrameworkPathfalse HostFlagsAll SearchPath PathMSL PathFormatUnix PathRootCodeWarrior Recursivetrue FrameworkPathfalse HostFlagsAll MWRuntimeSettings_WorkingDirectory MWRuntimeSettings_CommandLine MWRuntimeSettings_HostApplication Pathbuild/ResKnife Carbon (PEF) PathFormatUnix PathRootProject MWRuntimeSettings_EnvVars LinkerMacOS PPC Linker PreLinker PostLinker TargetnameTemplate Editor (Carbon) OutputDirectory Path:build:Editors: PathFormatMacOS PathRootProject SaveEntriesUsingRelativePathsfalse FileMappings FileTypeAPPL FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeAppl FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeMMLB FileExtension CompilerLib Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeMPLF FileExtension CompilerLib Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeMWCD FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeRSRC FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeTEXT FileExtension.arr Compiler EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.bh CompilerBalloon Help EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.c CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.c++ CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cc CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cp CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cpp CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.exp Compiler EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.h CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMaketrue FileTypeTEXT FileExtension.pch CompilerMW C/C++ PPC EditLanguageC/C++ Precompiletrue Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.pch++ CompilerMW C/C++ PPC EditLanguageC/C++ Precompiletrue Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.plist Compiler EditLanguage Precompilefalse Launchabletrue ResourceFilefalse IgnoredByMaketrue FileTypeTEXT FileExtension.r CompilerRez EditLanguageRez Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.s CompilerPPCAsm EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeXCOF FileExtension CompilerXCOFF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypedocu FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypersrc FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeshlb FileExtension CompilerPEF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypestub FileExtension CompilerPEF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileExtension.doc Compiler EditLanguage Precompilefalse Launchabletrue ResourceFilefalse IgnoredByMaketrue FileExtension.o CompilerXCOFF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileExtension.ppob Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileExtension.rsrc Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse CacheModDatestrue DumpBrowserInfofalse CacheSubprojectstrue UseThirdPartyDebuggerfalse BrowserGenerator1 DebuggerAppPath Path PathFormatGeneric PathRootAbsolute DebuggerCmdLineArgs DebuggerWorkingDir Path PathFormatGeneric PathRootAbsolute CodeCompletionPrefixFileNameMacHeaders.c CodeCompletionMacroFileNameMacOS_Carbon_C++_Macros.h ConsoleEncoding0 LogSystemMessagestrue AutoTargetDLLsfalse StopAtWatchpointstrue PauseWhileRunningfalse PauseInterval5 PauseUIFlags0 AltExePath Path PathFormatGeneric PathRootAbsolute StopAtTempBPOnLaunchfalse CacheSymbolicstrue TempBPFunctionNamemain TempBPType0 Enabledfalse ConnectionName DownloadPath LaunchRemoteAppfalse RemoteAppPath CoreID0 JTAGClockSpeed8000 IsMultiCorefalse OSDownloadfalse UseGlobalOSDownloadfalse OSDownloadConnectionName OSDownloadPath AltDownloadfalse AltDownloadConnectionName OtherExecutables ExecutablePath Path:build:ResKnife (CarbonLib) PathFormatMacOS PathRootProject RemoteDownloadfalse Debugtrue RemotePath Mergedfalse OriginalPath Path PathFormatMacOS PathRootAbsolute CustomColor1 Red0 Green32767 Blue0 CustomColor2 Red0 Green32767 Blue0 CustomColor3 Red0 Green32767 Blue0 CustomColor4 Red0 Green32767 Blue0 MWFrontEnd_C_cplusplus0 MWFrontEnd_C_checkprotos0 MWFrontEnd_C_arm0 MWFrontEnd_C_trigraphs0 MWFrontEnd_C_onlystdkeywords0 MWFrontEnd_C_enumsalwaysint0 MWFrontEnd_C_mpwpointerstyle0 MWFrontEnd_C_prefixname MWFrontEnd_C_ansistrict0 MWFrontEnd_C_mpwcnewline0 MWFrontEnd_C_wchar_type1 MWFrontEnd_C_enableexceptions1 MWFrontEnd_C_dontreusestrings0 MWFrontEnd_C_poolstrings0 MWFrontEnd_C_dontinline0 MWFrontEnd_C_useRTTI1 MWFrontEnd_C_multibyteaware0 MWFrontEnd_C_unsignedchars0 MWFrontEnd_C_autoinline0 MWFrontEnd_C_booltruefalse1 MWFrontEnd_C_inlinelevel0 MWFrontEnd_C_ecplusplus0 MWFrontEnd_C_objective_c0 MWFrontEnd_C_defer_codegen0 MWFrontEnd_C_templateparser0 MWFrontEnd_C_c991 MWFrontEnd_C_bottomupinline1 MWWarning_C_warn_illpragma1 MWWarning_C_warn_emptydecl1 MWWarning_C_warn_possunwant1 MWWarning_C_warn_unusedvar1 MWWarning_C_warn_unusedarg1 MWWarning_C_warn_extracomma1 MWWarning_C_pedantic1 MWWarning_C_warningerrors0 MWWarning_C_warn_hidevirtual1 MWWarning_C_warn_implicitconv0 MWWarning_C_warn_notinlined1 MWWarning_C_warn_structclass1 MWFTP_Post_hostName MWFTP_Post_username MWFTP_Post_password0ÿà(l"¨T MWFTP_Post_remoteDir MWFTP_Post_ftp_PathVersion0 MWFTP_Post_ftp_PathType0 MWFTP_Post_ftp_PathFormat0 MWFTP_Post_ftp_tree MWFTP_Post_uploadDir MWFTP_Post_ftp_port21 MWFTP_Post_SendBin1 MWFTP_Post_ShouldLog1 MWCommandLine_Java_clsName MWCommandLine_Java_args MWVJavaDebugging_Protocol1 MWVJavaDebugging_JDKVersion1 MWVJavaDebugging_TimeOut10 MWVJavaDebugging_SupportSlowDevicesfalse MWVJavaDebugging_UseRemoteLaunchAgentfalse MWVJavaDebugging_LaunchVMasServerfalse MWJava_Language_optimizefalse MWJava_Language_warnDeprecatedfalse MWJava_Language_emitMapfalse MWJava_Language_strictFileNamesfalse MWJava_Language_strictFileHierarchyfalse MWJava_Language_1_1_Compatiblefalse MWJava_Language_emitHeaders0 MWJava_Language_headerTypeJNINativeHeaders MWJava_Language_packageFilter MWJava_Language_genCommentstrue MWJava_Language_genHeadersfalse MWJava_Language_enableAssertsfalse MWJava_Language_targetVM1.1 Manifest-JAD Attributes AttributeMain-Class ValueAuto-Generated MWJava_MRJAppBuilder_outFileMRJApplication MWJava_MRJAppBuilder_mergefalse MWJava_MRJAppBuilder_quitMenutrue MWJava_MRJAppBuilder_growfalse MWJava_MRJAppBuilder_stdoutTypeConsole MWJava_MRJAppBuilder_stderrTypeConsole MWJava_MRJAppBuilder_stdinTypeConsole MWJava_MRJAppBuilder_appIconPVersion0 MWJava_MRJAppBuilder_appIconPType0 MWJava_MRJAppBuilder_appIconPFormat0 MWJava_MRJAppBuilder_appIconPTree MWJava_MRJAppBuilder_appIconFile MWJava_MRJAppBuilder_splashScreenPVersion0 MWJava_MRJAppBuilder_splashScreenPType0 MWJava_MRJAppBuilder_splashScreenPFormat0 MWJava_MRJAppBuilder_splashScreenPTree MWJava_MRJAppBuilder_splashScreenPICTFile MWJava_MRJAppBuilder_aboutName MWJava_MRJAppBuilder_stdoutPVersion0 MWJava_MRJAppBuilder_stdoutPType0 MWJava_MRJAppBuilder_stdoutPFormat0 MWJava_MRJAppBuilder_stdoutPTree MWJava_MRJAppBuilder_stdoutFile MWJava_MRJAppBuilder_stdoutAppendfalse MWJava_MRJAppBuilder_stderrPType0 MWJava_MRJAppBuilder_stderrPFormat0 MWJava_MRJAppBuilder_stderrPTree MWJava_MRJAppBuilder_stderrFile MWJava_MRJAppBuilder_stderrAppendfalse MWJava_MRJAppBuilder_stdinPType0 MWJava_MRJAppBuilder_stdinPFormat0 MWJava_MRJAppBuilder_stdinPTree MWJava_MRJAppBuilder_stdinFile MWJava_Output_outputtypeJarFile MWJava_Output_outfileJavaClasses.jar MWJava_Output_ftype1514754080 MWJava_Output_fcreator1297570384 MWJava_Output_compress0 MWJava_Output_genManifest0 MWJava_Output_trunctypeFront MWJava_Output_deleteClasses0 MWJava_Output_consoleApp1 MWJava_Output_preverify0 MWJava_Output_genJad0 MWJava_Output_obfuscate0 MWJava_Proj_projtypeApplet MWJava_Proj_mainClassName MWJava_Proj_HTMLAppCreator1463898714 MWJava_Proj_HTMLAppName MWJava_Proj_PathVersion1 MWJava_Proj_PathType0 MWJava_Proj_PathFormat0 MWJava_Proj_tree MWJava_Proj_HTMLAppWin32Name MWJava_Proj_compress0 MWJava_Proj_simulator0 MWJava_Proj_useVM\000\000macosx MWJava_Proj_vmarguments MWJava_Proj_vmName MWJava_Proj_simPropFile MWJavaDoc_Proj_Version1 MWJavaDoc_Proj_Deprecated1 MWJavaDoc_Proj_Author1 MWJavaDoc_Proj_Index1 MWJavaDoc_Proj_Tree1 MWJavaDoc_Proj_SunResolveToSame0 MWJavaDoc_Proj_Shortnames1 MWJavaDoc_Proj_Folder0 MWJavaDoc_Proj_GenerateAPILinks0 MWJavaDoc_Proj_scopePublic MWJavaDoc_Proj_fcreator1297303877 MWJavaDoc_Proj_encodingName MWJavaDoc_Proj_decodingName MWJavaDoc_Proj_javaPackagePathhttp://java.sun.com/products/jdk/1.1/docs/api/ MWMerge_MacOS_projectTypeApplication MWMerge_MacOS_outputNameMerge Out MWMerge_MacOS_outputCreator???? MWMerge_MacOS_outputTypeAPPL MWMerge_MacOS_suppressWarning0 MWMerge_MacOS_copyFragments1 MWMerge_MacOS_copyResources1 MWMerge_MacOS_flattenResource0 MWMerge_MacOS_flatFileNamea.rsrc MWMerge_MacOS_flatFileOutputPath Path: PathFormatMacOS PathRootProject MWMerge_MacOS_skipResources DLGX ckid Proj WSPC mcvs FileLockedfalse ResourcesMapIsReadOnlyfalse PrinterDriverIsMultiFinderCompatiblefalse Invisiblefalse HasBundlefalse NameLockedfalse Stationeryfalse HasCustomIconfalse Sharedfalse HasBeenInitedfalse Label0 Comments MWMacOSPackager_UsePackager0 MWMacOSPackager_FolderToPackage Path PathFormatMacOS PathRootAbsolute MWMacOSPackager_CreateClassicAlias0 MWMacOSPackager_ClassicAliasMethodUseTargetOutput MWMacOSPackager_ClassicAliasPath Path PathFormatMacOS PathRootAbsolute MWMacOSPackager_CreatePkgInfo0 MWMacOSPackager_PkgCreatorType???? MWMacOSPackager_PkgFileTypeAPPL MWCodeGen_PPC_structalignmentPPC_mw MWCodeGen_PPC_tracebacktablesInline MWCodeGen_PPC_processorGeneric MWCodeGen_PPC_function_align4 MWCodeGen_PPC_tocdata1 MWCodeGen_PPC_largetoc0 MWCodeGen_PPC_profiler0 MWCodeGen_PPC_vectortocdata1 MWCodeGen_PPC_poolconst0 MWCodeGen_PPC_peephole1 MWCodeGen_PPC_readonlystrings0 MWCodeGen_PPC_linkerpoolsstrings0 MWCodeGen_PPC_volatileasm0 MWCodeGen_PPC_schedule0 MWCodeGen_PPC_altivec0 MWCodeGen_PPC_altivec_move_block0 MWCodeGen_PPC_strictIEEEfp0 MWCodeGen_PPC_fpcontract1 MWCodeGen_PPC_genfsel0 MWCodeGen_PPC_orderedfpcmp0 MWCodeGen_MachO_structalignmentPPC_mw MWCodeGen_MachO_profiler_enumOff MWCodeGen_MachO_processorGeneric MWCodeGen_MachO_function_align4 MWCodeGen_MachO_common0 MWCodeGen_MachO_peephole1 MWCodeGen_MachO_readonlystrings0 MWCodeGen_MachO_linkerpoolsstrings1 MWCodeGen_MachO_volatileasm0 MWCodeGen_MachO_schedule0 MWCodeGen_MachO_altivec0 MWCodeGen_MachO_vecmove0 MWCodeGen_MachO_fp_ieee_strict0 MWCodeGen_MachO_fpcontract1 MWCodeGen_MachO_genfsel0 MWCodeGen_MachO_fp_cmps_ordered0 MWDisassembler_PPC_showcode1 MWDisassembler_PPC_extended1 MWDisassembler_PPC_mix0 MWDisassembler_PPC_nohex0 MWDisassembler_PPC_showdata1 MWDisassembler_PPC_showexceptions1 MWDisassembler_PPC_showsym0 MWDisassembler_PPC_shownames1 GlobalOptimizer_PPC_optimizationlevelLevel0 GlobalOptimizer_PPC_optforSpeed MWLinker_PPC_linksym1 MWLinker_PPC_symfullpath1 MWLinker_PPC_linkmap0 MWLinker_PPC_nolinkwarnings0 MWLinker_PPC_dontdeadstripinitcode0 MWLinker_PPC_permitmultdefs0 MWLinker_PPC_linkmodeFast MWLinker_PPC_initname MWLinker_PPC_mainname MWLinker_PPC_termname MWLinker_MacOSX_linksym0 MWLinker_MacOSX_symfullpath0 MWLinker_MacOSX_nolinkwarnings0 MWLinker_MacOSX_linkmap0 MWLinker_MacOSX_dontdeadstripinitcode0 MWLinker_MacOSX_permitmultdefs1 MWLinker_MacOSX_use_objectivec_semantics0 MWLinker_MacOSX_strip_debug_symbols0 MWLinker_MacOSX_split_segs0 MWLinker_MacOSX_report_msl_overloads0 MWLinker_MacOSX_objects_follow_linkorder0 MWLinker_MacOSX_linkmodeFast MWLinker_MacOSX_exportsReferencedGlobals MWLinker_MacOSX_sortcodeNone MWLinker_MacOSX_mainname MWProject_MacOSX_typeExecutable MWProject_MacOSX_outfile MWProject_MacOSX_filecreator???? MWProject_MacOSX_filetypeMEXE MWProject_MacOSX_vmaddress4096 MWProject_MacOSX_usedefaultvmaddr1 MWProject_MacOSX_flatrsrc0 MWProject_MacOSX_flatrsrcfilename MWProject_MacOSX_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_MacOSX_installpath./ MWProject_MacOSX_dont_prebind0 MWProject_MacOSX_flat_namespace0 MWProject_MacOSX_frameworkversionA MWProject_MacOSX_currentversion0 MWProject_MacOSX_flat_oldimpversion0 MWLinker_MachO_exportsNone MWLinker_MachO_mainname MWLinker_MachO_currentversion0 MWLinker_MachO_compatibleversion0 MWLinker_MachO_symfullpath0 MWLinker_MachO_supresswarnings0 MWLinker_MachO_multisymerror0 MWLinker_MachO_prebind1 MWLinker_MachO_deadstrip1 MWLinker_MachO_objectivecsemantics0 MWLinker_MachO_whichfileloaded0 MWLinker_MachO_whyfileloaded0 MWLinker_MachO_readonlyrelocsErrors MWLinker_MachO_undefinedsymbolsErrors MWLinker_MachO_twolevelnamespace1 MWLinker_MachO_stripdebugsymbols0 MWProject_MachO_typeExecutable MWProject_MachO_outfilea.exe MWProject_MachO_filecreator???? MWProject_MachO_filetypeMEXE MWProject_MachO_vmaddress4096 MWProject_MachO_flatrsrc1 MWProject_MachO_flatrsrcfilenamea.rsrc MWProject_MachO_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_MachO_installpath./ MWProject_MachO_frameworkversion MWPEF_exportsPragma MWPEF_libfolder0 MWPEF_sortcodeNone MWPEF_expandbss0 MWPEF_sharedata0 MWPEF_olddefversion0 MWPEF_oldimpversion0 MWPEF_currentversion0 MWPEF_fragmentnameTemplate Editor MWPEF_collapsereloads0 MWProject_PPC_typeSharedLibrary MWProject_PPC_outfileTemplate Editor MWProject_PPC_filecreatorResK MWProject_PPC_filetypeshlb MWProject_PPC_size0 MWProject_PPC_minsize0 MWProject_PPC_stacksize0 MWProject_PPC_flags0 MWProject_PPC_symfilename MWProject_PPC_rsrcname MWProject_PPC_rsrcheaderNative MWProject_PPC_rsrctype???? MWProject_PPC_rsrcid0 MWProject_PPC_rsrcflags0 MWProject_PPC_rsrcstore0 MWProject_PPC_rsrcmerge0 MWProject_PPC_flatrsrc0 MWProject_PPC_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_PPC_flatrsrcfilename MWAssembler_PPC_auxheader0 MWAssembler_PPC_symmodeMac MWAssembler_PPC_dialectPPC MWAssembler_PPC_prefixfile MWAssembler_PPC_typecheck0 MWAssembler_PPC_warnings0 MWAssembler_PPC_casesensitive0 PList_OutputTypeResource PList_OutputEncodingUTF-8 PList_Prefix PList_FileFilenameInfo.plist PList_FileDirectory Path: PathFormatMacOS PathRootProject PList_ResourceTypeplst PList_ResourceID0 PList_ResourceNameProperty List MWRez_Language_maxwidth80 MWRez_Language_scriptRoman MWRez_Language_alignmentAlign1 MWRez_Language_filtermodeFilterSkip MWRez_Language_suppresswarnings0 MWRez_Language_escapecontrolchars1 MWRez_Language_prefixname MWRez_Language_filteredtypes'CODE' 'DATA' 'PICT' MWWinRC_prefixname MWCodeGen_X86_processorGeneric MWCodeGen_X86_alignmentbytes8 MWCodeGen_X86_exceptionsZeroOverhead MWCodeGen_X86_name_manglingMWWin32 MWCodeGen_X86_use_extinst0 MWCodeGen_X86_extinst_mmx0 MWCodeGen_X86_extinst_3dnow0 MWCodeGen_X86_use_mmx_3dnow_convention0 MWCodeGen_X86_extinst_cmov0 MWCodeGen_X86_extinst_sse0 MWCodeGen_X86_extinst_sse20 MWCodeGen_X86_intrinsics0 MWCodeGen_X86_optimizeasm0 MWCodeGen_X86_disableopts0 MWCodeGen_X86_profile0 MWLinker_X86_runtimeCustom MWCodeGen_X86_readonlystrings0 MWLinker_X86_subsysmajorid4 MWLinker_X86_subsysminorid0 MWCOFF_X86_opsysmajorid4 MWCOFF_X86_opsysminorid0 MWLinker_X86_usrmajorid0 MWLinker_X86_usrminorid0 MWProject_X86_maxstacksize1024 MWProject_X86_minstacksize4 MWProject_X86_size1024 MWProject_X86_minsize4 MWCOFF_X86_coff_flags0 MWCOFF_X86_dll_flags0 MWProject_X86_baseaddress4194304 MWCOFF_X86_filealign512 MWCOFF_X86_sectionalign4096 PDisasmX86_showHeaderstrue PDisasmX86_showSectHeaderstrue PDisasmX86_showSymTabtrue PDisasmX86_showCodetrue PDisasmX86_showDatatrue PDisasmX86_showDebugfalse PDisasmX86_showExceptionsfalse PDisasmX86_showRawfalse PDisasmX86_showAllRawfalse PDisasmX86_showSourcefalse PDisasmX86_showRelocationtrue PDisasmX86_showHextrue PDisasmX86_showCommentsfalse PDisasmX86_showSymDefstrue PDisasmX86_unmanglefalse PDisasmX86_verbosefalse PDisasmX86_resolveRelocstrue PDisasmX86_resolveLocalsfalse MWDebugger_X86_Exceptions 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GlobalOptimizer_X86_optimizationlevelLevel0 GlobalOptimizer_X86_optforSpeed MWLinker_X86_entrypointusageDefault MWLinker_X86_entrypoint MWLinker_X86_subsystemWinGUI MWLinker_X86_commandfile MWLinker_X86_generatemap0 MWLinker_X86_linksym0 MWLinker_X86_linkCV1 MWLinker_X86_symfullpathfalse MWLinker_X86_linkdebugtrue MWLinker_X86_checksumfalse MWLinker_X86_zero_init_bssfalse MWLinker_X86_mergedatafalse MWLinker_X86_usedefaultlibsfalse MWLinker_X86_adddefaultlibsfalse MWLinker_X86_nowarningsfalse MWLinker_X86_verbosefalse MWProject_X86_typeApplication MWProject_X86_outfilenoname.exe MWProject_X86_importlib MWProject_X86_setimportlibdirfalse MWProject_X86_dontgenerateimportlibfalse MWProject_X86_oldformatlibfalse MWProject_X86_replaceobjextensionfalse MWProject_X86_copyallfilesfalse Name ResKnifeLib MacOS Library Debug Name Template Editor.h MacOS Text Name TemplateWindow.cpp MacOS Text Debug Name TemplateWindow.h MacOS Text Name Template Editor.r MacOS Text Debug Name CarbonLib Unix Library Debug Name MSL_All_Carbon.Lib Unix Library Debug Name TemplateInitalisation.cpp Unix Text Debug Name TemplateInitalisation.h Unix Text Name ResKnifeLib MacOS Name Template Editor.h MacOS Name TemplateWindow.cpp MacOS Name TemplateWindow.h MacOS Name Template Editor.r MacOS Name CarbonLib Unix Name MSL_All_Carbon.Lib Unix Name TemplateInitalisation.cpp Unix Name TemplateInitalisation.h Unix PICT Editor (Carbon) UserSourceTrees AlwaysSearchUserPathsfalse InterpretDOSAndUnixPathsfalse RequireFrameworkStyleIncludesfalse UserSearchPaths SearchPath Path: PathFormatMacOS PathRootProject Recursivetrue FrameworkPathfalse HostFlagsAll SystemSearchPaths SearchPath Path: PathFormatMacOS PathRootCodeWarrior Recursivetrue FrameworkPathfalse HostFlagsAll MWRuntimeSettings_WorkingDirectory MWRuntimeSettings_CommandLine MWRuntimeSettings_HostApplication Path:build:ResKnife (CarbonLib) PathFormatMacOS PathRootProject MWRuntimeSettings_EnvVars LinkerMacOS PPC Linker PreLinker PostLinker TargetnamePICT Editor (Carbon) OutputDirectory Path:build:Editors: PathFormatMacOS PathRootProject SaveEntriesUsingRelativePathsfalse FileMappings FileTypeAPPL FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeAppl FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeMMLB FileExtension CompilerLib Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeMPLF FileExtension CompilerLib Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeMWCD FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeRSRC FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeTEXT FileExtension.arr Compiler EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.bh CompilerBalloon Help EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.c CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.c++ CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cc CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cp CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.cpp CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.exp Compiler EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.h CompilerMW C/C++ PPC EditLanguageC/C++ Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMaketrue FileTypeTEXT FileExtension.pch CompilerMW C/C++ PPC EditLanguageC/C++ Precompiletrue Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.pch++ CompilerMW C/C++ PPC EditLanguageC/C++ Precompiletrue Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.plist Compiler EditLanguage Precompilefalse Launchabletrue ResourceFilefalse IgnoredByMaketrue FileTypeTEXT FileExtension.r CompilerRez EditLanguageRez Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeTEXT FileExtension.s CompilerPPCAsm EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypeXCOF FileExtension CompilerXCOFF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypedocu FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypersrc FileExtension Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileTypeshlb FileExtension CompilerPEF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileTypestub FileExtension CompilerPEF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileExtension.doc Compiler EditLanguage Precompilefalse Launchabletrue ResourceFilefalse IgnoredByMaketrue FileExtension.o CompilerXCOFF Import PPC EditLanguage Precompilefalse Launchablefalse ResourceFilefalse IgnoredByMakefalse FileExtension.ppob Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse FileExtension.rsrc Compiler EditLanguage Precompilefalse Launchabletrue ResourceFiletrue IgnoredByMakefalse CacheModDatestrue DumpBrowserInfofalse CacheSubprojectstrue UseThirdPartyDebuggerfalse BrowserGenerator1 DebuggerAppPath Path PathFormatGeneric PathRootAbsolute DebuggerCmdLineArgs DebuggerWorkingDir Path PathFormatGeneric PathRootAbsolute CodeCompletionPrefixFileNameMacHeaders.c CodeCompletionMacroFileNameMacOS_Carbon_C++_Macros.h ConsoleEncoding0 LogSystemMessagestrue AutoTargetDLLsfalse StopAtWatchpointstrue PauseWhileRunningfalse PauseInterval5 PauseUIFlags0 AltExePath Path PathFormatGeneric PathRootAbsolute StopAtTempBPOnLaunchfalse CacheSymbolicstrue TempBPFunctionNamemain TempBPType0 Enabledfalse ConnectionName DownloadPath LaunchRemoteAppfalse RemoteAppPath CoreID0 JTAGClockSpeed8000 IsMultiCorefalse OSDownloadfalse UseGlobalOSDownloadfalse OSDownloadConnectionName OSDownloadPath AltDownloadfalse AltDownloadConnectionName OtherExecutables ExecutablePath Path:build:ResKnife (CarbonLib) PathFormatMacOS PathRootProject RemoteDownloadfalse Debugtrue RemotePath Mergedfalse OriginalPath Path PathFormatMacOS PathRootAbsolute CustomColor1 Red0 Green32767 Blue0 CustomColor2 Red0 Green32767 Blue0 CustomColor3 Red0 Green32767 Blue0 CustomColor4 Red0 Green32767 Blue0 MWFrontEnd_C_cplusplus0 MWFrontEnd_C_checkprotos0 MWFrontEnd_C_arm0 MWFrontEnd_C_trigraphs0 MWFrontEnd_C_onlystdkeywords0 MWFrontEnd_C_enumsalwaysint0 MWFrontEnd_C_mpwpointerstyle0 MWFrontEnd_C_prefixname MWFrontEnd_C_ansistrict0 MWFrontEnd_C_mpwcnewline0 MWFrontEnd_C_wchar_type1 MWFrontEnd_C_enableexceptions1 MWFrontEnd_C_dontreusestrings0 MWFrontEnd_C_poolstrings0 MWFrontEnd_C_dontinline0 MWFrontEnd_C_useRTTI1 MWFrontEnd_C_multibyteaware0 MWFrontEnd_C_unsignedchars0 MWFrontEnd_C_autoinline0 MWFrontEnd_C_booltruefalse1 MWFrontEnd_C_inlinelevel0 MWFrontEnd_C_ecplusplus0 MWFrontEnd_C_objective_c0 MWFrontEnd_C_defer_codegen0 MWFrontEnd_C_templateparser0 MWFrontEnd_C_c990 MWFrontEnd_C_bottomupinline1 MWWarning_C_warn_illpragma1 MWWarning_C_warn_emptydecl1 MWWarning_C_warn_possunwant1 MWWarning_C_warn_unusedvar1 MWWarning_C_warn_unusedarg1 MWWarning_C_warn_extracomma1 MWWarning_C_pedantic1 MWWarning_C_warningerrors0 MWWarning_C_warn_hidevirtual1 MWWarning_C_warn_implicitconv0 MWWarning_C_warn_notinlined1 MWWarning_C_warn_structclass1 MWFTP_Post_hostName MWFTP_Post_username MWFTP_Post_password0ÿà(l"¨T MWFTP_Post_remoteDir MWFTP_Post_ftp_PathVersion0 MWFTP_Post_ftp_PathType0 MWFTP_Post_ftp_PathFormat0 MWFTP_Post_ftp_tree MWFTP_Post_uploadDir MWFTP_Post_ftp_port21 MWFTP_Post_SendBin1 MWFTP_Post_ShouldLog1 MWCommandLine_Java_clsName MWCommandLine_Java_args MWVJavaDebugging_Protocol1 MWVJavaDebugging_JDKVersion1 MWVJavaDebugging_TimeOut10 MWVJavaDebugging_SupportSlowDevicesfalse MWVJavaDebugging_UseRemoteLaunchAgentfalse MWVJavaDebugging_LaunchVMasServerfalse MWJava_Language_optimizefalse MWJava_Language_warnDeprecatedfalse MWJava_Language_emitMapfalse MWJava_Language_strictFileNamesfalse MWJava_Language_strictFileHierarchyfalse MWJava_Language_1_1_Compatiblefalse MWJava_Language_emitHeaders0 MWJava_Language_headerTypeJNINativeHeaders MWJava_Language_packageFilter MWJava_Language_genCommentstrue MWJava_Language_genHeadersfalse MWJava_Language_enableAssertsfalse MWJava_Language_targetVM1.1 Manifest-JAD Attributes AttributeMain-Class ValueAuto-Generated MWJava_MRJAppBuilder_outFileMRJApplication MWJava_MRJAppBuilder_mergefalse MWJava_MRJAppBuilder_quitMenutrue MWJava_MRJAppBuilder_growfalse MWJava_MRJAppBuilder_stdoutTypeConsole MWJava_MRJAppBuilder_stderrTypeConsole MWJava_MRJAppBuilder_stdinTypeConsole MWJava_MRJAppBuilder_appIconPVersion0 MWJava_MRJAppBuilder_appIconPType0 MWJava_MRJAppBuilder_appIconPFormat0 MWJava_MRJAppBuilder_appIconPTree MWJava_MRJAppBuilder_appIconFile MWJava_MRJAppBuilder_splashScreenPVersion0 MWJava_MRJAppBuilder_splashScreenPType0 MWJava_MRJAppBuilder_splashScreenPFormat0 MWJava_MRJAppBuilder_splashScreenPTree MWJava_MRJAppBuilder_splashScreenPICTFile MWJava_MRJAppBuilder_aboutName MWJava_MRJAppBuilder_stdoutPVersion0 MWJava_MRJAppBuilder_stdoutPType0 MWJava_MRJAppBuilder_stdoutPFormat0 MWJava_MRJAppBuilder_stdoutPTree MWJava_MRJAppBuilder_stdoutFile MWJava_MRJAppBuilder_stdoutAppendfalse MWJava_MRJAppBuilder_stderrPType0 MWJava_MRJAppBuilder_stderrPFormat0 MWJava_MRJAppBuilder_stderrPTree MWJava_MRJAppBuilder_stderrFile MWJava_MRJAppBuilder_stderrAppendfalse MWJava_MRJAppBuilder_stdinPType0 MWJava_MRJAppBuilder_stdinPFormat0 MWJava_MRJAppBuilder_stdinPTree MWJava_MRJAppBuilder_stdinFile MWJava_Output_outputtypeJarFile MWJava_Output_outfileJavaClasses.jar MWJava_Output_ftype1514754080 MWJava_Output_fcreator1297570384 MWJava_Output_compress0 MWJava_Output_genManifest0 MWJava_Output_trunctypeFront MWJava_Output_deleteClasses0 MWJava_Output_consoleApp1 MWJava_Output_preverify0 MWJava_Output_genJad0 MWJava_Output_obfuscate0 MWJava_Proj_projtypeApplet MWJava_Proj_mainClassName MWJava_Proj_HTMLAppCreator1463898714 MWJava_Proj_HTMLAppName MWJava_Proj_PathVersion1 MWJava_Proj_PathType0 MWJava_Proj_PathFormat0 MWJava_Proj_tree MWJava_Proj_HTMLAppWin32Name MWJava_Proj_compress0 MWJava_Proj_simulator0 MWJava_Proj_useVM\000\000macosx MWJava_Proj_vmarguments MWJava_Proj_vmName MWJava_Proj_simPropFile MWJavaDoc_Proj_Version1 MWJavaDoc_Proj_Deprecated1 MWJavaDoc_Proj_Author1 MWJavaDoc_Proj_Index1 MWJavaDoc_Proj_Tree1 MWJavaDoc_Proj_SunResolveToSame0 MWJavaDoc_Proj_Shortnames1 MWJavaDoc_Proj_Folder0 MWJavaDoc_Proj_GenerateAPILinks0 MWJavaDoc_Proj_scopePublic MWJavaDoc_Proj_fcreator1297303877 MWJavaDoc_Proj_encodingName MWJavaDoc_Proj_decodingName MWJavaDoc_Proj_javaPackagePathhttp://java.sun.com/products/jdk/1.1/docs/api/ MWMerge_MacOS_projectTypeApplication MWMerge_MacOS_outputNameMerge Out MWMerge_MacOS_outputCreator???? MWMerge_MacOS_outputTypeAPPL MWMerge_MacOS_suppressWarning0 MWMerge_MacOS_copyFragments1 MWMerge_MacOS_copyResources1 MWMerge_MacOS_flattenResource0 MWMerge_MacOS_flatFileNamea.rsrc MWMerge_MacOS_flatFileOutputPath Path: PathFormatMacOS PathRootProject MWMerge_MacOS_skipResources DLGX ckid Proj WSPC mcvs FileLockedfalse ResourcesMapIsReadOnlyfalse PrinterDriverIsMultiFinderCompatiblefalse Invisiblefalse HasBundlefalse NameLockedfalse Stationeryfalse HasCustomIconfalse Sharedfalse HasBeenInitedfalse Label0 Comments MWMacOSPackager_UsePackager0 MWMacOSPackager_FolderToPackage Path PathFormatMacOS PathRootAbsolute MWMacOSPackager_CreateClassicAlias0 MWMacOSPackager_ClassicAliasMethodUseTargetOutput MWMacOSPackager_ClassicAliasPath Path PathFormatMacOS PathRootAbsolute MWMacOSPackager_CreatePkgInfo0 MWMacOSPackager_PkgCreatorType???? MWMacOSPackager_PkgFileTypeAPPL MWCodeGen_PPC_structalignmentPPC_mw MWCodeGen_PPC_tracebacktablesInline MWCodeGen_PPC_processorGeneric MWCodeGen_PPC_function_align4 MWCodeGen_PPC_tocdata1 MWCodeGen_PPC_largetoc0 MWCodeGen_PPC_profiler0 MWCodeGen_PPC_vectortocdata1 MWCodeGen_PPC_poolconst0 MWCodeGen_PPC_peephole1 MWCodeGen_PPC_readonlystrings0 MWCodeGen_PPC_linkerpoolsstrings0 MWCodeGen_PPC_volatileasm0 MWCodeGen_PPC_schedule0 MWCodeGen_PPC_altivec0 MWCodeGen_PPC_altivec_move_block0 MWCodeGen_PPC_strictIEEEfp0 MWCodeGen_PPC_fpcontract1 MWCodeGen_PPC_genfsel0 MWCodeGen_PPC_orderedfpcmp0 MWCodeGen_MachO_structalignmentPPC_mw MWCodeGen_MachO_profiler_enumOff MWCodeGen_MachO_processorGeneric MWCodeGen_MachO_function_align4 MWCodeGen_MachO_common0 MWCodeGen_MachO_peephole1 MWCodeGen_MachO_readonlystrings0 MWCodeGen_MachO_linkerpoolsstrings1 MWCodeGen_MachO_volatileasm0 MWCodeGen_MachO_schedule0 MWCodeGen_MachO_altivec0 MWCodeGen_MachO_vecmove0 MWCodeGen_MachO_fp_ieee_strict0 MWCodeGen_MachO_fpcontract1 MWCodeGen_MachO_genfsel0 MWCodeGen_MachO_fp_cmps_ordered0 MWDisassembler_PPC_showcode1 MWDisassembler_PPC_extended1 MWDisassembler_PPC_mix0 MWDisassembler_PPC_nohex0 MWDisassembler_PPC_showdata1 MWDisassembler_PPC_showexceptions1 MWDisassembler_PPC_showsym0 MWDisassembler_PPC_shownames1 GlobalOptimizer_PPC_optimizationlevelLevel0 GlobalOptimizer_PPC_optforSpeed MWLinker_PPC_linksym1 MWLinker_PPC_symfullpath1 MWLinker_PPC_linkmap0 MWLinker_PPC_nolinkwarnings0 MWLinker_PPC_dontdeadstripinitcode0 MWLinker_PPC_permitmultdefs0 MWLinker_PPC_linkmodeFast MWLinker_PPC_initname MWLinker_PPC_mainname MWLinker_PPC_termname MWLinker_MacOSX_linksym0 MWLinker_MacOSX_symfullpath0 MWLinker_MacOSX_nolinkwarnings0 MWLinker_MacOSX_linkmap0 MWLinker_MacOSX_dontdeadstripinitcode0 MWLinker_MacOSX_permitmultdefs1 MWLinker_MacOSX_use_objectivec_semantics0 MWLinker_MacOSX_strip_debug_symbols0 MWLinker_MacOSX_split_segs0 MWLinker_MacOSX_report_msl_overloads0 MWLinker_MacOSX_objects_follow_linkorder0 MWLinker_MacOSX_linkmodeFast MWLinker_MacOSX_exportsReferencedGlobals MWLinker_MacOSX_sortcodeNone MWLinker_MacOSX_mainname MWProject_MacOSX_typeExecutable MWProject_MacOSX_outfile MWProject_MacOSX_filecreator???? MWProject_MacOSX_filetypeMEXE MWProject_MacOSX_vmaddress4096 MWProject_MacOSX_usedefaultvmaddr1 MWProject_MacOSX_flatrsrc0 MWProject_MacOSX_flatrsrcfilename MWProject_MacOSX_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_MacOSX_installpath./ MWProject_MacOSX_dont_prebind0 MWProject_MacOSX_flat_namespace0 MWProject_MacOSX_frameworkversionA MWProject_MacOSX_currentversion0 MWProject_MacOSX_flat_oldimpversion0 MWLinker_MachO_exportsNone MWLinker_MachO_mainname MWLinker_MachO_currentversion0 MWLinker_MachO_compatibleversion0 MWLinker_MachO_symfullpath0 MWLinker_MachO_supresswarnings0 MWLinker_MachO_multisymerror0 MWLinker_MachO_prebind1 MWLinker_MachO_deadstrip1 MWLinker_MachO_objectivecsemantics0 MWLinker_MachO_whichfileloaded0 MWLinker_MachO_whyfileloaded0 MWLinker_MachO_readonlyrelocsErrors MWLinker_MachO_undefinedsymbolsErrors MWLinker_MachO_twolevelnamespace1 MWLinker_MachO_stripdebugsymbols0 MWProject_MachO_typeExecutable MWProject_MachO_outfilea.exe MWProject_MachO_filecreator???? MWProject_MachO_filetypeMEXE MWProject_MachO_vmaddress4096 MWProject_MachO_flatrsrc1 MWProject_MachO_flatrsrcfilenamea.rsrc MWProject_MachO_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_MachO_installpath./ MWProject_MachO_frameworkversion MWPEF_exportsPragma MWPEF_libfolder0 MWPEF_sortcodeNone MWPEF_expandbss0 MWPEF_sharedata0 MWPEF_olddefversion0 MWPEF_oldimpversion0 MWPEF_currentversion0 MWPEF_fragmentnamePICT Editor MWPEF_collapsereloads0 MWProject_PPC_typeApplication MWProject_PPC_outfilea.out MWProject_PPC_filecreator???? MWProject_PPC_filetypeAPPL MWProject_PPC_size384 MWProject_PPC_minsize384 MWProject_PPC_stacksize64 MWProject_PPC_flags22720 MWProject_PPC_symfilename MWProject_PPC_rsrcname MWProject_PPC_rsrcheaderNative MWProject_PPC_rsrctype???? MWProject_PPC_rsrcid0 MWProject_PPC_rsrcflags0 MWProject_PPC_rsrcstore0 MWProject_PPC_rsrcmerge0 MWProject_PPC_flatrsrc0 MWProject_PPC_flatrsrcoutputdir Path: PathFormatMacOS PathRootProject MWProject_PPC_flatrsrcfilename MWAssembler_PPC_auxheader0 MWAssembler_PPC_symmodeMac MWAssembler_PPC_dialectPPC MWAssembler_PPC_prefixfile MWAssembler_PPC_typecheck0 MWAssembler_PPC_warnings0 MWAssembler_PPC_casesensitive0 PList_OutputTypeFile PList_OutputEncodingUTF-8 PList_Prefix PList_FileFilenameInfo.plist PList_FileDirectory Path: PathFormatMacOS PathRootProject PList_ResourceTypeplst PList_ResourceID0 PList_ResourceName MWRez_Language_maxwidth80 MWRez_Language_scriptRoman MWRez_Language_alignmentAlign1 MWRez_Language_filtermodeFilterSkip MWRez_Language_suppresswarnings0 MWRez_Language_escapecontrolchars1 MWRez_Language_prefixname MWRez_Language_filteredtypes'CODE' 'DATA' 'PICT' MWWinRC_prefixname MWCodeGen_X86_processorGeneric MWCodeGen_X86_alignmentbytes8 MWCodeGen_X86_exceptionsZeroOverhead MWCodeGen_X86_name_manglingMWWin32 MWCodeGen_X86_use_extinst0 MWCodeGen_X86_extinst_mmx0 MWCodeGen_X86_extinst_3dnow0 MWCodeGen_X86_use_mmx_3dnow_convention0 MWCodeGen_X86_extinst_cmov0 MWCodeGen_X86_extinst_sse0 MWCodeGen_X86_extinst_sse20 MWCodeGen_X86_intrinsics0 MWCodeGen_X86_optimizeasm0 MWCodeGen_X86_disableopts0 MWCodeGen_X86_profile0 MWLinker_X86_runtimeCustom MWCodeGen_X86_readonlystrings0 MWLinker_X86_subsysmajorid4 MWLinker_X86_subsysminorid0 MWCOFF_X86_opsysmajorid4 MWCOFF_X86_opsysminorid0 MWLinker_X86_usrmajorid0 MWLinker_X86_usrminorid0 MWProject_X86_maxstacksize1024 MWProject_X86_minstacksize4 MWProject_X86_size1024 MWProject_X86_minsize4 MWCOFF_X86_coff_flags0 MWCOFF_X86_dll_flags0 MWProject_X86_baseaddress4194304 MWCOFF_X86_filealign512 MWCOFF_X86_sectionalign4096 PDisasmX86_showHeaderstrue PDisasmX86_showSectHeaderstrue PDisasmX86_showSymTabtrue PDisasmX86_showCodetrue PDisasmX86_showDatatrue PDisasmX86_showDebugfalse PDisasmX86_showExceptionsfalse PDisasmX86_showRawfalse PDisasmX86_showAllRawfalse PDisasmX86_showSourcefalse PDisasmX86_showRelocationtrue PDisasmX86_showHextrue PDisasmX86_showCommentsfalse PDisasmX86_showSymDefstrue PDisasmX86_unmanglefalse PDisasmX86_verbosefalse PDisasmX86_resolveRelocstrue PDisasmX86_resolveLocalsfalse MWDebugger_X86_Exceptions 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GlobalOptimizer_X86_optimizationlevelLevel0 GlobalOptimizer_X86_optforSpeed MWLinker_X86_entrypointusageDefault MWLinker_X86_entrypoint MWLinker_X86_subsystemWinGUI MWLinker_X86_commandfile MWLinker_X86_generatemap0 MWLinker_X86_linksym0 MWLinker_X86_linkCV1 MWLinker_X86_symfullpathfalse MWLinker_X86_linkdebugtrue MWLinker_X86_checksumfalse MWLinker_X86_zero_init_bssfalse MWLinker_X86_mergedatafalse MWLinker_X86_usedefaultlibsfalse MWLinker_X86_adddefaultlibsfalse MWLinker_X86_nowarningsfalse MWLinker_X86_verbosefalse MWProject_X86_typeApplication MWProject_X86_outfilenoname.exe MWProject_X86_importlib MWProject_X86_setimportlibdirfalse MWProject_X86_dontgenerateimportlibfalse MWProject_X86_oldformatlibfalse MWProject_X86_replaceobjextensionfalse MWProject_X86_copyallfilesfalse Name ResKnifeLib MacOS Library Debug Name Parser.h MacOS Text Name PICT Editor.h MacOS Text Name PictWindow.cpp MacOS Text Debug Name MSL_C++_PPC.Lib MacOS Library Debug Name MSL_Runtime_PPC.Lib MacOS Library Debug Name CarbonLib Unix Library Debug Name MSL_All_Carbon.Lib Unix Library Debug Name ResKnifeLib MacOS Name Parser.h MacOS Name PICT Editor.h MacOS Name PictWindow.cpp MacOS Name MSL_C++_PPC.Lib MacOS Name MSL_Runtime_PPC.Lib MacOS Name CarbonLib Unix Name MSL_All_Carbon.Lib Unix ResKnife (68K) ResKnife (Classic) ResKnife (Carbon) Hex Editor (Carbon) Template Editor (Carbon) PICT Editor (Carbon) ResKnife Headers ResKnife (Carbon) PathRelative Project :Carbon: :ResKnife.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Generic.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Transfer.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:Application.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:Asynchronous.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:DataBrowser.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:EditorWindow.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:Errors.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:Files.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:FileWindow.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:HostCallbacks.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:InspectorWindow.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:PickerWindow.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:PlugObject.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:PlugWindow.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:ResourceObject.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:Utility.h MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:WindowObject.h MacOS ResKnife Source ResKnife (Carbon) PathRelative Project :Carbon: :Classes:Application.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:Asynchronous.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:DataBrowser.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:EditorWindow.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:Errors.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:Files.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:FileWindow.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:HostCallbacks.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:InspectorWindow.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:PickerWindow.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:PlugObject.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:PlugWindow.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:ResourceObject.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:Utility.cpp MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Classes:WindowObject.cpp MacOS Hexadecimal Editor Hex Editor (Carbon) Name Hex Editor.h MacOS Hex Editor (Carbon) Name Events.h MacOS Hex Editor (Carbon) Name Events.cpp MacOS Hex Editor (Carbon) Name HexWindow.h MacOS Hex Editor (Carbon) Name HexWindow.cpp MacOS Hex Editor (Carbon) Name Initalisation.h MacOS Hex Editor (Carbon) Name Initalisation.cpp MacOS Hex Editor (Carbon) Name HexUtility.h Unix Hex Editor (Carbon) Name HexUtility.cpp Unix Template Editor Template Editor (Carbon) Name Template Editor.h MacOS Template Editor (Carbon) Name Template Editor.r MacOS Template Editor (Carbon) Name TemplateInitalisation.h Unix Template Editor (Carbon) Name TemplateInitalisation.cpp Unix Template Editor (Carbon) Name TemplateWindow.h MacOS Template Editor (Carbon) Name TemplateWindow.cpp MacOS PICT Editor PICT Editor (Carbon) Name PICT Editor.h MacOS PICT Editor (Carbon) Name Parser.h MacOS PICT Editor (Carbon) Name PictWindow.cpp MacOS Resources ResKnife (Carbon) PathRelative Project :Carbon: :Resources:Carbon.r MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Resources:ResKnife.r MacOS ResKnife (Carbon) PathRelative Project :Carbon: :Resources:ResKnife.rsrc MacOS Hex Editor (Carbon) Name ResKnifeLib MacOS Libraries Macintosh 68K ResKnife (68K) PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:Classic68kLibraries:Navigation.o MacOS Macintosh PowerPC ResKnife (Classic) PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:AppearanceLib MacOS ResKnife (Carbon) PathRelative CodeWarrior MacOS Support Universal/Libraries/StubLibraries/CarbonLib Unix ResKnife (Classic) PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:ControlsLib MacOS ResKnife (Classic) PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:DragLib MacOS ResKnife (Classic) PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:InterfaceLib MacOS ResKnife (Classic) PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:MenusLib MacOS ResKnife (Classic) PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:NavigationLib MacOS ResKnife (Classic) PathRelative CodeWarrior : :MacOS Support:Universal:Libraries:StubLibraries:WindowsLib MacOS MSL 68K ResKnife (68K) PathRelative CodeWarrior : :MacOS Support:Libraries:MacOS 68K:MacOS.lib MacOS ResKnife (68K) PathRelative CodeWarrior : :MacOS Support:Libraries:MacOS 68K:MathLib68K:MathLib68K (Model Near):MathLib68K (2i).Lib MacOS ResKnife (68K) PathRelative CodeWarrior : :MSL:MSL_C:MSL_MacOS:Lib:68K:MSL C.68K (2i).Lib MacOS ResKnife (68K) PathRelative CodeWarrior : :MSL:MSL_C++:MSL_MacOS:Lib:68K:MSL C++.68K (2i).Lib MacOS ResKnife (68K) PathRelative CodeWarrior : :MacOS Support:Libraries:Runtime:Runtime 68K:Libs:MSL Runtime68K.Lib MacOS MSL PowerPC ResKnife (Carbon) PathRelative CodeWarrior MacOS Support Libraries/Runtime/Libs/MSL_All_Carbon.Lib Unix ResKnife (Classic) PathRelative CodeWarrior : :MSL:MSL_C:MSL_MacOS:Lib:PPC:MSL_C_PPC.Lib MacOS ResKnife (Classic) PathRelative CodeWarrior : :MSL:MSL_C++:MSL_MacOS:Lib:PPC:MSL_C++_PPC.Lib MacOS ResKnife (Classic) PathRelative CodeWarrior : :MacOS Support:Libraries:Runtime:Libs:MSL_Runtime_PPC.Lib MacOS ResKnife (Classic) PathRelative CodeWarrior : :Carbon Support:CarbonLib:Stub:CarbonAccessors.o MacOS \ No newline at end of file diff --git a/ResKnife.xcodeproj/project.pbxproj b/ResKnife.xcodeproj/project.pbxproj index 2fb4e63..9b72c0e 100644 --- a/ResKnife.xcodeproj/project.pbxproj +++ b/ResKnife.xcodeproj/project.pbxproj @@ -3,289 +3,337 @@ archiveVersion = 1; classes = { }; - objectVersion = 45; + objectVersion = 42; objects = { /* Begin PBXBuildFile section */ - E17752350E424BAB00F737F8 /* NSData-HexRepresentation.m in Sources */ = {isa = PBXBuildFile; fileRef = E17752330E424BAB00F737F8 /* NSData-HexRepresentation.m */; }; - E177526F0E424DCB00F737F8 /* OpenPanelDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E177526D0E424DCB00F737F8 /* OpenPanelDelegate.m */; }; - E17752700E424DCB00F737F8 /* OpenPanelDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E177526E0E424DCB00F737F8 /* OpenPanelDelegate.h */; }; - E17752760E424ED400F737F8 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; - E17753350E424F0C00F737F8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; - E177539D0E42521800F737F8 /* Font Templates.rsrc in Copy Support Resources */ = {isa = PBXBuildFile; fileRef = E1B2A73B0E41218F00A72928 /* Font Templates.rsrc */; }; - E17753B90E42528100F737F8 /* NovaTools.plugin in CopyFiles */ = {isa = PBXBuildFile; fileRef = E1B2A4940E41103800A72928 /* NovaTools.plugin */; }; - E17753CD0E42528400F737F8 /* Font Editor.plugin in CopyFiles */ = {isa = PBXBuildFile; fileRef = E1B2A7220E41213300A72928 /* Font Editor.plugin */; }; - E17753E40E42534300F737F8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; }; - E17757380E425EE600F737F8 /* Element.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757030E425EE200F737F8 /* Element.m */; }; - E17757390E425EE600F737F8 /* ElementDATE.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757050E425EE200F737F8 /* ElementDATE.m */; }; - E177573A0E425EE600F737F8 /* ElementDBYT.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757070E425EE200F737F8 /* ElementDBYT.m */; }; - E177573B0E425EE600F737F8 /* ElementDLLG.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757090E425EE200F737F8 /* ElementDLLG.m */; }; - E177573C0E425EE600F737F8 /* ElementDLNG.m in Sources */ = {isa = PBXBuildFile; fileRef = E177570B0E425EE200F737F8 /* ElementDLNG.m */; }; - E177573D0E425EE600F737F8 /* ElementDWRD.m in Sources */ = {isa = PBXBuildFile; fileRef = E177570D0E425EE200F737F8 /* ElementDWRD.m */; }; - E177573E0E425EE600F737F8 /* ElementFBYT.m in Sources */ = {isa = PBXBuildFile; fileRef = E177570F0E425EE200F737F8 /* ElementFBYT.m */; }; - E177573F0E425EE600F737F8 /* ElementFIXD.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757110E425EE200F737F8 /* ElementFIXD.m */; }; - E17757400E425EE600F737F8 /* ElementFRAC.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757130E425EE200F737F8 /* ElementFRAC.m */; }; - E17757410E425EE600F737F8 /* ElementHEXD.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757150E425EE200F737F8 /* ElementHEXD.m */; }; - E17757420E425EE600F737F8 /* ElementKEYB.mm in Sources */ = {isa = PBXBuildFile; fileRef = E17757170E425EE200F737F8 /* ElementKEYB.mm */; }; - E17757430E425EE600F737F8 /* ElementLSTB.mm in Sources */ = {isa = PBXBuildFile; fileRef = E17757190E425EE200F737F8 /* ElementLSTB.mm */; }; - E17757440E425EE600F737F8 /* ElementLSTC.mm in Sources */ = {isa = PBXBuildFile; fileRef = E177571B0E425EE200F737F8 /* ElementLSTC.mm */; }; - E17757450E425EE600F737F8 /* ElementLSTE.m in Sources */ = {isa = PBXBuildFile; fileRef = E177571D0E425EE200F737F8 /* ElementLSTE.m */; }; - E17757460E425EE600F737F8 /* ElementOCNT.m in Sources */ = {isa = PBXBuildFile; fileRef = E177571F0E425EE200F737F8 /* ElementOCNT.m */; }; - E17757470E425EE600F737F8 /* ElementPSTR.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757210E425EE200F737F8 /* ElementPSTR.m */; }; - E17757480E425EE600F737F8 /* ElementUBYT.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757230E425EE200F737F8 /* ElementUBYT.m */; }; - E17757490E425EE600F737F8 /* ElementULLG.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757250E425EE200F737F8 /* ElementULLG.m */; }; - E177574A0E425EE600F737F8 /* ElementULNG.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757270E425EE200F737F8 /* ElementULNG.m */; }; - E177574B0E425EE600F737F8 /* ElementUWRD.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757290E425EE200F737F8 /* ElementUWRD.m */; }; - E177574C0E425EE600F737F8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E177572A0E425EE200F737F8 /* Localizable.strings */; }; - E177574D0E425EE600F737F8 /* TemplateWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = E177572C0E425EE200F737F8 /* TemplateWindow.nib */; }; - E177574E0E425EE600F737F8 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = E177572E0E425EE200F737F8 /* Info.plist */; }; - E17757500E425EE600F737F8 /* DisplayTMPL.png in Resources */ = {isa = PBXBuildFile; fileRef = E17757310E425EE200F737F8 /* DisplayTMPL.png */; }; - E17757520E425EE600F737F8 /* TemplateStream.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757340E425EE200F737F8 /* TemplateStream.m */; }; - E17757530E425EE600F737F8 /* TemplateWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = E17757360E425EE200F737F8 /* TemplateWindowController.m */; }; - E17757580E425F1D00F737F8 /* Templates.rsrc in Copy Support Resources */ = {isa = PBXBuildFile; fileRef = E17757320E425EE200F737F8 /* Templates.rsrc */; }; - E1B2A3EA0E41103700A72928 /* ResKnifeResourceProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F5CDEBAB01FC893201A80001 /* ResKnifeResourceProtocol.h */; }; - E1B2A3EB0E41103700A72928 /* ResKnifePluginProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F5502C4001C579FF01C57124 /* ResKnifePluginProtocol.h */; }; - E1B2A3EC0E41103700A72928 /* ApplicationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5881D0156D40B01000001 /* ApplicationDelegate.h */; }; - E1B2A3ED0E41103700A72928 /* AttributesFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5881F0156D40B01000001 /* AttributesFormatter.h */; }; - E1B2A3EE0E41103700A72928 /* CreateResourceSheetController.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588210156D40B01000001 /* CreateResourceSheetController.h */; }; - E1B2A3EF0E41103700A72928 /* InfoWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588250156D40B01000001 /* InfoWindowController.h */; }; - E1B2A3F00E41103700A72928 /* NameFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588270156D40B01000001 /* NameFormatter.h */; }; - E1B2A3F10E41103700A72928 /* OutlineViewDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588290156D40B01000001 /* OutlineViewDelegate.h */; }; - E1B2A3F20E41103700A72928 /* PrefsWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5882B0156D40B01000001 /* PrefsWindowController.h */; }; - E1B2A3F30E41103700A72928 /* Resource.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5882D0156D40B01000001 /* Resource.h */; }; - E1B2A3F40E41103700A72928 /* ResourceDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5882F0156D40B01000001 /* ResourceDataSource.h */; }; - E1B2A3F50E41103700A72928 /* ResourceDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588310156D40B01000001 /* ResourceDocument.h */; }; - E1B2A3F60E41103700A72928 /* ResourceNameCell.h in Headers */ = {isa = PBXBuildFile; fileRef = F577A900021215C801A80001 /* ResourceNameCell.h */; }; - E1B2A3F70E41103700A72928 /* SizeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588330156D40B01000001 /* SizeFormatter.h */; }; - E1B2A3F80E41103700A72928 /* NSOutlineView-SelectedItems.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D0CBCF022744C701A80001 /* NSOutlineView-SelectedItems.h */; }; - E1B2A3F90E41103700A72928 /* MoreFilesX.h in Headers */ = {isa = PBXBuildFile; fileRef = F5DF1BF10254AD8801A80001 /* MoreFilesX.h */; }; - E1B2A3FA0E41103700A72928 /* NSString-FSSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = F59D5DE40320DFF601A8010C /* NSString-FSSpec.h */; }; - E1B2A3FB0E41103700A72928 /* PasteboardDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F1071603CCC61E01A8010A /* PasteboardDocument.h */; }; - E1B2A3FC0E41103700A72928 /* PasteboardWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F1071A03CCFAAC01A8010A /* PasteboardWindowController.h */; }; - E1B2A3FD0E41103700A72928 /* RKDocumentController.h in Headers */ = {isa = PBXBuildFile; fileRef = F59481AD03D0776C01A8010A /* RKDocumentController.h */; }; - E1B2A3FF0E41103700A72928 /* RKEditorRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D35755C04DAEB6200B8225B /* RKEditorRegistry.h */; }; - E1B2A4000E41103700A72928 /* RKSupportResourceRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D53A9FD04F171DC006651FA /* RKSupportResourceRegistry.h */; }; - E1B2A4020E41103700A72928 /* AboutPanel.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5B588360156D40B01000001 /* AboutPanel.nib */; }; - E1B2A4030E41103700A72928 /* Application.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5B588380156D40B01000001 /* Application.nib */; }; - E1B2A4040E41103700A72928 /* InfoWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5B5883A0156D40B01000001 /* InfoWindow.nib */; }; - E1B2A4050E41103700A72928 /* PrefsWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5B5883E0156D40B01000001 /* PrefsWindow.nib */; }; - E1B2A4060E41103700A72928 /* ResourceDocument.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5B588400156D40B01000001 /* ResourceDocument.nib */; }; - E1B2A4070E41103700A72928 /* CreateResourceSheet.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54E622B021D192201A80001 /* CreateResourceSheet.nib */; }; - E1B2A4080E41103700A72928 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F5B588420156D40B01000001 /* InfoPlist.strings */; }; - E1B2A4090E41103700A72928 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F5B588440156D40B01000001 /* Localizable.strings */; }; - E1B2A40A0E41103700A72928 /* defaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = F5730B930159528A01000001 /* defaults.plist */; }; - E1B2A40B0E41103700A72928 /* ResKnife.icns in Resources */ = {isa = PBXBuildFile; fileRef = F5B588460156D40B01000001 /* ResKnife.icns */; }; - E1B2A40C0E41103700A72928 /* Resource file.icns in Resources */ = {isa = PBXBuildFile; fileRef = F5B588470156D40B01000001 /* Resource file.icns */; }; - E1B2A40D0E41103700A72928 /* Icon file.icns in Resources */ = {isa = PBXBuildFile; fileRef = F5B588480156D40B01000001 /* Icon file.icns */; }; - E1B2A40E0E41103700A72928 /* Create.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F577A8FA0211E4D401A80001 /* Create.tiff */; }; - E1B2A40F0E41103700A72928 /* Delete.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F577A904021220D601A80001 /* Delete.tiff */; }; - E1B2A4100E41103700A72928 /* Edit.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F577A8FB0211E4D401A80001 /* Edit.tiff */; }; - E1B2A4110E41103700A72928 /* Edit Hex.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F577A8FC0211E4D401A80001 /* Edit Hex.tiff */; }; - E1B2A4120E41103700A72928 /* Save.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F577A8F30211CFA701A80001 /* Save.tiff */; }; - E1B2A4130E41103700A72928 /* Show Info.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F577A8F80211DC1E01A80001 /* Show Info.tiff */; }; - E1B2A4140E41103700A72928 /* ResKnife.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = F5041736036BD60801A8010A /* ResKnife.scriptSuite */; }; - E1B2A4150E41103700A72928 /* ResKnife.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = F50DFE16036C203F01A8010A /* ResKnife.scriptTerminology */; }; - E1B2A4160E41103700A72928 /* Export.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3D35756004DAEB7F00B8225B /* Export.tiff */; }; - E1B2A41D0E41103700A72928 /* ApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B5881E0156D40B01000001 /* ApplicationDelegate.m */; }; - E1B2A41E0E41103700A72928 /* AttributesFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588200156D40B01000001 /* AttributesFormatter.m */; }; - E1B2A41F0E41103700A72928 /* CreateResourceSheetController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588220156D40B01000001 /* CreateResourceSheetController.m */; }; - E1B2A4200E41103700A72928 /* InfoWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588260156D40B01000001 /* InfoWindowController.m */; }; - E1B2A4210E41103700A72928 /* NameFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588280156D40B01000001 /* NameFormatter.m */; }; - E1B2A4220E41103700A72928 /* OutlineViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B5882A0156D40B01000001 /* OutlineViewDelegate.m */; }; - E1B2A4230E41103700A72928 /* PrefsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B5882C0156D40B01000001 /* PrefsWindowController.m */; }; - E1B2A4240E41103700A72928 /* Resource.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B5882E0156D40B01000001 /* Resource.m */; }; - E1B2A4250E41103700A72928 /* ResourceDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588300156D40B01000001 /* ResourceDataSource.m */; }; - E1B2A4260E41103700A72928 /* ResourceDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588320156D40B01000001 /* ResourceDocument.m */; }; - E1B2A4270E41103700A72928 /* ResourceNameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F577A901021215C801A80001 /* ResourceNameCell.m */; }; - E1B2A4280E41103700A72928 /* SizeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588340156D40B01000001 /* SizeFormatter.m */; }; - E1B2A4290E41103700A72928 /* NSOutlineView-SelectedItems.m in Sources */ = {isa = PBXBuildFile; fileRef = F5D0CBD0022744C701A80001 /* NSOutlineView-SelectedItems.m */; }; - E1B2A42A0E41103700A72928 /* MoreFilesX.c in Sources */ = {isa = PBXBuildFile; fileRef = F5DF1BF00254AD8801A80001 /* MoreFilesX.c */; }; - E1B2A42B0E41103700A72928 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; - E1B2A42C0E41103700A72928 /* NSString-FSSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = F59D5DE50320DFF601A8010C /* NSString-FSSpec.m */; }; - E1B2A42D0E41103700A72928 /* PasteboardDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1071703CCC61E01A8010A /* PasteboardDocument.m */; }; - E1B2A42E0E41103700A72928 /* PasteboardWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1071B03CCFAAC01A8010A /* PasteboardWindowController.m */; }; - E1B2A42F0E41103700A72928 /* RKDocumentController.m in Sources */ = {isa = PBXBuildFile; fileRef = F59481AE03D0776C01A8010A /* RKDocumentController.m */; }; - E1B2A4310E41103700A72928 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D35755A04DAEB4300B8225B /* main.m */; }; - E1B2A4320E41103700A72928 /* RKEditorRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D35755D04DAEB6200B8225B /* RKEditorRegistry.m */; }; - E1B2A4330E41103700A72928 /* RKSupportResourceRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D53A9FE04F171DC006651FA /* RKSupportResourceRegistry.m */; }; - E1B2A4350E41103700A72928 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; }; - E1B2A4360E41103700A72928 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; - E1B2A4470E41103800A72928 /* HexWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5EF83C7020C20D701A80001 /* HexWindow.nib */; }; - E1B2A4480E41103800A72928 /* FindSheet.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54E6222021B6A0801A80001 /* FindSheet.nib */; }; - E1B2A4490E41103800A72928 /* PasteMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5606FDD02ACF2F701A8010C /* PasteMenu.nib */; }; - E1B2A44B0E41103800A72928 /* HexEditorDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F5EF83A1020C08E601A80001 /* HexEditorDelegate.m */; }; - E1B2A44C0E41103800A72928 /* HexTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = F5EF83A3020C08E601A80001 /* HexTextView.m */; }; - E1B2A44D0E41103800A72928 /* HexWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5EF83A8020C08E601A80001 /* HexWindowController.m */; }; - E1B2A44E0E41103800A72928 /* FindSheetController.m in Sources */ = {isa = PBXBuildFile; fileRef = F54E6221021B6A0801A80001 /* FindSheetController.m */; }; - E1B2A44F0E41103800A72928 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; - E1B2A4510E41103800A72928 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; }; - E1B2A47A0E41103800A72928 /* NovaTools.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58F6BA9025BDBA701A8010C /* NovaTools.nib */; }; - E1B2A47B0E41103800A72928 /* boom.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5EDC612025BFB7301A8010C /* boom.nib */; }; - E1B2A47C0E41103800A72928 /* char.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5EDC615025BFB7C01A8010C /* char.nib */; }; - E1B2A47D0E41103800A72928 /* colr.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5EDC618025BFB8601A8010C /* colr.nib */; }; - E1B2A47E0E41103800A72928 /* cron.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5EDC61B025BFB8E01A8010C /* cron.nib */; }; - E1B2A47F0E41103800A72928 /* desc.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5EDC61E025BFBB501A8010C /* desc.nib */; }; - E1B2A4800E41103800A72928 /* Resource Types.strings in Resources */ = {isa = PBXBuildFile; fileRef = F543AFEF027C716E01A8010C /* Resource Types.strings */; }; - E1B2A4820E41103800A72928 /* BoomWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58F6B7F025BC3A501A8010C /* BoomWindowController.m */; }; - E1B2A4830E41103800A72928 /* NovaWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58F6B83025BC73001A8010C /* NovaWindowController.m */; }; - E1B2A4840E41103800A72928 /* CharWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58F6B87025BC76D01A8010C /* CharWindowController.m */; }; - E1B2A4850E41103800A72928 /* ColrWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58F6B8B025BC7C001A8010C /* ColrWindowController.m */; }; - E1B2A4860E41103800A72928 /* CronWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58F6B8F025BCF5901A8010C /* CronWindowController.m */; }; - E1B2A4870E41103800A72928 /* DescWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58F6B92025BD97701A8010C /* DescWindowController.m */; }; - E1B2A4880E41103800A72928 /* DescSplitViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F58A18400278355D01A8010C /* DescSplitViewDelegate.m */; }; - E1B2A4890E41103800A72928 /* DataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = F543AFDC027B2A5001A8010C /* DataSource.m */; }; - E1B2A48A0E41103800A72928 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; - E1B2A48B0E41103800A72928 /* NSNumber-Range.m in Sources */ = {isa = PBXBuildFile; fileRef = F59D5DE9032106D201A8010C /* NSNumber-Range.m */; }; - E1B2A48D0E41103800A72928 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; }; - E1B2A48E0E41103800A72928 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; - E1B2A4970E41103800A72928 /* Application.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588840156D6D901000001 /* Application.h */; }; - E1B2A4980E41103800A72928 /* Asynchronous.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588860156D6D901000001 /* Asynchronous.h */; }; - E1B2A4990E41103800A72928 /* DataBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588880156D6D901000001 /* DataBrowser.h */; }; - E1B2A49A0E41103800A72928 /* EditorWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5888A0156D6D901000001 /* EditorWindow.h */; }; - E1B2A49B0E41103800A72928 /* Errors.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5888C0156D6D901000001 /* Errors.h */; }; - E1B2A49C0E41103800A72928 /* Files.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5888E0156D6D901000001 /* Files.h */; }; - E1B2A49D0E41103800A72928 /* FileWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588900156D6D901000001 /* FileWindow.h */; }; - E1B2A49E0E41103800A72928 /* HostCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588920156D6D901000001 /* HostCallbacks.h */; }; - E1B2A49F0E41103800A72928 /* InspectorWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588940156D6D901000001 /* InspectorWindow.h */; }; - E1B2A4A00E41103800A72928 /* PickerWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588960156D6D901000001 /* PickerWindow.h */; }; - E1B2A4A10E41103800A72928 /* PlugObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588980156D6D901000001 /* PlugObject.h */; }; - E1B2A4A20E41103800A72928 /* PlugWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5889A0156D6D901000001 /* PlugWindow.h */; }; - E1B2A4A30E41103800A72928 /* ResourceObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5889C0156D6D901000001 /* ResourceObject.h */; }; - E1B2A4A40E41103800A72928 /* Utility.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5889E0156D6D901000001 /* Utility.h */; }; - E1B2A4A50E41103800A72928 /* WindowObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588A00156D6D901000001 /* WindowObject.h */; }; - E1B2A4A60E41103800A72928 /* Generic.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588820156D6D901000001 /* Generic.h */; }; - E1B2A4A70E41103800A72928 /* ResKnife.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588810156D6D901000001 /* ResKnife.h */; }; - E1B2A4A80E41103800A72928 /* Transfer.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588800156D6D901000001 /* Transfer.h */; }; - E1B2A4AA0E41103800A72928 /* ResKnife.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5B588A60156D6D901000001 /* ResKnife.nib */; }; - E1B2A4AC0E41103800A72928 /* Application.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588850156D6D901000001 /* Application.cpp */; }; - E1B2A4AD0E41103800A72928 /* Asynchronous.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588870156D6D901000001 /* Asynchronous.cpp */; }; - E1B2A4AE0E41103800A72928 /* DataBrowser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588890156D6D901000001 /* DataBrowser.cpp */; }; - E1B2A4AF0E41103800A72928 /* EditorWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5888B0156D6D901000001 /* EditorWindow.cpp */; }; - E1B2A4B00E41103800A72928 /* Errors.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5888D0156D6D901000001 /* Errors.cpp */; }; - E1B2A4B10E41103800A72928 /* Files.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5888F0156D6D901000001 /* Files.cpp */; }; - E1B2A4B20E41103800A72928 /* FileWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588910156D6D901000001 /* FileWindow.cpp */; }; - E1B2A4B30E41103800A72928 /* HostCallbacks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588930156D6D901000001 /* HostCallbacks.cpp */; }; - E1B2A4B40E41103800A72928 /* InspectorWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588950156D6D901000001 /* InspectorWindow.cpp */; }; - E1B2A4B50E41103800A72928 /* PickerWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588970156D6D901000001 /* PickerWindow.cpp */; }; - E1B2A4B60E41103800A72928 /* PlugObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588990156D6D901000001 /* PlugObject.cpp */; }; - E1B2A4B70E41103800A72928 /* PlugWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5889B0156D6D901000001 /* PlugWindow.cpp */; }; - E1B2A4B80E41103800A72928 /* ResourceObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5889D0156D6D901000001 /* ResourceObject.cpp */; }; - E1B2A4B90E41103800A72928 /* Utility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5889F0156D6D901000001 /* Utility.cpp */; }; - E1B2A4BA0E41103800A72928 /* WindowObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588A10156D6D901000001 /* WindowObject.cpp */; }; - E1B2A4BC0E41103800A72928 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; - E1B2A4BE0E41103800A72928 /* ResKnife.r in Rez */ = {isa = PBXBuildFile; fileRef = F5B588A40156D6D901000001 /* ResKnife.r */; }; - E1B2A4BF0E41103800A72928 /* ResKnife.rsrc in Rez */ = {isa = PBXBuildFile; fileRef = F5B588A50156D6D901000001 /* ResKnife.rsrc */; }; - E1B2A4C80E41103900A72928 /* ResKnife.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588810156D6D901000001 /* ResKnife.h */; }; - E1B2A4C90E41103900A72928 /* Generic.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588820156D6D901000001 /* Generic.h */; }; - E1B2A4CA0E41103900A72928 /* Transfer.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588800156D6D901000001 /* Transfer.h */; }; - E1B2A4CB0E41103900A72928 /* Application.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588840156D6D901000001 /* Application.h */; }; - E1B2A4CC0E41103900A72928 /* Asynchronous.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588860156D6D901000001 /* Asynchronous.h */; }; - E1B2A4CD0E41103900A72928 /* DataBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588880156D6D901000001 /* DataBrowser.h */; }; - E1B2A4CE0E41103900A72928 /* EditorWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5888A0156D6D901000001 /* EditorWindow.h */; }; - E1B2A4CF0E41103900A72928 /* Errors.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5888C0156D6D901000001 /* Errors.h */; }; - E1B2A4D00E41103900A72928 /* Files.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5888E0156D6D901000001 /* Files.h */; }; - E1B2A4D10E41103900A72928 /* FileWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588900156D6D901000001 /* FileWindow.h */; }; - E1B2A4D20E41103900A72928 /* HostCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588920156D6D901000001 /* HostCallbacks.h */; }; - E1B2A4D30E41103900A72928 /* InspectorWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588940156D6D901000001 /* InspectorWindow.h */; }; - E1B2A4D40E41103900A72928 /* WindowObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588A00156D6D901000001 /* WindowObject.h */; }; - E1B2A4D50E41103900A72928 /* Utility.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5889E0156D6D901000001 /* Utility.h */; }; - E1B2A4D60E41103900A72928 /* ResourceObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5889C0156D6D901000001 /* ResourceObject.h */; }; - E1B2A4D70E41103900A72928 /* PlugWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5889A0156D6D901000001 /* PlugWindow.h */; }; - E1B2A4D80E41103900A72928 /* PlugObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588980156D6D901000001 /* PlugObject.h */; }; - E1B2A4D90E41103900A72928 /* PickerWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588960156D6D901000001 /* PickerWindow.h */; }; - E1B2A4DB0E41103900A72928 /* Application.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588850156D6D901000001 /* Application.cpp */; }; - E1B2A4DC0E41103900A72928 /* Asynchronous.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588870156D6D901000001 /* Asynchronous.cpp */; }; - E1B2A4DD0E41103900A72928 /* DataBrowser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588890156D6D901000001 /* DataBrowser.cpp */; }; - E1B2A4DE0E41103900A72928 /* EditorWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5888B0156D6D901000001 /* EditorWindow.cpp */; }; - E1B2A4DF0E41103900A72928 /* Errors.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5888D0156D6D901000001 /* Errors.cpp */; }; - E1B2A4E00E41103900A72928 /* Files.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5888F0156D6D901000001 /* Files.cpp */; }; - E1B2A4E10E41103900A72928 /* FileWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588910156D6D901000001 /* FileWindow.cpp */; }; - E1B2A4E20E41103900A72928 /* HostCallbacks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588930156D6D901000001 /* HostCallbacks.cpp */; }; - E1B2A4E30E41103900A72928 /* WindowObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588A10156D6D901000001 /* WindowObject.cpp */; }; - E1B2A4E40E41103900A72928 /* Utility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5889F0156D6D901000001 /* Utility.cpp */; }; - E1B2A4E50E41103900A72928 /* ResourceObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5889D0156D6D901000001 /* ResourceObject.cpp */; }; - E1B2A4E60E41103900A72928 /* PlugWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5889B0156D6D901000001 /* PlugWindow.cpp */; }; - E1B2A4E70E41103900A72928 /* PlugObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588990156D6D901000001 /* PlugObject.cpp */; }; - E1B2A4E80E41103900A72928 /* PickerWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588970156D6D901000001 /* PickerWindow.cpp */; }; - E1B2A4E90E41103900A72928 /* InspectorWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588950156D6D901000001 /* InspectorWindow.cpp */; }; - E1B2A4EB0E41103900A72928 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; - E1B2A4F30E41103900A72928 /* Hex Editor.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588D90156D9D401000001 /* Hex Editor.h */; }; - E1B2A4F40E41103900A72928 /* Events.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588DB0156D9D401000001 /* Events.h */; }; - E1B2A4F50E41103900A72928 /* HexWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588DD0156D9D401000001 /* HexWindow.h */; }; - E1B2A4F60E41103900A72928 /* Initalisation.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588DF0156D9D401000001 /* Initalisation.h */; }; - E1B2A4F70E41103900A72928 /* Utility.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588E10156D9D401000001 /* Utility.h */; }; - E1B2A4F80E41103900A72928 /* HostCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588920156D6D901000001 /* HostCallbacks.h */; }; - E1B2A4FB0E41103900A72928 /* Events.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588DC0156D9D401000001 /* Events.cpp */; }; - E1B2A4FC0E41103900A72928 /* HexWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588DE0156D9D401000001 /* HexWindow.cpp */; }; - E1B2A4FD0E41103900A72928 /* Initalisation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588E00156D9D401000001 /* Initalisation.cpp */; }; - E1B2A4FE0E41103900A72928 /* Utility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588E20156D9D401000001 /* Utility.cpp */; }; - E1B2A5000E41103900A72928 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; - E1B2A50A0E41103900A72928 /* Template Editor.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588F50156DC2201000001 /* Template Editor.h */; }; - E1B2A50B0E41103900A72928 /* TemplateWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588F90156DC2201000001 /* TemplateWindow.h */; }; - E1B2A50C0E41103900A72928 /* HostCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588920156D6D901000001 /* HostCallbacks.h */; }; - E1B2A50F0E41103900A72928 /* TemplateWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588FA0156DC2201000001 /* TemplateWindow.cpp */; }; - E1B2A5110E41103900A72928 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; - E1B2A5130E41103900A72928 /* Template Editor.r in Rez */ = {isa = PBXBuildFile; fileRef = F5B588FB0156DC2201000001 /* Template Editor.r */; }; - E1B2A51B0E41103900A72928 /* Initalisation.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588FF0156DC2201000001 /* Initalisation.h */; }; - E1B2A51C0E41103900A72928 /* Parser.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B589010156DC2201000001 /* Parser.h */; }; - E1B2A51D0E41103900A72928 /* PICT Editor.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588FD0156DC2201000001 /* PICT Editor.h */; }; - E1B2A5200E41103900A72928 /* Initalisation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B589000156DC2201000001 /* Initalisation.cpp */; }; - E1B2A5210E41103900A72928 /* PictWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B589020156DC2201000001 /* PictWindow.cpp */; }; - E1B2A5230E41103900A72928 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; - E1B2A52C0E41103900A72928 /* BoolTemplateField.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE23036C258201A8010A /* BoolTemplateField.h */; }; - E1B2A52D0E41103900A72928 /* DividerTemplateField.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE57036C258301A8010A /* DividerTemplateField.h */; }; - E1B2A52E0E41103900A72928 /* IntegerTemplateField.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE5B036C258301A8010A /* IntegerTemplateField.h */; }; - E1B2A52F0E41103900A72928 /* KHandleStream.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE5D036C258301A8010A /* KHandleStream.h */; }; - E1B2A5300E41103900A72928 /* ListTemplateField.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE5F036C258301A8010A /* ListTemplateField.h */; }; - E1B2A5310E41103900A72928 /* LSTCTemplateField.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE61036C258301A8010A /* LSTCTemplateField.h */; }; - E1B2A5320E41103900A72928 /* StringTemplateField.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE66036C258301A8010A /* StringTemplateField.h */; }; - E1B2A5330E41103900A72928 /* TemplateWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE6E036C258301A8010A /* TemplateWindow.h */; }; - E1B2A5340E41103900A72928 /* HostCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588920156D6D901000001 /* HostCallbacks.h */; }; - E1B2A5360E41103900A72928 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F50DFE58036C258301A8010A /* InfoPlist.strings */; }; - E1B2A5380E41103900A72928 /* BoolTemplateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE22036C258201A8010A /* BoolTemplateField.cpp */; }; - E1B2A5390E41103900A72928 /* DividerTemplateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE56036C258301A8010A /* DividerTemplateField.cpp */; }; - E1B2A53A0E41103900A72928 /* IntegerTemplateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE5A036C258301A8010A /* IntegerTemplateField.cpp */; }; - E1B2A53B0E41103900A72928 /* KHandleStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE5C036C258301A8010A /* KHandleStream.cpp */; }; - E1B2A53C0E41103900A72928 /* ListTemplateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE5E036C258301A8010A /* ListTemplateField.cpp */; }; - E1B2A53D0E41103900A72928 /* LSTCTemplateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE60036C258301A8010A /* LSTCTemplateField.cpp */; }; - E1B2A53E0E41103900A72928 /* StringTemplateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE65036C258301A8010A /* StringTemplateField.cpp */; }; - E1B2A53F0E41103900A72928 /* Templar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE67036C258301A8010A /* Templar.cpp */; }; - E1B2A5400E41103900A72928 /* TemplateWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE6D036C258301A8010A /* TemplateWindow.cpp */; }; - E1B2A5430E41103900A72928 /* Templar.rsrc in Rez */ = {isa = PBXBuildFile; fileRef = F50DFE6C036C258301A8010A /* Templar.rsrc */; }; - E1B2A54F0E41103A00A72928 /* ICONWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = 3D3B99BC04DC16FC0056861E /* ICONWindow.nib */; }; - E1B2A5510E41103A00A72928 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; - E1B2A5520E41103A00A72928 /* ICONWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D3B99B804DC16A30056861E /* ICONWindowController.m */; }; - E1B2A5540E41103A00A72928 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; }; - E1B2A5720E41103A00A72928 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; - E1B2A5800E41103A00A72928 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; }; - E1B2A5920E41103A00A72928 /* Template Editor.plugin in CopyFiles */ = {isa = PBXBuildFile; fileRef = E1B2A5860E41103A00A72928 /* Template Editor.plugin */; }; - E1B2A5930E41103A00A72928 /* Hexadecimal Editor.plugin in CopyFiles */ = {isa = PBXBuildFile; fileRef = E1B2A4570E41103800A72928 /* Hexadecimal Editor.plugin */; }; - E1B2A5950E41103A00A72928 /* libResKnife.dylib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E1B2A4F00E41103900A72928 /* libResKnife.dylib.a */; }; - E1B2A73F0E41218F00A72928 /* FontDocument.nib in Resources */ = {isa = PBXBuildFile; fileRef = E1B2A7350E41218F00A72928 /* FontDocument.nib */; }; - E1B2A7400E41218F00A72928 /* FontWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = E1B2A7370E41218F00A72928 /* FontWindow.nib */; }; - E1B2A7410E41219000A72928 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E1B2A7390E41218F00A72928 /* Localizable.strings */; }; - E1B2A7430E41219000A72928 /* FontWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = E1B2A73D0E41218F00A72928 /* FontWindowController.m */; }; - E1B2A7760E41230E00A72928 /* NGSCategories.m in Sources */ = {isa = PBXBuildFile; fileRef = E1B2A7750E41230E00A72928 /* NGSCategories.m */; }; - E1B2A7770E41230E00A72928 /* NGSCategories.h in Headers */ = {isa = PBXBuildFile; fileRef = E1B2A7740E41230E00A72928 /* NGSCategories.h */; }; - E1B2A7780E41230E00A72928 /* NGSCategories.m in Sources */ = {isa = PBXBuildFile; fileRef = E1B2A7750E41230E00A72928 /* NGSCategories.m */; }; - E1B2A77A0E41230E00A72928 /* NGSCategories.m in Sources */ = {isa = PBXBuildFile; fileRef = E1B2A7750E41230E00A72928 /* NGSCategories.m */; }; - E1B2A77C0E41230E00A72928 /* NGSCategories.m in Sources */ = {isa = PBXBuildFile; fileRef = E1B2A7750E41230E00A72928 /* NGSCategories.m */; }; - E1B2A77E0E41230E00A72928 /* NGSCategories.m in Sources */ = {isa = PBXBuildFile; fileRef = E1B2A7750E41230E00A72928 /* NGSCategories.m */; }; - E1B2A7800E41230E00A72928 /* NGSCategories.m in Sources */ = {isa = PBXBuildFile; fileRef = E1B2A7750E41230E00A72928 /* NGSCategories.m */; }; + 0E85D4AC10A72953004240C0 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3D2EE5E204E5C56F00515930 /* 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 */; }; + E1193685099864AD00A3A6EA /* ElementULNG.h in Headers */ = {isa = PBXBuildFile; fileRef = E119367F099864AD00A3A6EA /* ElementULNG.h */; }; + E1193686099864AD00A3A6EA /* ElementULNG.m in Sources */ = {isa = PBXBuildFile; fileRef = E1193680099864AD00A3A6EA /* ElementULNG.m */; }; + E1193687099864AD00A3A6EA /* ElementUWRD.h in Headers */ = {isa = PBXBuildFile; fileRef = E1193681099864AD00A3A6EA /* ElementUWRD.h */; }; + E1193688099864AD00A3A6EA /* ElementUWRD.m in Sources */ = {isa = PBXBuildFile; fileRef = E1193682099864AD00A3A6EA /* ElementUWRD.m */; }; + E119371B09986D8300A3A6EA /* ElementFIXD.h in Headers */ = {isa = PBXBuildFile; fileRef = E119371909986D8200A3A6EA /* ElementFIXD.h */; }; + E119371C09986D8300A3A6EA /* ElementFIXD.m in Sources */ = {isa = PBXBuildFile; fileRef = E119371A09986D8200A3A6EA /* ElementFIXD.m */; }; + E119376E0998768600A3A6EA /* ElementFRAC.h in Headers */ = {isa = PBXBuildFile; fileRef = E119376C0998768500A3A6EA /* ElementFRAC.h */; }; + E119376F0998768600A3A6EA /* ElementFRAC.m in Sources */ = {isa = PBXBuildFile; fileRef = E119376D0998768500A3A6EA /* ElementFRAC.m */; }; + E119379309987CC400A3A6EA /* ElementULLG.h in Headers */ = {isa = PBXBuildFile; fileRef = E119379109987CC400A3A6EA /* ElementULLG.h */; }; + E119379409987CC400A3A6EA /* ElementULLG.m in Sources */ = {isa = PBXBuildFile; fileRef = E119379209987CC400A3A6EA /* ElementULLG.m */; }; + E119386509991DDD00A3A6EA /* Templates.rsrc in Copy Support Resources */ = {isa = PBXBuildFile; fileRef = E119383D09991C5100A3A6EA /* Templates.rsrc */; }; + E119388D0999296B00A3A6EA /* ElementHEXD.h in Headers */ = {isa = PBXBuildFile; fileRef = E119388B0999296B00A3A6EA /* ElementHEXD.h */; }; + E119388E0999296B00A3A6EA /* ElementHEXD.m in Sources */ = {isa = PBXBuildFile; fileRef = E119388C0999296B00A3A6EA /* ElementHEXD.m */; }; + E1193949099940FD00A3A6EA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = E1193947099940FD00A3A6EA /* InfoPlist.strings */; }; + E13F7F9908F05B5C00E2A5CB /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = E13F7F9808F05B5C00E2A5CB /* Info.plist */; }; + E13F837F08F13A4C00E2A5CB /* Font Editor.plugin in Copy Plugins */ = {isa = PBXBuildFile; fileRef = E18BF78B069FF23700F076B8 /* Font Editor.plugin */; }; + E13F846A08F18FBE00E2A5CB /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = E13F846908F18FBE00E2A5CB /* Info.plist */; }; + E14AC2760996BF1700D293E5 /* ElementDLLG.h in Headers */ = {isa = PBXBuildFile; fileRef = E14AC2740996BF1700D293E5 /* ElementDLLG.h */; }; + E14AC2770996BF1700D293E5 /* ElementDLLG.m in Sources */ = {isa = PBXBuildFile; fileRef = E14AC2750996BF1700D293E5 /* ElementDLLG.m */; }; + E14AC453099702F400D293E5 /* ElementFBYT.h in Headers */ = {isa = PBXBuildFile; fileRef = E14AC451099702F300D293E5 /* ElementFBYT.h */; }; + E14AC454099702F400D293E5 /* ElementFBYT.m in Sources */ = {isa = PBXBuildFile; fileRef = E14AC452099702F400D293E5 /* ElementFBYT.m */; }; + E15CFD6E099995D1004929B6 /* Templates for sfnt tables.rsrc in Copy Support Resources */ = {isa = PBXBuildFile; fileRef = E15CFD6D099995D1004929B6 /* Templates for sfnt tables.rsrc */; }; + E15CFF82099BECAF004929B6 /* ElementDATE.h in Headers */ = {isa = PBXBuildFile; fileRef = E15CFF80099BECAE004929B6 /* ElementDATE.h */; }; + E15CFF83099BECAF004929B6 /* ElementDATE.m in Sources */ = {isa = PBXBuildFile; fileRef = E15CFF81099BECAF004929B6 /* ElementDATE.m */; }; + E18BF53D069FEA1300F076B8 /* ResKnifeResourceProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F5CDEBAB01FC893201A80001 /* ResKnifeResourceProtocol.h */; }; + E18BF53E069FEA1300F076B8 /* ResKnifePluginProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F5502C4001C579FF01C57124 /* ResKnifePluginProtocol.h */; }; + E18BF53F069FEA1300F076B8 /* ApplicationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5881D0156D40B01000001 /* ApplicationDelegate.h */; }; + E18BF540069FEA1300F076B8 /* AttributesFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5881F0156D40B01000001 /* AttributesFormatter.h */; }; + E18BF541069FEA1300F076B8 /* CreateResourceSheetController.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588210156D40B01000001 /* CreateResourceSheetController.h */; }; + E18BF542069FEA1300F076B8 /* InfoWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588250156D40B01000001 /* InfoWindowController.h */; }; + E18BF543069FEA1300F076B8 /* OutlineViewDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588290156D40B01000001 /* OutlineViewDelegate.h */; }; + E18BF544069FEA1300F076B8 /* PrefsWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5882B0156D40B01000001 /* PrefsWindowController.h */; }; + E18BF545069FEA1300F076B8 /* Resource.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5882D0156D40B01000001 /* Resource.h */; }; + E18BF546069FEA1300F076B8 /* ResourceDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5882F0156D40B01000001 /* ResourceDataSource.h */; }; + E18BF547069FEA1300F076B8 /* ResourceDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588310156D40B01000001 /* ResourceDocument.h */; }; + E18BF548069FEA1300F076B8 /* ResourceNameCell.h in Headers */ = {isa = PBXBuildFile; fileRef = F577A900021215C801A80001 /* ResourceNameCell.h */; }; + E18BF549069FEA1300F076B8 /* SizeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588330156D40B01000001 /* SizeFormatter.h */; }; + E18BF54A069FEA1300F076B8 /* NSOutlineView-SelectedItems.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D0CBCF022744C701A80001 /* NSOutlineView-SelectedItems.h */; }; + E18BF54B069FEA1300F076B8 /* MoreFilesX.h in Headers */ = {isa = PBXBuildFile; fileRef = F5DF1BF10254AD8801A80001 /* MoreFilesX.h */; }; + E18BF54C069FEA1300F076B8 /* NSString-FSSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = F59D5DE40320DFF601A8010C /* NSString-FSSpec.h */; }; + E18BF54D069FEA1300F076B8 /* PasteboardDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F1071603CCC61E01A8010A /* PasteboardDocument.h */; }; + E18BF54E069FEA1300F076B8 /* PasteboardWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F1071A03CCFAAC01A8010A /* PasteboardWindowController.h */; }; + E18BF54F069FEA1300F076B8 /* RKDocumentController.h in Headers */ = {isa = PBXBuildFile; fileRef = F59481AD03D0776C01A8010A /* RKDocumentController.h */; }; + E18BF550069FEA1300F076B8 /* OpenPanelDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F59481B103D077DC01A8010A /* OpenPanelDelegate.h */; }; + E18BF551069FEA1300F076B8 /* RKEditorRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D35755C04DAEB6200B8225B /* RKEditorRegistry.h */; }; + E18BF552069FEA1300F076B8 /* RKSupportResourceRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D53A9FD04F171DC006651FA /* RKSupportResourceRegistry.h */; }; + E18BF554069FEA1300F076B8 /* AboutPanel.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5B588360156D40B01000001 /* AboutPanel.nib */; }; + E18BF555069FEA1300F076B8 /* Application.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5B588380156D40B01000001 /* Application.nib */; }; + E18BF556069FEA1300F076B8 /* InfoWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5B5883A0156D40B01000001 /* InfoWindow.nib */; }; + E18BF557069FEA1300F076B8 /* PrefsWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5B5883E0156D40B01000001 /* PrefsWindow.nib */; }; + E18BF558069FEA1300F076B8 /* ResourceDocument.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5B588400156D40B01000001 /* ResourceDocument.nib */; }; + E18BF559069FEA1300F076B8 /* CreateResourceSheet.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54E622B021D192201A80001 /* CreateResourceSheet.nib */; }; + E18BF55A069FEA1300F076B8 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F5B588420156D40B01000001 /* InfoPlist.strings */; }; + E18BF55B069FEA1300F076B8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F5B588440156D40B01000001 /* Localizable.strings */; }; + E18BF55C069FEA1300F076B8 /* defaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = F5730B930159528A01000001 /* defaults.plist */; }; + E18BF55D069FEA1300F076B8 /* ResKnife.icns in Resources */ = {isa = PBXBuildFile; fileRef = F5B588460156D40B01000001 /* ResKnife.icns */; }; + E18BF55E069FEA1300F076B8 /* Resource file.icns in Resources */ = {isa = PBXBuildFile; fileRef = F5B588470156D40B01000001 /* Resource file.icns */; }; + E18BF55F069FEA1300F076B8 /* Icon file.icns in Resources */ = {isa = PBXBuildFile; fileRef = F5B588480156D40B01000001 /* Icon file.icns */; }; + E18BF560069FEA1300F076B8 /* Create.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F577A8FA0211E4D401A80001 /* Create.tiff */; }; + E18BF561069FEA1300F076B8 /* Delete.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F577A904021220D601A80001 /* Delete.tiff */; }; + E18BF562069FEA1300F076B8 /* Edit.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F577A8FB0211E4D401A80001 /* Edit.tiff */; }; + E18BF563069FEA1300F076B8 /* Edit Hex.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F577A8FC0211E4D401A80001 /* Edit Hex.tiff */; }; + E18BF564069FEA1300F076B8 /* Save.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F577A8F30211CFA701A80001 /* Save.tiff */; }; + E18BF565069FEA1300F076B8 /* Show Info.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F577A8F80211DC1E01A80001 /* Show Info.tiff */; }; + E18BF566069FEA1300F076B8 /* ResKnife.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = F5041736036BD60801A8010A /* ResKnife.scriptSuite */; }; + E18BF567069FEA1300F076B8 /* ResKnife.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = F50DFE16036C203F01A8010A /* ResKnife.scriptTerminology */; }; + E18BF568069FEA1300F076B8 /* Export.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3D35756004DAEB7F00B8225B /* Export.tiff */; }; + E18BF569069FEA1300F076B8 /* Resource Type Mappings.strings in Resources */ = {isa = PBXBuildFile; fileRef = E196FEE10551AF9600FE7E58 /* Resource Type Mappings.strings */; }; + E18BF570069FEA1300F076B8 /* ApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B5881E0156D40B01000001 /* ApplicationDelegate.m */; }; + E18BF571069FEA1300F076B8 /* AttributesFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588200156D40B01000001 /* AttributesFormatter.m */; }; + E18BF572069FEA1300F076B8 /* CreateResourceSheetController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588220156D40B01000001 /* CreateResourceSheetController.m */; }; + E18BF573069FEA1300F076B8 /* InfoWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B588260156D40B01000001 /* InfoWindowController.m */; }; + 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 */; }; + 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 */; }; + E18BF57C069FEA1300F076B8 /* MoreFilesX.c in Sources */ = {isa = PBXBuildFile; fileRef = F5DF1BF00254AD8801A80001 /* MoreFilesX.c */; }; + E18BF57D069FEA1300F076B8 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; + E18BF57E069FEA1300F076B8 /* NSString-FSSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = F59D5DE50320DFF601A8010C /* NSString-FSSpec.m */; }; + E18BF57F069FEA1300F076B8 /* PasteboardDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1071703CCC61E01A8010A /* PasteboardDocument.m */; }; + E18BF580069FEA1300F076B8 /* PasteboardWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1071B03CCFAAC01A8010A /* PasteboardWindowController.m */; }; + E18BF581069FEA1300F076B8 /* RKDocumentController.m in Sources */ = {isa = PBXBuildFile; fileRef = F59481AE03D0776C01A8010A /* RKDocumentController.m */; }; + 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 */; }; + 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 */; }; + E18BF591069FEA1400F076B8 /* ResKnifePluginProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F5502C4001C579FF01C57124 /* ResKnifePluginProtocol.h */; }; + E18BF592069FEA1400F076B8 /* HexEditorDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5EF83A0020C08E601A80001 /* HexEditorDelegate.h */; }; + E18BF593069FEA1400F076B8 /* HexTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = F5EF83A2020C08E601A80001 /* HexTextView.h */; }; + E18BF594069FEA1400F076B8 /* HexWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F5EF83A7020C08E601A80001 /* HexWindowController.h */; }; + E18BF595069FEA1400F076B8 /* FindSheetController.h in Headers */ = {isa = PBXBuildFile; fileRef = F54E6220021B6A0801A80001 /* FindSheetController.h */; }; + E18BF596069FEA1400F076B8 /* NSData-HexRepresentation.h in Headers */ = {isa = PBXBuildFile; fileRef = E1C5E08B055D98790001A04A /* NSData-HexRepresentation.h */; }; + E18BF598069FEA1400F076B8 /* HexWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5EF83C7020C20D701A80001 /* HexWindow.nib */; }; + E18BF599069FEA1400F076B8 /* FindSheet.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54E6222021B6A0801A80001 /* FindSheet.nib */; }; + E18BF59B069FEA1400F076B8 /* HexEditorDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F5EF83A1020C08E601A80001 /* HexEditorDelegate.m */; }; + E18BF59C069FEA1400F076B8 /* HexTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = F5EF83A3020C08E601A80001 /* HexTextView.m */; }; + E18BF59D069FEA1400F076B8 /* HexWindowController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F5EF83A8020C08E601A80001 /* HexWindowController.mm */; }; + E18BF59E069FEA1400F076B8 /* FindSheetController.m in Sources */ = {isa = PBXBuildFile; fileRef = F54E6221021B6A0801A80001 /* FindSheetController.m */; }; + E18BF59F069FEA1400F076B8 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; + E18BF5A0069FEA1400F076B8 /* NSData-HexRepresentation.m in Sources */ = {isa = PBXBuildFile; fileRef = E1C5E08F055D98D50001A04A /* NSData-HexRepresentation.m */; }; + E18BF5A2069FEA1400F076B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; }; + E18BF5A9069FEA1400F076B8 /* NGSTemplateWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F535443E0226752901A80001 /* NGSTemplateWindowController.h */; }; + E18BF5AA069FEA1400F076B8 /* NGSElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F535444D0226B5F501A80001 /* NGSElement.h */; }; + E18BF5AC069FEA1400F076B8 /* TemplateWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5D0CBD302278F8B01A80001 /* TemplateWindow.nib */; }; + E18BF5AE069FEA1400F076B8 /* NGSTemplateWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F535443F0226752901A80001 /* NGSTemplateWindowController.m */; }; + E18BF5AF069FEA1400F076B8 /* NGSElement.m in Sources */ = {isa = PBXBuildFile; fileRef = F535444E0226B5F501A80001 /* NGSElement.m */; }; + E18BF5B0069FEA1400F076B8 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; + E18BF5B2069FEA1400F076B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; }; + E18BF5B9069FEA1400F076B8 /* HostCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588920156D6D901000001 /* HostCallbacks.h */; }; + E18BF5BA069FEA1400F076B8 /* BoomWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F58F6B7E025BC3A501A8010C /* BoomWindowController.h */; }; + E18BF5BB069FEA1400F076B8 /* NovaWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F58F6B82025BC73001A8010C /* NovaWindowController.h */; }; + E18BF5BC069FEA1400F076B8 /* CharWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F58F6B86025BC76D01A8010C /* CharWindowController.h */; }; + E18BF5BD069FEA1400F076B8 /* ColrWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F58F6B8A025BC7C001A8010C /* ColrWindowController.h */; }; + E18BF5BE069FEA1400F076B8 /* CronWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F58F6B8E025BCF5901A8010C /* CronWindowController.h */; }; + E18BF5BF069FEA1400F076B8 /* DescWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F58F6B93025BD97701A8010C /* DescWindowController.h */; }; + E18BF5C0069FEA1400F076B8 /* ResKnifeResourceProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F5CDEBAB01FC893201A80001 /* ResKnifeResourceProtocol.h */; }; + E18BF5C1069FEA1400F076B8 /* ResKnifePluginProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F5502C4001C579FF01C57124 /* ResKnifePluginProtocol.h */; }; + E18BF5C2069FEA1400F076B8 /* DescSplitViewDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F58A18410278355D01A8010C /* DescSplitViewDelegate.h */; }; + E18BF5C3069FEA1400F076B8 /* DataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = F543AFDB027B2A5001A8010C /* DataSource.h */; }; + E18BF5C4069FEA1400F076B8 /* Structs.h in Headers */ = {isa = PBXBuildFile; fileRef = F5C9ECD8027F562201A8010C /* Structs.h */; }; + E18BF5C5069FEA1400F076B8 /* NSNumber-Range.h in Headers */ = {isa = PBXBuildFile; fileRef = F59D5DE8032106D201A8010C /* NSNumber-Range.h */; }; + E18BF5C6069FEA1400F076B8 /* MisnWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = E19FB514054E918800A80202 /* MisnWindowController.h */; }; + E18BF5C7069FEA1400F076B8 /* ShipWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = E19FB518054E919200A80202 /* ShipWindowController.h */; }; + E18BF5C9069FEA1400F076B8 /* NovaTools.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58F6BA9025BDBA701A8010C /* NovaTools.nib */; }; + E18BF5CA069FEA1400F076B8 /* boom.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5EDC612025BFB7301A8010C /* boom.nib */; }; + E18BF5CB069FEA1400F076B8 /* char.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5EDC615025BFB7C01A8010C /* char.nib */; }; + E18BF5CC069FEA1400F076B8 /* colr.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5EDC618025BFB8601A8010C /* colr.nib */; }; + E18BF5CD069FEA1400F076B8 /* cron.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5EDC61B025BFB8E01A8010C /* cron.nib */; }; + E18BF5CE069FEA1400F076B8 /* desc.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5EDC61E025BFBB501A8010C /* desc.nib */; }; + E18BF5CF069FEA1400F076B8 /* Resource Types.strings in Resources */ = {isa = PBXBuildFile; fileRef = F543AFEF027C716E01A8010C /* Resource Types.strings */; }; + E18BF5D0069FEA1400F076B8 /* misn.nib in Resources */ = {isa = PBXBuildFile; fileRef = E19FB51C054E919F00A80202 /* misn.nib */; }; + E18BF5D1069FEA1400F076B8 /* ship.nib in Resources */ = {isa = PBXBuildFile; fileRef = E19FB51F054E91AA00A80202 /* ship.nib */; }; + E18BF5D3069FEA1400F076B8 /* BoomWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58F6B7F025BC3A501A8010C /* BoomWindowController.m */; }; + E18BF5D4069FEA1400F076B8 /* NovaWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58F6B83025BC73001A8010C /* NovaWindowController.m */; }; + E18BF5D5069FEA1400F076B8 /* CharWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58F6B87025BC76D01A8010C /* CharWindowController.m */; }; + E18BF5D6069FEA1400F076B8 /* ColrWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58F6B8B025BC7C001A8010C /* ColrWindowController.m */; }; + E18BF5D7069FEA1400F076B8 /* CronWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58F6B8F025BCF5901A8010C /* CronWindowController.m */; }; + E18BF5D8069FEA1400F076B8 /* DescWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58F6B92025BD97701A8010C /* DescWindowController.m */; }; + E18BF5D9069FEA1400F076B8 /* DescSplitViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F58A18400278355D01A8010C /* DescSplitViewDelegate.m */; }; + E18BF5DA069FEA1400F076B8 /* DataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = F543AFDC027B2A5001A8010C /* DataSource.m */; }; + E18BF5DB069FEA1400F076B8 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; + E18BF5DC069FEA1400F076B8 /* NSNumber-Range.m in Sources */ = {isa = PBXBuildFile; fileRef = F59D5DE9032106D201A8010C /* NSNumber-Range.m */; }; + E18BF5DD069FEA1400F076B8 /* MisnWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = E19FB515054E918800A80202 /* MisnWindowController.m */; }; + E18BF5DE069FEA1400F076B8 /* ShipWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = E19FB519054E919200A80202 /* ShipWindowController.m */; }; + E18BF5E0069FEA1400F076B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; }; + E18BF5E1069FEA1400F076B8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; + E18BF5E8069FEA1500F076B8 /* Application.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588840156D6D901000001 /* Application.h */; }; + E18BF5E9069FEA1500F076B8 /* Asynchronous.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588860156D6D901000001 /* Asynchronous.h */; }; + E18BF5EA069FEA1500F076B8 /* DataBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588880156D6D901000001 /* DataBrowser.h */; }; + E18BF5EB069FEA1500F076B8 /* EditorWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5888A0156D6D901000001 /* EditorWindow.h */; }; + E18BF5EC069FEA1500F076B8 /* Errors.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5888C0156D6D901000001 /* Errors.h */; }; + E18BF5ED069FEA1500F076B8 /* Files.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5888E0156D6D901000001 /* Files.h */; }; + E18BF5EE069FEA1500F076B8 /* FileWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588900156D6D901000001 /* FileWindow.h */; }; + E18BF5EF069FEA1500F076B8 /* HostCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588920156D6D901000001 /* HostCallbacks.h */; }; + E18BF5F0069FEA1500F076B8 /* InspectorWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588940156D6D901000001 /* InspectorWindow.h */; }; + E18BF5F1069FEA1500F076B8 /* PickerWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588960156D6D901000001 /* PickerWindow.h */; }; + E18BF5F2069FEA1500F076B8 /* PlugObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588980156D6D901000001 /* PlugObject.h */; }; + E18BF5F3069FEA1500F076B8 /* PlugWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5889A0156D6D901000001 /* PlugWindow.h */; }; + E18BF5F4069FEA1500F076B8 /* ResourceObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5889C0156D6D901000001 /* ResourceObject.h */; }; + E18BF5F5069FEA1500F076B8 /* Utility.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5889E0156D6D901000001 /* Utility.h */; }; + E18BF5F6069FEA1500F076B8 /* WindowObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588A00156D6D901000001 /* WindowObject.h */; }; + E18BF5F7069FEA1500F076B8 /* Generic.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588820156D6D901000001 /* Generic.h */; }; + E18BF5F8069FEA1500F076B8 /* ResKnife.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588810156D6D901000001 /* ResKnife.h */; }; + E18BF5F9069FEA1500F076B8 /* Transfer.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588800156D6D901000001 /* Transfer.h */; }; + E18BF5FB069FEA1500F076B8 /* ResKnife.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5B588A60156D6D901000001 /* ResKnife.nib */; }; + E18BF5FD069FEA1500F076B8 /* Application.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588850156D6D901000001 /* Application.cpp */; }; + E18BF5FE069FEA1500F076B8 /* Asynchronous.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588870156D6D901000001 /* Asynchronous.cpp */; }; + E18BF5FF069FEA1500F076B8 /* DataBrowser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588890156D6D901000001 /* DataBrowser.cpp */; }; + E18BF600069FEA1500F076B8 /* EditorWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5888B0156D6D901000001 /* EditorWindow.cpp */; }; + E18BF601069FEA1500F076B8 /* Errors.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5888D0156D6D901000001 /* Errors.cpp */; }; + E18BF602069FEA1500F076B8 /* Files.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5888F0156D6D901000001 /* Files.cpp */; }; + E18BF603069FEA1500F076B8 /* FileWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588910156D6D901000001 /* FileWindow.cpp */; }; + E18BF604069FEA1500F076B8 /* HostCallbacks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588930156D6D901000001 /* HostCallbacks.cpp */; }; + E18BF605069FEA1500F076B8 /* InspectorWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588950156D6D901000001 /* InspectorWindow.cpp */; }; + E18BF606069FEA1500F076B8 /* PickerWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588970156D6D901000001 /* PickerWindow.cpp */; }; + E18BF607069FEA1500F076B8 /* PlugObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588990156D6D901000001 /* PlugObject.cpp */; }; + E18BF608069FEA1500F076B8 /* PlugWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5889B0156D6D901000001 /* PlugWindow.cpp */; }; + E18BF609069FEA1500F076B8 /* ResourceObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5889D0156D6D901000001 /* ResourceObject.cpp */; }; + E18BF60A069FEA1500F076B8 /* Utility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5889F0156D6D901000001 /* Utility.cpp */; }; + E18BF60B069FEA1500F076B8 /* WindowObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588A10156D6D901000001 /* WindowObject.cpp */; }; + E18BF60D069FEA1500F076B8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; + E18BF60F069FEA1500F076B8 /* ResKnife.r in Rez */ = {isa = PBXBuildFile; fileRef = F5B588A40156D6D901000001 /* ResKnife.r */; }; + E18BF610069FEA1500F076B8 /* ResKnife.rsrc in Rez */ = {isa = PBXBuildFile; fileRef = F5B588A50156D6D901000001 /* ResKnife.rsrc */; }; + E18BF617069FEA1500F076B8 /* ResKnife.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588810156D6D901000001 /* ResKnife.h */; }; + E18BF618069FEA1500F076B8 /* Generic.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588820156D6D901000001 /* Generic.h */; }; + E18BF619069FEA1500F076B8 /* Transfer.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588800156D6D901000001 /* Transfer.h */; }; + E18BF61A069FEA1500F076B8 /* Application.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588840156D6D901000001 /* Application.h */; }; + E18BF61B069FEA1500F076B8 /* Asynchronous.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588860156D6D901000001 /* Asynchronous.h */; }; + E18BF61C069FEA1500F076B8 /* DataBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588880156D6D901000001 /* DataBrowser.h */; }; + E18BF61D069FEA1500F076B8 /* EditorWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5888A0156D6D901000001 /* EditorWindow.h */; }; + E18BF61E069FEA1500F076B8 /* Errors.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5888C0156D6D901000001 /* Errors.h */; }; + E18BF61F069FEA1500F076B8 /* Files.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5888E0156D6D901000001 /* Files.h */; }; + E18BF620069FEA1500F076B8 /* FileWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588900156D6D901000001 /* FileWindow.h */; }; + E18BF621069FEA1500F076B8 /* HostCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588920156D6D901000001 /* HostCallbacks.h */; }; + E18BF622069FEA1500F076B8 /* InspectorWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588940156D6D901000001 /* InspectorWindow.h */; }; + E18BF623069FEA1500F076B8 /* WindowObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588A00156D6D901000001 /* WindowObject.h */; }; + E18BF624069FEA1500F076B8 /* Utility.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5889E0156D6D901000001 /* Utility.h */; }; + E18BF625069FEA1500F076B8 /* ResourceObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5889C0156D6D901000001 /* ResourceObject.h */; }; + E18BF626069FEA1500F076B8 /* PlugWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B5889A0156D6D901000001 /* PlugWindow.h */; }; + E18BF627069FEA1500F076B8 /* PlugObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588980156D6D901000001 /* PlugObject.h */; }; + E18BF628069FEA1500F076B8 /* PickerWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588960156D6D901000001 /* PickerWindow.h */; }; + E18BF62A069FEA1500F076B8 /* Application.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588850156D6D901000001 /* Application.cpp */; }; + E18BF62B069FEA1500F076B8 /* Asynchronous.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588870156D6D901000001 /* Asynchronous.cpp */; }; + E18BF62C069FEA1500F076B8 /* DataBrowser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588890156D6D901000001 /* DataBrowser.cpp */; }; + E18BF62D069FEA1500F076B8 /* EditorWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5888B0156D6D901000001 /* EditorWindow.cpp */; }; + E18BF62E069FEA1500F076B8 /* Errors.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5888D0156D6D901000001 /* Errors.cpp */; }; + E18BF62F069FEA1500F076B8 /* Files.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5888F0156D6D901000001 /* Files.cpp */; }; + E18BF630069FEA1500F076B8 /* FileWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588910156D6D901000001 /* FileWindow.cpp */; }; + E18BF631069FEA1500F076B8 /* HostCallbacks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588930156D6D901000001 /* HostCallbacks.cpp */; }; + E18BF632069FEA1500F076B8 /* WindowObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588A10156D6D901000001 /* WindowObject.cpp */; }; + E18BF633069FEA1500F076B8 /* Utility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5889F0156D6D901000001 /* Utility.cpp */; }; + E18BF634069FEA1500F076B8 /* ResourceObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5889D0156D6D901000001 /* ResourceObject.cpp */; }; + E18BF635069FEA1500F076B8 /* PlugWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B5889B0156D6D901000001 /* PlugWindow.cpp */; }; + E18BF636069FEA1500F076B8 /* PlugObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588990156D6D901000001 /* PlugObject.cpp */; }; + E18BF637069FEA1500F076B8 /* PickerWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588970156D6D901000001 /* PickerWindow.cpp */; }; + E18BF638069FEA1500F076B8 /* InspectorWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588950156D6D901000001 /* InspectorWindow.cpp */; }; + E18BF63A069FEA1500F076B8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; + E18BF640069FEA1600F076B8 /* Hex Editor.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588D90156D9D401000001 /* Hex Editor.h */; }; + E18BF641069FEA1600F076B8 /* Events.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588DB0156D9D401000001 /* Events.h */; }; + E18BF642069FEA1600F076B8 /* HexWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588DD0156D9D401000001 /* HexWindow.h */; }; + E18BF643069FEA1600F076B8 /* Initalisation.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588DF0156D9D401000001 /* Initalisation.h */; }; + E18BF644069FEA1600F076B8 /* Utility.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588E10156D9D401000001 /* Utility.h */; }; + E18BF645069FEA1600F076B8 /* HostCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588920156D6D901000001 /* HostCallbacks.h */; }; + E18BF648069FEA1600F076B8 /* Events.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588DC0156D9D401000001 /* Events.cpp */; }; + E18BF649069FEA1600F076B8 /* HexWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588DE0156D9D401000001 /* HexWindow.cpp */; }; + E18BF64A069FEA1600F076B8 /* Initalisation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588E00156D9D401000001 /* Initalisation.cpp */; }; + E18BF64B069FEA1600F076B8 /* Utility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588E20156D9D401000001 /* Utility.cpp */; }; + E18BF64D069FEA1600F076B8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; + E18BF655069FEA1600F076B8 /* Template Editor.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588F50156DC2201000001 /* Template Editor.h */; }; + E18BF656069FEA1600F076B8 /* TemplateWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588F90156DC2201000001 /* TemplateWindow.h */; }; + E18BF657069FEA1600F076B8 /* HostCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588920156D6D901000001 /* HostCallbacks.h */; }; + E18BF65A069FEA1600F076B8 /* TemplateWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B588FA0156DC2201000001 /* TemplateWindow.cpp */; }; + E18BF65C069FEA1600F076B8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; + E18BF65E069FEA1600F076B8 /* Template Editor.r in Rez */ = {isa = PBXBuildFile; fileRef = F5B588FB0156DC2201000001 /* Template Editor.r */; }; + E18BF664069FEA1700F076B8 /* Initalisation.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588FF0156DC2201000001 /* Initalisation.h */; }; + E18BF665069FEA1700F076B8 /* Parser.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B589010156DC2201000001 /* Parser.h */; }; + E18BF666069FEA1700F076B8 /* PICT Editor.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588FD0156DC2201000001 /* PICT Editor.h */; }; + E18BF669069FEA1700F076B8 /* Initalisation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B589000156DC2201000001 /* Initalisation.cpp */; }; + E18BF66A069FEA1700F076B8 /* PictWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5B589020156DC2201000001 /* PictWindow.cpp */; }; + E18BF66C069FEA1700F076B8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; + E18BF673069FEA1700F076B8 /* BoolTemplateField.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE23036C258201A8010A /* BoolTemplateField.h */; }; + E18BF674069FEA1700F076B8 /* DividerTemplateField.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE57036C258301A8010A /* DividerTemplateField.h */; }; + E18BF675069FEA1700F076B8 /* IntegerTemplateField.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE5B036C258301A8010A /* IntegerTemplateField.h */; }; + E18BF676069FEA1700F076B8 /* KHandleStream.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE5D036C258301A8010A /* KHandleStream.h */; }; + E18BF677069FEA1700F076B8 /* ListTemplateField.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE5F036C258301A8010A /* ListTemplateField.h */; }; + E18BF678069FEA1700F076B8 /* LSTCTemplateField.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE61036C258301A8010A /* LSTCTemplateField.h */; }; + E18BF679069FEA1700F076B8 /* StringTemplateField.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE66036C258301A8010A /* StringTemplateField.h */; }; + E18BF67A069FEA1700F076B8 /* TemplateWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F50DFE6E036C258301A8010A /* TemplateWindow.h */; }; + E18BF67B069FEA1700F076B8 /* HostCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B588920156D6D901000001 /* HostCallbacks.h */; }; + E18BF67D069FEA1700F076B8 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F50DFE58036C258301A8010A /* InfoPlist.strings */; }; + E18BF67F069FEA1700F076B8 /* BoolTemplateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE22036C258201A8010A /* BoolTemplateField.cpp */; }; + E18BF680069FEA1700F076B8 /* DividerTemplateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE56036C258301A8010A /* DividerTemplateField.cpp */; }; + E18BF681069FEA1700F076B8 /* IntegerTemplateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE5A036C258301A8010A /* IntegerTemplateField.cpp */; }; + E18BF682069FEA1700F076B8 /* KHandleStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE5C036C258301A8010A /* KHandleStream.cpp */; }; + E18BF683069FEA1700F076B8 /* ListTemplateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE5E036C258301A8010A /* ListTemplateField.cpp */; }; + E18BF684069FEA1700F076B8 /* LSTCTemplateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE60036C258301A8010A /* LSTCTemplateField.cpp */; }; + E18BF685069FEA1700F076B8 /* StringTemplateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE65036C258301A8010A /* StringTemplateField.cpp */; }; + E18BF686069FEA1700F076B8 /* Templar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE67036C258301A8010A /* Templar.cpp */; }; + E18BF687069FEA1700F076B8 /* TemplateWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50DFE6D036C258301A8010A /* TemplateWindow.cpp */; }; + E18BF68A069FEA1700F076B8 /* Templar.rsrc in Rez */ = {isa = PBXBuildFile; fileRef = F50DFE6C036C258301A8010A /* Templar.rsrc */; }; + E18BF690069FEA1800F076B8 /* ResKnifePluginProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F5502C4001C579FF01C57124 /* ResKnifePluginProtocol.h */; }; + E18BF691069FEA1800F076B8 /* ResKnifeResourceProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F5CDEBAB01FC893201A80001 /* ResKnifeResourceProtocol.h */; }; + E18BF692069FEA1800F076B8 /* ICONWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D3B99B904DC16A30056861E /* ICONWindowController.h */; }; + E18BF694069FEA1800F076B8 /* ICONWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = 3D3B99BC04DC16FC0056861E /* ICONWindow.nib */; }; + E18BF696069FEA1800F076B8 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; + E18BF697069FEA1800F076B8 /* ICONWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D3B99B804DC16A30056861E /* ICONWindowController.m */; }; + E18BF699069FEA1800F076B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; }; + E18BF6A0069FEA1800F076B8 /* TemplateWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0B38B204DEF41E005AED5E /* TemplateWindowController.h */; }; + E18BF6A1069FEA1800F076B8 /* ResKnifePluginProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F5502C4001C579FF01C57124 /* ResKnifePluginProtocol.h */; }; + E18BF6A2069FEA1800F076B8 /* ResKnifeResourceProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F5CDEBAB01FC893201A80001 /* ResKnifeResourceProtocol.h */; }; + E18BF6A3069FEA1800F076B8 /* Element.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0933A604DEFEE600DD74B1 /* Element.h */; }; + E18BF6A5069FEA1800F076B8 /* TemplateStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0933BE04DF151C00DD74B1 /* TemplateStream.h */; }; + E18BF6A6069FEA1800F076B8 /* ElementLSTB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0933C404DF1C0800DD74B1 /* ElementLSTB.h */; }; + E18BF6A8069FEA1800F076B8 /* ElementPSTR.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0933E704DF317D00DD74B1 /* ElementPSTR.h */; }; + E18BF6A9069FEA1800F076B8 /* ElementDWRD.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0933EF04DF381900DD74B1 /* ElementDWRD.h */; }; + E18BF6AA069FEA1800F076B8 /* ElementLSTE.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0933F604DFE80500DD74B1 /* ElementLSTE.h */; }; + E18BF6AB069FEA1800F076B8 /* ElementDLNG.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D4737B404E872DB00AF65FE /* ElementDLNG.h */; }; + E18BF6AC069FEA1800F076B8 /* ElementDBYT.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D4737B804E873F300AF65FE /* ElementDBYT.h */; }; + E18BF6AD069FEA1800F076B8 /* ElementOCNT.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D50046F04EF040900F3B64D /* ElementOCNT.h */; }; + E18BF6AE069FEA1800F076B8 /* ElementLSTC.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D50047404EF122000F3B64D /* ElementLSTC.h */; }; + E18BF6B0069FEA1800F076B8 /* TemplateWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = 3D0B38B504DEF465005AED5E /* TemplateWindow.nib */; }; + E18BF6B4069FEA1800F076B8 /* TemplateWindowController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3D0B38B304DEF41E005AED5E /* TemplateWindowController.mm */; }; + E18BF6B5069FEA1800F076B8 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; + E18BF6B6069FEA1800F076B8 /* Element.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D0933A704DEFEE600DD74B1 /* Element.m */; }; + E18BF6B8069FEA1800F076B8 /* TemplateStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D0933BF04DF151C00DD74B1 /* TemplateStream.m */; }; + E18BF6B9069FEA1800F076B8 /* ElementLSTB.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3D0933C504DF1C0800DD74B1 /* ElementLSTB.mm */; }; + E18BF6BB069FEA1800F076B8 /* ElementPSTR.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D0933E804DF317D00DD74B1 /* ElementPSTR.m */; }; + E18BF6BC069FEA1800F076B8 /* ElementDWRD.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D0933EE04DF381900DD74B1 /* ElementDWRD.m */; }; + E18BF6BD069FEA1800F076B8 /* ElementLSTE.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D0933F704DFE80500DD74B1 /* ElementLSTE.m */; }; + E18BF6BE069FEA1800F076B8 /* ElementDLNG.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D4737B304E872DB00AF65FE /* ElementDLNG.m */; }; + E18BF6BF069FEA1800F076B8 /* ElementDBYT.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D4737B704E873F300AF65FE /* ElementDBYT.m */; }; + E18BF6C0069FEA1800F076B8 /* ElementOCNT.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D50047004EF040900F3B64D /* ElementOCNT.m */; }; + E18BF6C1069FEA1800F076B8 /* ElementLSTC.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3D50047304EF122000F3B64D /* ElementLSTC.mm */; }; + E18BF6C3069FEA1800F076B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; }; + E18BF6D5069FEA1900F076B8 /* liblibResKnife.dylib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E18BF63D069FEA1600F076B8 /* liblibResKnife.dylib.a */; }; + E18BF7D3069FFC7600F076B8 /* FontWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = E18BF7CF069FFC7600F076B8 /* FontWindow.nib */; }; + E18BF7D4069FFC7600F076B8 /* FontWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = E18BF7D1069FFC7600F076B8 /* FontWindowController.h */; }; + E18BF7D5069FFC7600F076B8 /* FontWindowController.mm in Sources */ = {isa = PBXBuildFile; fileRef = E18BF7D2069FFC7600F076B8 /* FontWindowController.mm */; }; + E18BF8D006A0016B00F076B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884B0156D40B01000001 /* Cocoa.framework */; }; + E18BF8D206A0016D00F076B8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5B5884A0156D40B01000001 /* Carbon.framework */; }; + E18BF8EB06A0027700F076B8 /* Notifications.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C9ECCE027F474A01A8010C /* Notifications.m */; }; + E18BFA3706A20B7A00F076B8 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = E18BFA3606A20B7A00F076B8 /* Info.plist */; }; + E1A984FE099C309400A70612 /* DisplayTMPL.png in Resources */ = {isa = PBXBuildFile; fileRef = E1A984FD099C309300A70612 /* DisplayTMPL.png */; }; + E1D0DB520A109A4F0011739C /* ElementKEYB.h in Headers */ = {isa = PBXBuildFile; fileRef = E1D0DB4E0A109A4E0011739C /* ElementKEYB.h */; }; + E1D0DB530A109A4F0011739C /* ElementKEYB.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1D0DB4F0A109A4E0011739C /* ElementKEYB.mm */; }; + E1EAB19A06A20F1A0041EE35 /* Hexadecimal Editor.plugin in Copy Plugins */ = {isa = PBXBuildFile; fileRef = E18BF5A6069FEA1400F076B8 /* Hexadecimal Editor.plugin */; }; + E1F0B65B06AD62B1007D3469 /* Template Editor.plugin in Copy Plugins */ = {isa = PBXBuildFile; fileRef = E18BF6C8069FEA1900F076B8 /* Template Editor.plugin */; }; /* End PBXBuildFile section */ /* Begin PBXBuildRule section */ - E1B2A5980E41103D00A72928 /* PBXBuildRule */ = { + E18BF6C7069FEA1900F076B8 /* PBXBuildRule */ = { isa = PBXBuildRule; - compilerSpec = com.apple.compilers.gcc.3_1; - fileType = sourcecode.c; - isEditable = 1; - outputFiles = ( - ); - }; - E1B2A5990E41103D00A72928 /* PBXBuildRule */ = { - isa = PBXBuildRule; - compilerSpec = com.apple.compilers.gcc.3_1; + compilerSpec = com.apple.compilers.gcc; fileType = sourcecode.c; isEditable = 1; outputFiles = ( @@ -294,171 +342,175 @@ /* End PBXBuildRule section */ /* Begin PBXContainerItemProxy section */ - E17753B10E42526500F737F8 /* PBXContainerItemProxy */ = { + E13F836408F139E900E2A5CB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = F5B5880F0156D2A601000001 /* Project object */; proxyType = 1; - remoteGlobalIDString = E1B2A7210E41213300A72928; + remoteGlobalIDString = E18BF78A069FF23700F076B8; remoteInfo = "Font Editor Cocoa"; }; - E17753B30E42526F00F737F8 /* PBXContainerItemProxy */ = { + E18BF6C9069FEA1900F076B8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = F5B5880F0156D2A601000001 /* Project object */; proxyType = 1; - remoteGlobalIDString = E1B2A46A0E41103800A72928; - remoteInfo = NovaTools; - }; - E1B2A5870E41103A00A72928 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F5B5880F0156D2A601000001 /* Project object */; - proxyType = 1; - remoteGlobalIDString = E1B2A43E0E41103800A72928; + remoteGlobalIDString = E18BF58E069FEA1400F076B8; remoteInfo = "Hex Editor Cocoa (Upgraded)"; }; - E1B2A58F0E41103A00A72928 /* PBXContainerItemProxy */ = { + E18BF6CF069FEA1900F076B8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = F5B5880F0156D2A601000001 /* Project object */; proxyType = 1; - remoteGlobalIDString = E1B2A55B0E41103A00A72928; + remoteGlobalIDString = E18BF69E069FEA1800F076B8; remoteInfo = "NuTemplateEditor Cocoa (Upgraded)"; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - E17753850E4250CA00F737F8 /* Copy Support Resources */ = { + E119383F09991CA300A3A6EA /* Copy Support Resources */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = "Support Resources"; dstSubfolderSpec = 7; files = ( - E17757580E425F1D00F737F8 /* Templates.rsrc in Copy Support Resources */, ); name = "Copy Support Resources"; runOnlyForDeploymentPostprocessing = 0; }; - E177539C0E42520800F737F8 /* Copy Support Resources */ = { + E119386209991DAC00A3A6EA /* Copy Support Resources */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = "Support Resources"; dstSubfolderSpec = 7; files = ( - E177539D0E42521800F737F8 /* Font Templates.rsrc in Copy Support Resources */, + E119386509991DDD00A3A6EA /* Templates.rsrc in Copy Support Resources */, ); name = "Copy Support Resources"; runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4170E41103700A72928 /* CopyFiles */ = { + E15CFD86099995FD004929B6 /* Copy Support Resources */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "Support Resources"; + dstSubfolderSpec = 7; + files = ( + E15CFD6E099995D1004929B6 /* Templates for sfnt tables.rsrc in Copy Support Resources */, + ); + name = "Copy Support Resources"; + runOnlyForDeploymentPostprocessing = 0; + }; + E1EAB18D06A20EEB0041EE35 /* Copy Plugins */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 13; files = ( - E1B2A5930E41103A00A72928 /* Hexadecimal Editor.plugin in CopyFiles */, - E1B2A5920E41103A00A72928 /* Template Editor.plugin in CopyFiles */, - E17753CD0E42528400F737F8 /* Font Editor.plugin in CopyFiles */, - E17753B90E42528100F737F8 /* NovaTools.plugin in CopyFiles */, + E1EAB19A06A20F1A0041EE35 /* Hexadecimal Editor.plugin in Copy Plugins */, + E1F0B65B06AD62B1007D3469 /* Template Editor.plugin in Copy Plugins */, + E13F837F08F13A4C00E2A5CB /* Font Editor.plugin in Copy Plugins */, ); + name = "Copy Plugins"; runOnlyForDeploymentPostprocessing = 0; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 3D0933A604DEFEE600DD74B1 /* Element.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Element.h; sourceTree = ""; }; + 3D0933A704DEFEE600DD74B1 /* Element.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Element.m; sourceTree = ""; }; + 3D0933BE04DF151C00DD74B1 /* TemplateStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TemplateStream.h; sourceTree = ""; }; + 3D0933BF04DF151C00DD74B1 /* TemplateStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TemplateStream.m; sourceTree = ""; }; + 3D0933C404DF1C0800DD74B1 /* ElementLSTB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementLSTB.h; sourceTree = ""; }; + 3D0933C504DF1C0800DD74B1 /* ElementLSTB.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ElementLSTB.mm; sourceTree = ""; }; + 3D0933E704DF317D00DD74B1 /* ElementPSTR.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementPSTR.h; sourceTree = ""; }; + 3D0933E804DF317D00DD74B1 /* ElementPSTR.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementPSTR.m; sourceTree = ""; }; + 3D0933EE04DF381900DD74B1 /* ElementDWRD.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementDWRD.m; sourceTree = ""; }; + 3D0933EF04DF381900DD74B1 /* ElementDWRD.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementDWRD.h; sourceTree = ""; }; 3D0933F404DFD7CF00DD74B1 /* TODO.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TODO.txt; sourceTree = SOURCE_ROOT; }; + 3D0933F604DFE80500DD74B1 /* ElementLSTE.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementLSTE.h; sourceTree = ""; }; + 3D0933F704DFE80500DD74B1 /* ElementLSTE.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementLSTE.m; sourceTree = ""; }; + 3D0ABFB904E152CA00C85300 /* Read Me.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "Read Me.txt"; sourceTree = ""; }; 3D0ABFBC04E172F700C85300 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = README.txt; sourceTree = SOURCE_ROOT; }; + 3D0B38B204DEF41E005AED5E /* TemplateWindowController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TemplateWindowController.h; sourceTree = ""; }; + 3D0B38B304DEF41E005AED5E /* TemplateWindowController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = TemplateWindowController.mm; sourceTree = ""; }; + 3D0B38B604DEF465005AED5E /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/TemplateWindow.nib; sourceTree = ""; }; + 3D2EE5E204E5C56F00515930 /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = ""; }; 3D35755A04DAEB4300B8225B /* main.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 3D35755C04DAEB6200B8225B /* RKEditorRegistry.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RKEditorRegistry.h; sourceTree = ""; }; 3D35755D04DAEB6200B8225B /* RKEditorRegistry.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = RKEditorRegistry.m; sourceTree = ""; }; 3D35756004DAEB7F00B8225B /* Export.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Export.tiff; sourceTree = ""; }; - 3D3B99B804DC16A30056861E /* ICONWindowController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = ICONWindowController.m; path = ICONEditor/ICONWindowController.m; sourceTree = SOURCE_ROOT; }; - 3D3B99B904DC16A30056861E /* ICONWindowController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ICONWindowController.h; path = ICONEditor/ICONWindowController.h; sourceTree = SOURCE_ROOT; }; - 3D3B99BD04DC16FC0056861E /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = ICONEditor/English.lproj/ICONWindow.nib; sourceTree = SOURCE_ROOT; }; + 3D3B99B804DC16A30056861E /* ICONWindowController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ICONWindowController.m; sourceTree = ""; }; + 3D3B99B904DC16A30056861E /* ICONWindowController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ICONWindowController.h; sourceTree = ""; }; + 3D3B99BD04DC16FC0056861E /* ICONWindow.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = ICONWindow.nib; path = English.lproj/ICONWindow.nib; sourceTree = ""; }; + 3D4737B304E872DB00AF65FE /* ElementDLNG.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementDLNG.m; sourceTree = ""; }; + 3D4737B404E872DB00AF65FE /* ElementDLNG.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementDLNG.h; sourceTree = ""; }; + 3D4737B704E873F300AF65FE /* ElementDBYT.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementDBYT.m; sourceTree = ""; }; + 3D4737B804E873F300AF65FE /* ElementDBYT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementDBYT.h; sourceTree = ""; }; + 3D50046F04EF040900F3B64D /* ElementOCNT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementOCNT.h; sourceTree = ""; }; + 3D50047004EF040900F3B64D /* ElementOCNT.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementOCNT.m; sourceTree = ""; }; + 3D50047304EF122000F3B64D /* ElementLSTC.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ElementLSTC.mm; sourceTree = ""; }; + 3D50047404EF122000F3B64D /* ElementLSTC.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementLSTC.h; sourceTree = ""; }; 3D53A9FD04F171DC006651FA /* RKSupportResourceRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RKSupportResourceRegistry.h; sourceTree = ""; }; - 3D53A9FE04F171DC006651FA /* RKSupportResourceRegistry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RKSupportResourceRegistry.m; sourceTree = ""; }; - E17752320E424BAB00F737F8 /* NSData-HexRepresentation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData-HexRepresentation.h"; sourceTree = ""; }; - E17752330E424BAB00F737F8 /* NSData-HexRepresentation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData-HexRepresentation.m"; sourceTree = ""; }; - E177526D0E424DCB00F737F8 /* OpenPanelDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OpenPanelDelegate.m; sourceTree = ""; }; - E177526E0E424DCB00F737F8 /* OpenPanelDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenPanelDelegate.h; sourceTree = ""; }; - E17757020E425EE200F737F8 /* Element.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Element.h; sourceTree = ""; }; - E17757030E425EE200F737F8 /* Element.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Element.m; sourceTree = ""; }; - E17757040E425EE200F737F8 /* ElementDATE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementDATE.h; sourceTree = ""; }; - E17757050E425EE200F737F8 /* ElementDATE.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementDATE.m; sourceTree = ""; }; - E17757060E425EE200F737F8 /* ElementDBYT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementDBYT.h; sourceTree = ""; }; - E17757070E425EE200F737F8 /* ElementDBYT.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementDBYT.m; sourceTree = ""; }; - E17757080E425EE200F737F8 /* ElementDLLG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementDLLG.h; sourceTree = ""; }; - E17757090E425EE200F737F8 /* ElementDLLG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementDLLG.m; sourceTree = ""; }; - E177570A0E425EE200F737F8 /* ElementDLNG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementDLNG.h; sourceTree = ""; }; - E177570B0E425EE200F737F8 /* ElementDLNG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementDLNG.m; sourceTree = ""; }; - E177570C0E425EE200F737F8 /* ElementDWRD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementDWRD.h; sourceTree = ""; }; - E177570D0E425EE200F737F8 /* ElementDWRD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementDWRD.m; sourceTree = ""; }; - E177570E0E425EE200F737F8 /* ElementFBYT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementFBYT.h; sourceTree = ""; }; - E177570F0E425EE200F737F8 /* ElementFBYT.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementFBYT.m; sourceTree = ""; }; - E17757100E425EE200F737F8 /* ElementFIXD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementFIXD.h; sourceTree = ""; }; - E17757110E425EE200F737F8 /* ElementFIXD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementFIXD.m; sourceTree = ""; }; - E17757120E425EE200F737F8 /* ElementFRAC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementFRAC.h; sourceTree = ""; }; - E17757130E425EE200F737F8 /* ElementFRAC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementFRAC.m; sourceTree = ""; }; - E17757140E425EE200F737F8 /* ElementHEXD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementHEXD.h; sourceTree = ""; }; - E17757150E425EE200F737F8 /* ElementHEXD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementHEXD.m; sourceTree = ""; }; - E17757160E425EE200F737F8 /* ElementKEYB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementKEYB.h; sourceTree = ""; }; - E17757170E425EE200F737F8 /* ElementKEYB.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ElementKEYB.mm; sourceTree = ""; }; - E17757180E425EE200F737F8 /* ElementLSTB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementLSTB.h; sourceTree = ""; }; - E17757190E425EE200F737F8 /* ElementLSTB.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ElementLSTB.mm; sourceTree = ""; }; - E177571A0E425EE200F737F8 /* ElementLSTC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementLSTC.h; sourceTree = ""; }; - E177571B0E425EE200F737F8 /* ElementLSTC.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ElementLSTC.mm; sourceTree = ""; }; - E177571C0E425EE200F737F8 /* ElementLSTE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementLSTE.h; sourceTree = ""; }; - E177571D0E425EE200F737F8 /* ElementLSTE.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementLSTE.m; sourceTree = ""; }; - E177571E0E425EE200F737F8 /* ElementOCNT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementOCNT.h; sourceTree = ""; }; - E177571F0E425EE200F737F8 /* ElementOCNT.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementOCNT.m; sourceTree = ""; }; - E17757200E425EE200F737F8 /* ElementPSTR.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementPSTR.h; sourceTree = ""; }; - E17757210E425EE200F737F8 /* ElementPSTR.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementPSTR.m; sourceTree = ""; }; - E17757220E425EE200F737F8 /* ElementUBYT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementUBYT.h; sourceTree = ""; }; - E17757230E425EE200F737F8 /* ElementUBYT.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementUBYT.m; sourceTree = ""; }; - E17757240E425EE200F737F8 /* ElementULLG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementULLG.h; sourceTree = ""; }; - E17757250E425EE200F737F8 /* ElementULLG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementULLG.m; sourceTree = ""; }; - E17757260E425EE200F737F8 /* ElementULNG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementULNG.h; sourceTree = ""; }; - E17757270E425EE200F737F8 /* ElementULNG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementULNG.m; sourceTree = ""; }; - E17757280E425EE200F737F8 /* ElementUWRD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementUWRD.h; sourceTree = ""; }; - E17757290E425EE200F737F8 /* ElementUWRD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElementUWRD.m; sourceTree = ""; }; - E177572B0E425EE200F737F8 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = ""; }; - E177572D0E425EE200F737F8 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/TemplateWindow.nib; sourceTree = ""; }; - E177572E0E425EE200F737F8 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ../Info.plist; sourceTree = ""; }; - E177572F0E425EE200F737F8 /* Read Me.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "Read Me.txt"; sourceTree = ""; }; - E17757310E425EE200F737F8 /* DisplayTMPL.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DisplayTMPL.png; sourceTree = ""; }; - E17757320E425EE200F737F8 /* Templates.rsrc */ = {isa = PBXFileReference; lastKnownFileType = archive.rsrc; path = Templates.rsrc; sourceTree = ""; }; - E17757330E425EE200F737F8 /* TemplateStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TemplateStream.h; sourceTree = ""; }; - E17757340E425EE200F737F8 /* TemplateStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TemplateStream.m; sourceTree = ""; }; - E17757350E425EE200F737F8 /* TemplateWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TemplateWindowController.h; sourceTree = ""; }; - E17757360E425EE200F737F8 /* TemplateWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TemplateWindowController.m; sourceTree = ""; }; - E17757370E425EE200F737F8 /* TMPLs.rsrc */ = {isa = PBXFileReference; lastKnownFileType = archive.rsrc; path = TMPLs.rsrc; sourceTree = ""; }; - E1B2A43B0E41103700A72928 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = "../Plug-Ins/Hex Editor/Info.plist"; sourceTree = ""; }; - E1B2A43C0E41103800A72928 /* ResKnife Cocoa.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ResKnife Cocoa.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - E1B2A4560E41103800A72928 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E1B2A4570E41103800A72928 /* Hexadecimal Editor.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Hexadecimal Editor.plugin"; sourceTree = BUILT_PRODUCTS_DIR; }; - E1B2A4930E41103800A72928 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E1B2A4940E41103800A72928 /* NovaTools.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NovaTools.plugin; sourceTree = BUILT_PRODUCTS_DIR; }; - E1B2A4C30E41103800A72928 /* Info-ResKnife_Carbon__Upgraded_.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-ResKnife_Carbon__Upgraded_.plist"; sourceTree = ""; }; - E1B2A4C40E41103900A72928 /* ResKnife Carbon.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ResKnife Carbon.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - E1B2A4F00E41103900A72928 /* libResKnife.dylib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libResKnife.dylib.a; sourceTree = BUILT_PRODUCTS_DIR; }; - E1B2A5060E41103900A72928 /* Info-Hex_Editor_Carbon__Upgraded_.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Hex_Editor_Carbon__Upgraded_.plist"; sourceTree = ""; }; - E1B2A5070E41103900A72928 /* Hex Editor.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Hex Editor.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - E1B2A5170E41103900A72928 /* Info-Template_Editor_Carbon__Upgraded_.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Template_Editor_Carbon__Upgraded_.plist"; sourceTree = ""; }; - E1B2A5180E41103900A72928 /* Template Editor.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Template Editor.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - E1B2A5280E41103900A72928 /* Info-PICT_Editor__Upgraded_.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-PICT_Editor__Upgraded_.plist"; sourceTree = ""; }; - E1B2A5290E41103900A72928 /* PICT Editor.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "PICT Editor.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - E1B2A5470E41103900A72928 /* Info-Uli_s_Template_Editor__Upgraded_.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Uli_s_Template_Editor__Upgraded_.plist"; sourceTree = ""; }; - E1B2A5480E41103A00A72928 /* Ulis Template Editor.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Ulis Template Editor.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - E1B2A55A0E41103A00A72928 /* Bitmap Editor.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Bitmap Editor.plugin"; sourceTree = BUILT_PRODUCTS_DIR; }; - E1B2A5860E41103A00A72928 /* Template Editor.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Template Editor.plugin"; sourceTree = BUILT_PRODUCTS_DIR; }; - E1B2A7220E41213300A72928 /* Font Editor.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Font Editor.plugin"; sourceTree = BUILT_PRODUCTS_DIR; }; - E1B2A7360E41218F00A72928 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/FontDocument.nib; sourceTree = ""; }; - E1B2A7380E41218F00A72928 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/FontWindow.nib; sourceTree = ""; }; - E1B2A73A0E41218F00A72928 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = ""; }; - E1B2A73B0E41218F00A72928 /* Font Templates.rsrc */ = {isa = PBXFileReference; lastKnownFileType = archive.rsrc; path = "Font Templates.rsrc"; sourceTree = ""; }; - E1B2A73C0E41218F00A72928 /* FontWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontWindowController.h; sourceTree = ""; }; - E1B2A73D0E41218F00A72928 /* FontWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FontWindowController.m; sourceTree = ""; }; - E1B2A73E0E41218F00A72928 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E1B2A7740E41230E00A72928 /* NGSCategories.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NGSCategories.h; sourceTree = ""; }; - E1B2A7750E41230E00A72928 /* NGSCategories.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NGSCategories.m; sourceTree = ""; }; - E1B2A7D20E41994C00A72928 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ICONEditor/Info.plist; sourceTree = SOURCE_ROOT; }; + 3D53A9FE04F171DC006651FA /* RKSupportResourceRegistry.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RKSupportResourceRegistry.mm; sourceTree = ""; }; + E1193608099830D300A3A6EA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/FontDocument.nib; sourceTree = ""; }; + 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 = ""; }; + E119367D099864AD00A3A6EA /* ElementUBYT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementUBYT.h; sourceTree = ""; }; + E119367E099864AD00A3A6EA /* ElementUBYT.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementUBYT.m; sourceTree = ""; }; + E119367F099864AD00A3A6EA /* ElementULNG.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementULNG.h; sourceTree = ""; }; + E1193680099864AD00A3A6EA /* ElementULNG.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementULNG.m; sourceTree = ""; }; + E1193681099864AD00A3A6EA /* ElementUWRD.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementUWRD.h; sourceTree = ""; }; + E1193682099864AD00A3A6EA /* ElementUWRD.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementUWRD.m; sourceTree = ""; }; + E119371909986D8200A3A6EA /* ElementFIXD.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementFIXD.h; sourceTree = ""; }; + E119371A09986D8200A3A6EA /* ElementFIXD.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementFIXD.m; sourceTree = ""; }; + E119376C0998768500A3A6EA /* ElementFRAC.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementFRAC.h; sourceTree = ""; }; + E119376D0998768500A3A6EA /* ElementFRAC.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementFRAC.m; sourceTree = ""; }; + E119379109987CC400A3A6EA /* ElementULLG.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementULLG.h; sourceTree = ""; }; + E119379209987CC400A3A6EA /* ElementULLG.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementULLG.m; sourceTree = ""; }; + E119383D09991C5100A3A6EA /* Templates.rsrc */ = {isa = PBXFileReference; lastKnownFileType = archive.rsrc; path = Templates.rsrc; sourceTree = ""; }; + E119388B0999296B00A3A6EA /* ElementHEXD.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementHEXD.h; sourceTree = ""; }; + E119388C0999296B00A3A6EA /* ElementHEXD.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementHEXD.m; sourceTree = ""; }; + E1193948099940FD00A3A6EA /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + E13F7F9808F05B5C00E2A5CB /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E13F846908F18FBE00E2A5CB /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E14AC2740996BF1700D293E5 /* ElementDLLG.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementDLLG.h; sourceTree = ""; }; + E14AC2750996BF1700D293E5 /* ElementDLLG.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementDLLG.m; sourceTree = ""; }; + E14AC451099702F300D293E5 /* ElementFBYT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementFBYT.h; sourceTree = ""; }; + E14AC452099702F400D293E5 /* ElementFBYT.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementFBYT.m; sourceTree = ""; }; + E15CFD6D099995D1004929B6 /* Templates for sfnt tables.rsrc */ = {isa = PBXFileReference; lastKnownFileType = archive.rsrc; path = "Templates for sfnt tables.rsrc"; sourceTree = ""; }; + E15CFF80099BECAE004929B6 /* ElementDATE.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementDATE.h; sourceTree = ""; }; + E15CFF81099BECAF004929B6 /* ElementDATE.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ElementDATE.m; sourceTree = ""; }; + E17ADBC006A2132800842474 /* NovaTools.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NovaTools.plugin; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF58C069FEA1400F076B8 /* ResKnife Cocoa.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ResKnife Cocoa.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF5A6069FEA1400F076B8 /* Hexadecimal Editor.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Hexadecimal Editor.plugin"; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF5B6069FEA1400F076B8 /* Nicks Template Editor.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Nicks Template Editor.plugin"; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF613069FEA1500F076B8 /* ResKnife Carbon.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ResKnife Carbon.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF63D069FEA1600F076B8 /* liblibResKnife.dylib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = liblibResKnife.dylib.a; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF652069FEA1600F076B8 /* Hex Editor.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Hex Editor.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF661069FEA1700F076B8 /* Template Editor.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Template Editor.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF670069FEA1700F076B8 /* PICT Editor.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "PICT Editor.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF68D069FEA1800F076B8 /* Ulis Template Editor.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Ulis Template Editor.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF69D069FEA1800F076B8 /* Bitmap Editor.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Bitmap Editor.plugin"; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF6C8069FEA1900F076B8 /* Template Editor.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Template Editor.plugin"; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF78B069FF23700F076B8 /* Font Editor.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Font Editor.plugin"; sourceTree = BUILT_PRODUCTS_DIR; }; + E18BF78C069FF23800F076B8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E18BF7D0069FFC7600F076B8 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = FontWindow.nib; sourceTree = ""; }; + E18BF7D1069FFC7600F076B8 /* FontWindowController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FontWindowController.h; sourceTree = ""; }; + E18BF7D2069FFC7600F076B8 /* FontWindowController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = FontWindowController.mm; sourceTree = ""; }; + E18BF94B06A00F8E00F076B8 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E18BF9D706A01A2200F076B8 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E18BFA3606A20B7A00F076B8 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E196FEE10551AF9600FE7E58 /* Resource Type Mappings.strings */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; path = "Resource Type Mappings.strings"; sourceTree = ""; }; + E19FB514054E918800A80202 /* MisnWindowController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = MisnWindowController.h; path = misn/MisnWindowController.h; sourceTree = ""; }; + E19FB515054E918800A80202 /* MisnWindowController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = MisnWindowController.m; path = misn/MisnWindowController.m; sourceTree = ""; }; + E19FB518054E919200A80202 /* ShipWindowController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ShipWindowController.h; path = ship/ShipWindowController.h; sourceTree = ""; }; + E19FB519054E919200A80202 /* ShipWindowController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = ShipWindowController.m; path = ship/ShipWindowController.m; sourceTree = ""; }; + E19FB51D054E919F00A80202 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = misn/English.lproj/misn.nib; sourceTree = ""; }; + E19FB520054E91AA00A80202 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = ship/English.lproj/ship.nib; sourceTree = ""; }; + E1A984FD099C309300A70612 /* DisplayTMPL.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = DisplayTMPL.png; path = Resources/DisplayTMPL.png; sourceTree = ""; }; + E1C5E08B055D98790001A04A /* NSData-HexRepresentation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData-HexRepresentation.h"; sourceTree = ""; }; + E1C5E08F055D98D50001A04A /* NSData-HexRepresentation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData-HexRepresentation.m"; sourceTree = ""; }; + E1D0DB4E0A109A4E0011739C /* ElementKEYB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ElementKEYB.h; sourceTree = ""; }; + E1D0DB4F0A109A4E0011739C /* ElementKEYB.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ElementKEYB.mm; sourceTree = ""; }; F5041736036BD60801A8010A /* ResKnife.scriptSuite */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = ResKnife.scriptSuite; sourceTree = ""; }; F50DFE17036C203F01A8010A /* English */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = English; path = Cocoa/English.lproj/ResKnife.scriptTerminology; sourceTree = SOURCE_ROOT; }; F50DFE22036C258201A8010A /* BoolTemplateField.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BoolTemplateField.cpp; sourceTree = ""; }; @@ -483,15 +535,21 @@ F50DFE6C036C258301A8010A /* Templar.rsrc */ = {isa = PBXFileReference; lastKnownFileType = archive.rsrc; path = Templar.rsrc; sourceTree = ""; }; F50DFE6D036C258301A8010A /* TemplateWindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TemplateWindow.cpp; sourceTree = ""; }; F50DFE6E036C258301A8010A /* TemplateWindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TemplateWindow.h; sourceTree = ""; }; + F535443E0226752901A80001 /* NGSTemplateWindowController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NGSTemplateWindowController.h; sourceTree = ""; }; + F535443F0226752901A80001 /* NGSTemplateWindowController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NGSTemplateWindowController.m; sourceTree = ""; }; + F53544430226778D01A80001 /* TemplateWindow.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = TemplateWindow.nib; path = English.lproj/TemplateWindow.nib; sourceTree = ""; }; + F535444D0226B5F501A80001 /* NGSElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NGSElement.h; sourceTree = ""; }; + F535444E0226B5F501A80001 /* NGSElement.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NGSElement.m; sourceTree = ""; }; F543AFDB027B2A5001A8010C /* DataSource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DataSource.h; sourceTree = ""; }; F543AFDC027B2A5001A8010C /* DataSource.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = DataSource.m; sourceTree = ""; }; F543AFF0027C716E01A8010C /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = "English.lproj/Resource Types.strings"; sourceTree = ""; }; + F54625C6029174F601A8010C /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; + F54626490291750201A8010C /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; F54E6220021B6A0801A80001 /* FindSheetController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FindSheetController.h; sourceTree = ""; }; F54E6221021B6A0801A80001 /* FindSheetController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = FindSheetController.m; sourceTree = ""; }; F54E6223021B6A0801A80001 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/FindSheet.nib; sourceTree = ""; }; F54E622C021D192201A80001 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = Cocoa/English.lproj/CreateResourceSheet.nib; sourceTree = SOURCE_ROOT; }; F5502C4001C579FF01C57124 /* ResKnifePluginProtocol.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResKnifePluginProtocol.h; sourceTree = ""; }; - F5606FDE02ACF2F701A8010C /* PasteMenu.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = PasteMenu.nib; path = English.lproj/PasteMenu.nib; sourceTree = ""; }; F5730B930159528A01000001 /* defaults.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist; path = defaults.plist; sourceTree = ""; }; F577A8F30211CFA701A80001 /* Save.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Save.tiff; sourceTree = ""; }; F577A8F80211DC1E01A80001 /* Show Info.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Show Info.tiff"; sourceTree = ""; }; @@ -518,6 +576,8 @@ F58F6BAA025BDBA701A8010C /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/NovaTools.nib; sourceTree = ""; }; F59481AD03D0776C01A8010A /* RKDocumentController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RKDocumentController.h; sourceTree = ""; }; F59481AE03D0776C01A8010A /* RKDocumentController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = RKDocumentController.m; sourceTree = ""; }; + F59481B103D077DC01A8010A /* OpenPanelDelegate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = OpenPanelDelegate.h; sourceTree = ""; }; + F59481B203D077DC01A8010A /* OpenPanelDelegate.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = OpenPanelDelegate.m; sourceTree = ""; }; F59D5DE40320DFF601A8010C /* NSString-FSSpec.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSString-FSSpec.h"; sourceTree = ""; }; F59D5DE50320DFF601A8010C /* NSString-FSSpec.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSString-FSSpec.m"; sourceTree = ""; }; F59D5DE8032106D201A8010C /* NSNumber-Range.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSNumber-Range.h"; sourceTree = ""; }; @@ -530,8 +590,6 @@ F5B588220156D40B01000001 /* CreateResourceSheetController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CreateResourceSheetController.m; sourceTree = ""; }; F5B588250156D40B01000001 /* InfoWindowController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = InfoWindowController.h; sourceTree = ""; }; F5B588260156D40B01000001 /* InfoWindowController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = InfoWindowController.m; sourceTree = ""; }; - F5B588270156D40B01000001 /* NameFormatter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NameFormatter.h; sourceTree = ""; }; - F5B588280156D40B01000001 /* NameFormatter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NameFormatter.m; sourceTree = ""; }; F5B588290156D40B01000001 /* OutlineViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = OutlineViewDelegate.h; sourceTree = ""; }; F5B5882A0156D40B01000001 /* OutlineViewDelegate.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = OutlineViewDelegate.m; sourceTree = ""; }; F5B5882B0156D40B01000001 /* PrefsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PrefsWindowController.h; sourceTree = ""; }; @@ -539,9 +597,9 @@ F5B5882D0156D40B01000001 /* Resource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Resource.h; sourceTree = ""; }; F5B5882E0156D40B01000001 /* Resource.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Resource.m; sourceTree = ""; }; F5B5882F0156D40B01000001 /* ResourceDataSource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceDataSource.h; sourceTree = ""; }; - F5B588300156D40B01000001 /* ResourceDataSource.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ResourceDataSource.m; sourceTree = ""; }; + F5B588300156D40B01000001 /* ResourceDataSource.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceDataSource.mm; sourceTree = ""; }; F5B588310156D40B01000001 /* ResourceDocument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceDocument.h; sourceTree = ""; }; - F5B588320156D40B01000001 /* ResourceDocument.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ResourceDocument.m; sourceTree = ""; }; + F5B588320156D40B01000001 /* ResourceDocument.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceDocument.mm; sourceTree = ""; }; F5B588330156D40B01000001 /* SizeFormatter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SizeFormatter.h; sourceTree = ""; }; F5B588340156D40B01000001 /* SizeFormatter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SizeFormatter.m; sourceTree = ""; }; F5B588370156D40B01000001 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/AboutPanel.nib; sourceTree = ""; }; @@ -549,13 +607,15 @@ F5B5883B0156D40B01000001 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/InfoWindow.nib; sourceTree = ""; }; F5B5883F0156D40B01000001 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/PrefsWindow.nib; sourceTree = ""; }; F5B588410156D40B01000001 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/ResourceDocument.nib; sourceTree = ""; }; - F5B588430156D40B01000001 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - F5B588450156D40B01000001 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = English; path = English.lproj/Localizable.strings; sourceTree = ""; }; + F5B588430156D40B01000001 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + F5B588450156D40B01000001 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = English; path = English.lproj/Localizable.strings; sourceTree = ""; }; F5B588460156D40B01000001 /* ResKnife.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = ResKnife.icns; sourceTree = ""; }; F5B588470156D40B01000001 /* Resource file.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "Resource file.icns"; sourceTree = ""; }; F5B588480156D40B01000001 /* Icon file.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "Icon file.icns"; sourceTree = ""; }; F5B5884A0156D40B01000001 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; F5B5884B0156D40B01000001 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + F5B5884C0156D40B01000001 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + F5B5884D0156D40B01000001 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; F5B5887D0156D6D901000001 /* Carbon Prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "Carbon Prefix.h"; sourceTree = ""; }; F5B5887E0156D6D901000001 /* Classic Prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "Classic Prefix.h"; sourceTree = ""; }; F5B588800156D6D901000001 /* Transfer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Transfer.h; sourceTree = ""; }; @@ -650,7 +710,7 @@ F5EF83A2020C08E601A80001 /* HexTextView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HexTextView.h; sourceTree = ""; }; F5EF83A3020C08E601A80001 /* HexTextView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = HexTextView.m; sourceTree = ""; }; F5EF83A7020C08E601A80001 /* HexWindowController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HexWindowController.h; sourceTree = ""; }; - F5EF83A8020C08E601A80001 /* HexWindowController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = HexWindowController.m; sourceTree = ""; }; + F5EF83A8020C08E601A80001 /* HexWindowController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = HexWindowController.mm; sourceTree = ""; }; F5EF83C8020C20D701A80001 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/HexWindow.nib; sourceTree = ""; }; F5F1071603CCC61E01A8010A /* PasteboardDocument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PasteboardDocument.h; sourceTree = ""; }; F5F1071703CCC61E01A8010A /* PasteboardDocument.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PasteboardDocument.m; sourceTree = ""; }; @@ -658,221 +718,234 @@ F5F1071B03CCFAAC01A8010A /* PasteboardWindowController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PasteboardWindowController.m; sourceTree = ""; }; F5F98D4502F0B06E01A8010C /* TemplateInitalisation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TemplateInitalisation.h; sourceTree = ""; }; F5F98D4602F0B06E01A8010C /* TemplateInitalisation.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TemplateInitalisation.cpp; sourceTree = ""; }; - FDBB1C8E038062C0015E48C3 /* C99 Prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "C99 Prefix.h"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - E1B2A4340E41103700A72928 /* Frameworks */ = { + E18BF586069FEA1300F076B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4350E41103700A72928 /* Cocoa.framework in Frameworks */, - E1B2A4360E41103700A72928 /* Carbon.framework in Frameworks */, + E18BF587069FEA1300F076B8 /* Cocoa.framework in Frameworks */, + E18BF588069FEA1300F076B8 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4500E41103800A72928 /* Frameworks */ = { + E18BF5A1069FEA1400F076B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4510E41103800A72928 /* Cocoa.framework in Frameworks */, + E18BF5A2069FEA1400F076B8 /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A48C0E41103800A72928 /* Frameworks */ = { + E18BF5B1069FEA1400F076B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A48D0E41103800A72928 /* Cocoa.framework in Frameworks */, - E1B2A48E0E41103800A72928 /* Carbon.framework in Frameworks */, + E18BF5B2069FEA1400F076B8 /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4BB0E41103800A72928 /* Frameworks */ = { + E18BF5DF069FEA1400F076B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4BC0E41103800A72928 /* Carbon.framework in Frameworks */, + E18BF5E0069FEA1400F076B8 /* Cocoa.framework in Frameworks */, + E18BF5E1069FEA1400F076B8 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4EA0E41103900A72928 /* Frameworks */ = { + E18BF60C069FEA1500F076B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4EB0E41103900A72928 /* Carbon.framework in Frameworks */, + E18BF60D069FEA1500F076B8 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4FF0E41103900A72928 /* Frameworks */ = { + E18BF639069FEA1500F076B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A5000E41103900A72928 /* Carbon.framework in Frameworks */, - E1B2A5950E41103A00A72928 /* libResKnife.dylib.a in Frameworks */, + E18BF63A069FEA1500F076B8 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5100E41103900A72928 /* Frameworks */ = { + E18BF64C069FEA1600F076B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A5110E41103900A72928 /* Carbon.framework in Frameworks */, + E18BF64D069FEA1600F076B8 /* Carbon.framework in Frameworks */, + E18BF6D5069FEA1900F076B8 /* liblibResKnife.dylib.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5220E41103900A72928 /* Frameworks */ = { + E18BF65B069FEA1600F076B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A5230E41103900A72928 /* Carbon.framework in Frameworks */, + E18BF65C069FEA1600F076B8 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5410E41103900A72928 /* Frameworks */ = { + E18BF66B069FEA1700F076B8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E18BF66C069FEA1700F076B8 /* Carbon.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF688069FEA1700F076B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5530E41103A00A72928 /* Frameworks */ = { + E18BF698069FEA1800F076B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A5540E41103A00A72928 /* Cocoa.framework in Frameworks */, + E18BF699069FEA1800F076B8 /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A57F0E41103A00A72928 /* Frameworks */ = { + E18BF6C2069FEA1800F076B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A5800E41103A00A72928 /* Cocoa.framework in Frameworks */, + E18BF6C3069FEA1800F076B8 /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A7200E41213300A72928 /* Frameworks */ = { + E18BF789069FF23700F076B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E17753350E424F0C00F737F8 /* Carbon.framework in Frameworks */, - E17753E40E42534300F737F8 /* Cocoa.framework in Frameworks */, + E18BF8D006A0016B00F076B8 /* Cocoa.framework in Frameworks */, + E18BF8D206A0016D00F076B8 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 3D3B99B704DC167D0056861E /* Bitmap Editor */ = { + 3D0933EB04DF319F00DD74B1 /* Field Types */ = { + isa = PBXGroup; + children = ( + 3D4737B804E873F300AF65FE /* ElementDBYT.h */, + 3D4737B704E873F300AF65FE /* ElementDBYT.m */, + 3D0933EF04DF381900DD74B1 /* ElementDWRD.h */, + 3D0933EE04DF381900DD74B1 /* ElementDWRD.m */, + 3D4737B404E872DB00AF65FE /* ElementDLNG.h */, + 3D4737B304E872DB00AF65FE /* ElementDLNG.m */, + E14AC2740996BF1700D293E5 /* ElementDLLG.h */, + E14AC2750996BF1700D293E5 /* ElementDLLG.m */, + E119367D099864AD00A3A6EA /* ElementUBYT.h */, + E119367E099864AD00A3A6EA /* ElementUBYT.m */, + E1193681099864AD00A3A6EA /* ElementUWRD.h */, + E1193682099864AD00A3A6EA /* ElementUWRD.m */, + E119367F099864AD00A3A6EA /* ElementULNG.h */, + E1193680099864AD00A3A6EA /* ElementULNG.m */, + E119379109987CC400A3A6EA /* ElementULLG.h */, + E119379209987CC400A3A6EA /* ElementULLG.m */, + E119371909986D8200A3A6EA /* ElementFIXD.h */, + E119371A09986D8200A3A6EA /* ElementFIXD.m */, + E119376C0998768500A3A6EA /* ElementFRAC.h */, + E119376D0998768500A3A6EA /* ElementFRAC.m */, + E14AC451099702F300D293E5 /* ElementFBYT.h */, + E14AC452099702F400D293E5 /* ElementFBYT.m */, + 3D0933E704DF317D00DD74B1 /* ElementPSTR.h */, + 3D0933E804DF317D00DD74B1 /* ElementPSTR.m */, + E119388B0999296B00A3A6EA /* ElementHEXD.h */, + E119388C0999296B00A3A6EA /* ElementHEXD.m */, + E15CFF80099BECAE004929B6 /* ElementDATE.h */, + E15CFF81099BECAF004929B6 /* ElementDATE.m */, + 3D50046F04EF040900F3B64D /* ElementOCNT.h */, + 3D50047004EF040900F3B64D /* ElementOCNT.m */, + 3D0933C404DF1C0800DD74B1 /* ElementLSTB.h */, + 3D0933C504DF1C0800DD74B1 /* ElementLSTB.mm */, + 3D50047404EF122000F3B64D /* ElementLSTC.h */, + 3D50047304EF122000F3B64D /* ElementLSTC.mm */, + 3D0933F604DFE80500DD74B1 /* ElementLSTE.h */, + 3D0933F704DFE80500DD74B1 /* ElementLSTE.m */, + E1D0DB4E0A109A4E0011739C /* ElementKEYB.h */, + E1D0DB4F0A109A4E0011739C /* ElementKEYB.mm */, + ); + name = "Field Types"; + sourceTree = ""; + }; + 3D0B38A504DEF41E005AED5E /* Template Editor */ = { + isa = PBXGroup; + children = ( + 3D0ABFB904E152CA00C85300 /* Read Me.txt */, + 3D0B38B204DEF41E005AED5E /* TemplateWindowController.h */, + 3D0B38B304DEF41E005AED5E /* TemplateWindowController.mm */, + 3D0933BE04DF151C00DD74B1 /* TemplateStream.h */, + 3D0933BF04DF151C00DD74B1 /* TemplateStream.m */, + 3D0933A604DEFEE600DD74B1 /* Element.h */, + 3D0933A704DEFEE600DD74B1 /* Element.m */, + 3D0933EB04DF319F00DD74B1 /* Field Types */, + E1A984F7099C2D7F00A70612 /* Resources */, + E11937F309991C1100A3A6EA /* Support Resources */, + E18BFA3606A20B7A00F076B8 /* Info.plist */, + 3D2EE5E204E5C56F00515930 /* Localizable.strings */, + ); + path = "Template Editor"; + sourceTree = ""; + }; + 3D3B99B704DC167D0056861E /* Icon Editor */ = { isa = PBXGroup; children = ( - 3D3B99B804DC16A30056861E /* ICONWindowController.m */, 3D3B99B904DC16A30056861E /* ICONWindowController.h */, - E1B2A7D20E41994C00A72928 /* Info.plist */, + 3D3B99B804DC16A30056861E /* ICONWindowController.m */, 3D3B99BC04DC16FC0056861E /* ICONWindow.nib */, + E13F7F9808F05B5C00E2A5CB /* Info.plist */, + E1193947099940FD00A3A6EA /* InfoPlist.strings */, ); - name = "Bitmap Editor"; - path = "Template Editor"; + path = "Icon Editor"; sourceTree = ""; }; - E17752310E424BAB00F737F8 /* Categories */ = { + E11937F309991C1100A3A6EA /* Support Resources */ = { isa = PBXGroup; children = ( - E17752320E424BAB00F737F8 /* NSData-HexRepresentation.h */, - E17752330E424BAB00F737F8 /* NSData-HexRepresentation.m */, + E119383D09991C5100A3A6EA /* Templates.rsrc */, ); - path = Categories; + name = "Support Resources"; sourceTree = ""; }; - E17757010E425EE200F737F8 /* Template Editor */ = { + E15CFDA009999637004929B6 /* Support Resources */ = { isa = PBXGroup; children = ( - E177572F0E425EE200F737F8 /* Read Me.txt */, - E17757350E425EE200F737F8 /* TemplateWindowController.h */, - E17757360E425EE200F737F8 /* TemplateWindowController.m */, - E17757330E425EE200F737F8 /* TemplateStream.h */, - E17757340E425EE200F737F8 /* TemplateStream.m */, - E17757020E425EE200F737F8 /* Element.h */, - E17757030E425EE200F737F8 /* Element.m */, - E17757570E425EFF00F737F8 /* Elements */, - E17757300E425EE200F737F8 /* Resources */, - E17757320E425EE200F737F8 /* Templates.rsrc */, - E17757370E425EE200F737F8 /* TMPLs.rsrc */, + E15CFD6D099995D1004929B6 /* Templates for sfnt tables.rsrc */, ); - path = "Template Editor"; + name = "Support Resources"; sourceTree = ""; }; - E17757300E425EE200F737F8 /* Resources */ = { + E18BF7B8069FFA5200F076B8 /* Font Editor */ = { isa = PBXGroup; children = ( - E177572A0E425EE200F737F8 /* Localizable.strings */, - E177572C0E425EE200F737F8 /* TemplateWindow.nib */, - E177572E0E425EE200F737F8 /* Info.plist */, - E17757310E425EE200F737F8 /* DisplayTMPL.png */, - ); - path = Resources; - sourceTree = ""; - }; - E17757570E425EFF00F737F8 /* Elements */ = { - isa = PBXGroup; - children = ( - E17757040E425EE200F737F8 /* ElementDATE.h */, - E17757050E425EE200F737F8 /* ElementDATE.m */, - E17757060E425EE200F737F8 /* ElementDBYT.h */, - E17757070E425EE200F737F8 /* ElementDBYT.m */, - E17757080E425EE200F737F8 /* ElementDLLG.h */, - E17757090E425EE200F737F8 /* ElementDLLG.m */, - E177570A0E425EE200F737F8 /* ElementDLNG.h */, - E177570B0E425EE200F737F8 /* ElementDLNG.m */, - E177570C0E425EE200F737F8 /* ElementDWRD.h */, - E177570D0E425EE200F737F8 /* ElementDWRD.m */, - E177570E0E425EE200F737F8 /* ElementFBYT.h */, - E177570F0E425EE200F737F8 /* ElementFBYT.m */, - E17757100E425EE200F737F8 /* ElementFIXD.h */, - E17757110E425EE200F737F8 /* ElementFIXD.m */, - E17757120E425EE200F737F8 /* ElementFRAC.h */, - E17757130E425EE200F737F8 /* ElementFRAC.m */, - E17757140E425EE200F737F8 /* ElementHEXD.h */, - E17757150E425EE200F737F8 /* ElementHEXD.m */, - E17757160E425EE200F737F8 /* ElementKEYB.h */, - E17757170E425EE200F737F8 /* ElementKEYB.mm */, - E17757180E425EE200F737F8 /* ElementLSTB.h */, - E17757190E425EE200F737F8 /* ElementLSTB.mm */, - E177571A0E425EE200F737F8 /* ElementLSTC.h */, - E177571B0E425EE200F737F8 /* ElementLSTC.mm */, - E177571C0E425EE200F737F8 /* ElementLSTE.h */, - E177571D0E425EE200F737F8 /* ElementLSTE.m */, - E177571E0E425EE200F737F8 /* ElementOCNT.h */, - E177571F0E425EE200F737F8 /* ElementOCNT.m */, - E17757200E425EE200F737F8 /* ElementPSTR.h */, - E17757210E425EE200F737F8 /* ElementPSTR.m */, - E17757220E425EE200F737F8 /* ElementUBYT.h */, - E17757230E425EE200F737F8 /* ElementUBYT.m */, - E17757240E425EE200F737F8 /* ElementULLG.h */, - E17757250E425EE200F737F8 /* ElementULLG.m */, - E17757260E425EE200F737F8 /* ElementULNG.h */, - E17757270E425EE200F737F8 /* ElementULNG.m */, - E17757280E425EE200F737F8 /* ElementUWRD.h */, - E17757290E425EE200F737F8 /* ElementUWRD.m */, - ); - name = Elements; - sourceTree = ""; - }; - E1B2A7340E41218F00A72928 /* Font Editor */ = { - isa = PBXGroup; - children = ( - E1B2A73C0E41218F00A72928 /* FontWindowController.h */, - E1B2A73D0E41218F00A72928 /* FontWindowController.m */, - E1B2A73E0E41218F00A72928 /* Info.plist */, - E1B2A7390E41218F00A72928 /* Localizable.strings */, - E1B2A73B0E41218F00A72928 /* Font Templates.rsrc */, - E1B2A7350E41218F00A72928 /* FontDocument.nib */, - E1B2A7370E41218F00A72928 /* FontWindow.nib */, + E18BF7D1069FFC7600F076B8 /* FontWindowController.h */, + E18BF7D2069FFC7600F076B8 /* FontWindowController.mm */, + E1193607099830D200A3A6EA /* FontDocument.nib */, + E18BF7CF069FFC7600F076B8 /* FontWindow.nib */, + E15CFDA009999637004929B6 /* Support Resources */, + E18BF78C069FF23800F076B8 /* Info.plist */, + E11936650998552900A3A6EA /* Localizable.strings */, ); path = "Font Editor"; sourceTree = ""; }; + E1A984F7099C2D7F00A70612 /* Resources */ = { + isa = PBXGroup; + children = ( + 3D0B38B504DEF465005AED5E /* TemplateWindow.nib */, + E1A984FD099C309300A70612 /* DisplayTMPL.png */, + ); + name = Resources; + sourceTree = ""; + }; F50DFE20036C258201A8010A /* Uli's Template Editor */ = { isa = PBXGroup; children = ( @@ -905,23 +978,37 @@ F51FB38E0256057F01A80001 /* Resources */ = { isa = PBXGroup; children = ( - E1B2A4930E41103800A72928 /* Info.plist */, - F543AFEF027C716E01A8010C /* Resource Types.strings */, F58F6BA9025BDBA701A8010C /* NovaTools.nib */, F5EDC612025BFB7301A8010C /* boom.nib */, F5EDC615025BFB7C01A8010C /* char.nib */, F5EDC618025BFB8601A8010C /* colr.nib */, F5EDC61B025BFB8E01A8010C /* cron.nib */, F5EDC61E025BFBB501A8010C /* desc.nib */, + E19FB51C054E919F00A80202 /* misn.nib */, + E19FB51F054E91AA00A80202 /* ship.nib */, + F543AFEF027C716E01A8010C /* Resource Types.strings */, ); name = Resources; sourceTree = ""; }; + F5354435022673C101A80001 /* Nick's Template Editor */ = { + isa = PBXGroup; + children = ( + F535443E0226752901A80001 /* NGSTemplateWindowController.h */, + F535443F0226752901A80001 /* NGSTemplateWindowController.m */, + F535444D0226B5F501A80001 /* NGSElement.h */, + F535444E0226B5F501A80001 /* NGSElement.m */, + F5D0CBD302278F8B01A80001 /* TemplateWindow.nib */, + E13F846908F18FBE00E2A5CB /* Info.plist */, + ); + path = "Nick's Template Editor"; + sourceTree = ""; + }; F5594EE9021F3E2301A80001 /* Categories */ = { isa = PBXGroup; children = ( - E1B2A7740E41230E00A72928 /* NGSCategories.h */, - E1B2A7750E41230E00A72928 /* NGSCategories.m */, + E1193638099833AE00A3A6EA /* Categories.h */, + E1193639099833AE00A3A6EA /* Categories.mm */, F5D0CBCF022744C701A80001 /* NSOutlineView-SelectedItems.h */, F5D0CBD0022744C701A80001 /* NSOutlineView-SelectedItems.m */, F59D5DE40320DFF601A8010C /* NSString-FSSpec.h */, @@ -939,9 +1026,10 @@ F5502C4001C579FF01C57124 /* ResKnifePluginProtocol.h */, F5CDEBAB01FC893201A80001 /* ResKnifeResourceProtocol.h */, F5EF839F020C08E601A80001 /* Hex Editor */, - E17757010E425EE200F737F8 /* Template Editor */, - 3D3B99B704DC167D0056861E /* Bitmap Editor */, - E1B2A7340E41218F00A72928 /* Font Editor */, + 3D0B38A504DEF41E005AED5E /* Template Editor */, + F5354435022673C101A80001 /* Nick's Template Editor */, + E18BF7B8069FFA5200F076B8 /* Font Editor */, + 3D3B99B704DC167D0056861E /* Icon Editor */, F5DF1C0F0254C78801A80001 /* NovaTools */, ); path = "Plug-Ins"; @@ -968,29 +1056,25 @@ F5EA10690254A7B401A80001 /* External */, F5B588490156D40B01000001 /* Frameworks */, F5B588110156D30301000001 /* Products */, - E1B2A4C30E41103800A72928 /* Info-ResKnife_Carbon__Upgraded_.plist */, - E1B2A5060E41103900A72928 /* Info-Hex_Editor_Carbon__Upgraded_.plist */, - E1B2A5170E41103900A72928 /* Info-Template_Editor_Carbon__Upgraded_.plist */, - E1B2A5280E41103900A72928 /* Info-PICT_Editor__Upgraded_.plist */, - E1B2A5470E41103900A72928 /* Info-Uli_s_Template_Editor__Upgraded_.plist */, ); sourceTree = ""; }; F5B588110156D30301000001 /* Products */ = { isa = PBXGroup; children = ( - E1B2A43C0E41103800A72928 /* ResKnife Cocoa.app */, - E1B2A4570E41103800A72928 /* Hexadecimal Editor.plugin */, - E1B2A4940E41103800A72928 /* NovaTools.plugin */, - E1B2A4C40E41103900A72928 /* ResKnife Carbon.app */, - E1B2A4F00E41103900A72928 /* libResKnife.dylib.a */, - E1B2A5070E41103900A72928 /* Hex Editor.bundle */, - E1B2A5180E41103900A72928 /* Template Editor.bundle */, - E1B2A5290E41103900A72928 /* PICT Editor.bundle */, - E1B2A5480E41103A00A72928 /* Ulis Template Editor.bundle */, - E1B2A55A0E41103A00A72928 /* Bitmap Editor.plugin */, - E1B2A5860E41103A00A72928 /* Template Editor.plugin */, - E1B2A7220E41213300A72928 /* Font Editor.plugin */, + E18BF58C069FEA1400F076B8 /* ResKnife Cocoa.app */, + E18BF5A6069FEA1400F076B8 /* Hexadecimal Editor.plugin */, + E18BF5B6069FEA1400F076B8 /* Nicks Template Editor.plugin */, + E18BF6C8069FEA1900F076B8 /* Template Editor.plugin */, + E18BF69D069FEA1800F076B8 /* Bitmap Editor.plugin */, + E18BF78B069FF23700F076B8 /* Font Editor.plugin */, + E17ADBC006A2132800842474 /* NovaTools.plugin */, + E18BF613069FEA1500F076B8 /* ResKnife Carbon.app */, + E18BF63D069FEA1600F076B8 /* liblibResKnife.dylib.a */, + E18BF652069FEA1600F076B8 /* Hex Editor.bundle */, + E18BF661069FEA1700F076B8 /* Template Editor.bundle */, + E18BF670069FEA1700F076B8 /* PICT Editor.bundle */, + E18BF68D069FEA1800F076B8 /* Ulis Template Editor.bundle */, ); name = Products; sourceTree = ""; @@ -1005,6 +1089,7 @@ F5594EE9021F3E2301A80001 /* Categories */, F5B588350156D40B01000001 /* Resources */, F57CEE0B0189C95101A8010B /* Plug-Ins */, + E18BF9D706A01A2200F076B8 /* Info.plist */, ); path = Cocoa; sourceTree = ""; @@ -1020,10 +1105,8 @@ F5B588220156D40B01000001 /* CreateResourceSheetController.m */, F5B588250156D40B01000001 /* InfoWindowController.h */, F5B588260156D40B01000001 /* InfoWindowController.m */, - F5B588270156D40B01000001 /* NameFormatter.h */, - F5B588280156D40B01000001 /* NameFormatter.m */, - E177526E0E424DCB00F737F8 /* OpenPanelDelegate.h */, - E177526D0E424DCB00F737F8 /* OpenPanelDelegate.m */, + F59481B103D077DC01A8010A /* OpenPanelDelegate.h */, + F59481B203D077DC01A8010A /* OpenPanelDelegate.m */, F5B588290156D40B01000001 /* OutlineViewDelegate.h */, F5B5882A0156D40B01000001 /* OutlineViewDelegate.m */, F5F1071603CCC61E01A8010A /* PasteboardDocument.h */, @@ -1034,18 +1117,18 @@ F5B5882C0156D40B01000001 /* PrefsWindowController.m */, F5B5882D0156D40B01000001 /* Resource.h */, F5B5882E0156D40B01000001 /* Resource.m */, - 3D35755C04DAEB6200B8225B /* RKEditorRegistry.h */, - 3D35755D04DAEB6200B8225B /* RKEditorRegistry.m */, - 3D53A9FD04F171DC006651FA /* RKSupportResourceRegistry.h */, - 3D53A9FE04F171DC006651FA /* RKSupportResourceRegistry.m */, F5B5882F0156D40B01000001 /* ResourceDataSource.h */, - F5B588300156D40B01000001 /* ResourceDataSource.m */, + F5B588300156D40B01000001 /* ResourceDataSource.mm */, F5B588310156D40B01000001 /* ResourceDocument.h */, - F5B588320156D40B01000001 /* ResourceDocument.m */, + F5B588320156D40B01000001 /* ResourceDocument.mm */, F577A900021215C801A80001 /* ResourceNameCell.h */, F577A901021215C801A80001 /* ResourceNameCell.m */, F59481AD03D0776C01A8010A /* RKDocumentController.h */, F59481AE03D0776C01A8010A /* RKDocumentController.m */, + 3D35755C04DAEB6200B8225B /* RKEditorRegistry.h */, + 3D35755D04DAEB6200B8225B /* RKEditorRegistry.m */, + 3D53A9FD04F171DC006651FA /* RKSupportResourceRegistry.h */, + 3D53A9FE04F171DC006651FA /* RKSupportResourceRegistry.mm */, F5B588330156D40B01000001 /* SizeFormatter.h */, F5B588340156D40B01000001 /* SizeFormatter.m */, ); @@ -1055,18 +1138,18 @@ F5B588350156D40B01000001 /* Resources */ = { isa = PBXGroup; children = ( - E1B2A43B0E41103700A72928 /* Info.plist */, - F5B588420156D40B01000001 /* InfoPlist.strings */, - F5B588440156D40B01000001 /* Localizable.strings */, - F5730B930159528A01000001 /* defaults.plist */, - F5041736036BD60801A8010A /* ResKnife.scriptSuite */, - F50DFE16036C203F01A8010A /* ResKnife.scriptTerminology */, F5B588360156D40B01000001 /* AboutPanel.nib */, F5B588380156D40B01000001 /* Application.nib */, F54E622B021D192201A80001 /* CreateResourceSheet.nib */, F5B5883A0156D40B01000001 /* InfoWindow.nib */, F5B5883E0156D40B01000001 /* PrefsWindow.nib */, F5B588400156D40B01000001 /* ResourceDocument.nib */, + F5B588420156D40B01000001 /* InfoPlist.strings */, + F5B588440156D40B01000001 /* Localizable.strings */, + E196FEE10551AF9600FE7E58 /* Resource Type Mappings.strings */, + F5730B930159528A01000001 /* defaults.plist */, + F5041736036BD60801A8010A /* ResKnife.scriptSuite */, + F50DFE16036C203F01A8010A /* ResKnife.scriptTerminology */, F5B588460156D40B01000001 /* ResKnife.icns */, F5B588470156D40B01000001 /* Resource file.icns */, F5B588480156D40B01000001 /* Icon file.icns */, @@ -1085,7 +1168,11 @@ isa = PBXGroup; children = ( F5B5884A0156D40B01000001 /* Carbon.framework */, + F54625C6029174F601A8010C /* CoreServices.framework */, + F54626490291750201A8010C /* ApplicationServices.framework */, F5B5884B0156D40B01000001 /* Cocoa.framework */, + F5B5884C0156D40B01000001 /* AppKit.framework */, + F5B5884D0156D40B01000001 /* Foundation.framework */, ); name = Frameworks; sourceTree = ""; @@ -1095,7 +1182,6 @@ children = ( F5B5887D0156D6D901000001 /* Carbon Prefix.h */, F5B5887E0156D6D901000001 /* Classic Prefix.h */, - FDBB1C8E038062C0015E48C3 /* C99 Prefix.h */, ); path = "Prefix Files"; sourceTree = ""; @@ -1279,6 +1365,10 @@ F58F6B8F025BCF5901A8010C /* CronWindowController.m */, F58F6B93025BD97701A8010C /* DescWindowController.h */, F58F6B92025BD97701A8010C /* DescWindowController.m */, + E19FB514054E918800A80202 /* MisnWindowController.h */, + E19FB515054E918800A80202 /* MisnWindowController.m */, + E19FB518054E919200A80202 /* ShipWindowController.h */, + E19FB519054E919200A80202 /* ShipWindowController.m */, F58A183F0278353501A8010C /* Aux Support */, F51FB38E0256057F01A80001 /* Resources */, ); @@ -1306,12 +1396,12 @@ F5EF83A2020C08E601A80001 /* HexTextView.h */, F5EF83A3020C08E601A80001 /* HexTextView.m */, F5EF83A7020C08E601A80001 /* HexWindowController.h */, - F5EF83A8020C08E601A80001 /* HexWindowController.m */, - E1B2A4560E41103800A72928 /* Info.plist */, - E17752310E424BAB00F737F8 /* Categories */, + F5EF83A8020C08E601A80001 /* HexWindowController.mm */, + E1C5E08B055D98790001A04A /* NSData-HexRepresentation.h */, + E1C5E08F055D98D50001A04A /* NSData-HexRepresentation.m */, F5EF83C7020C20D701A80001 /* HexWindow.nib */, - F5606FDD02ACF2F701A8010C /* PasteMenu.nib */, F54E6222021B6A0801A80001 /* FindSheet.nib */, + E18BF94B06A00F8E00F076B8 /* Info.plist */, ); path = "Hex Editor"; sourceTree = ""; @@ -1319,172 +1409,266 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - E1B2A3E90E41103700A72928 /* Headers */ = { + E18BF53C069FEA1300F076B8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A3EA0E41103700A72928 /* ResKnifeResourceProtocol.h in Headers */, - E1B2A3EB0E41103700A72928 /* ResKnifePluginProtocol.h in Headers */, - E1B2A3EC0E41103700A72928 /* ApplicationDelegate.h in Headers */, - E1B2A3ED0E41103700A72928 /* AttributesFormatter.h in Headers */, - E1B2A3EE0E41103700A72928 /* CreateResourceSheetController.h in Headers */, - E1B2A3EF0E41103700A72928 /* InfoWindowController.h in Headers */, - E1B2A3F00E41103700A72928 /* NameFormatter.h in Headers */, - E1B2A3F10E41103700A72928 /* OutlineViewDelegate.h in Headers */, - E1B2A3F20E41103700A72928 /* PrefsWindowController.h in Headers */, - E1B2A3F30E41103700A72928 /* Resource.h in Headers */, - E1B2A3F40E41103700A72928 /* ResourceDataSource.h in Headers */, - E1B2A3F50E41103700A72928 /* ResourceDocument.h in Headers */, - E1B2A3F60E41103700A72928 /* ResourceNameCell.h in Headers */, - E1B2A3F70E41103700A72928 /* SizeFormatter.h in Headers */, - E1B2A3F80E41103700A72928 /* NSOutlineView-SelectedItems.h in Headers */, - E1B2A3F90E41103700A72928 /* MoreFilesX.h in Headers */, - E1B2A3FA0E41103700A72928 /* NSString-FSSpec.h in Headers */, - E1B2A3FB0E41103700A72928 /* PasteboardDocument.h in Headers */, - E1B2A3FC0E41103700A72928 /* PasteboardWindowController.h in Headers */, - E1B2A3FD0E41103700A72928 /* RKDocumentController.h in Headers */, - E1B2A3FF0E41103700A72928 /* RKEditorRegistry.h in Headers */, - E1B2A4000E41103700A72928 /* RKSupportResourceRegistry.h in Headers */, - E1B2A7770E41230E00A72928 /* NGSCategories.h in Headers */, - E17752700E424DCB00F737F8 /* OpenPanelDelegate.h in Headers */, + E18BF53D069FEA1300F076B8 /* ResKnifeResourceProtocol.h in Headers */, + E18BF53E069FEA1300F076B8 /* ResKnifePluginProtocol.h in Headers */, + E18BF53F069FEA1300F076B8 /* ApplicationDelegate.h in Headers */, + E18BF540069FEA1300F076B8 /* AttributesFormatter.h in Headers */, + E18BF541069FEA1300F076B8 /* CreateResourceSheetController.h in Headers */, + E18BF542069FEA1300F076B8 /* InfoWindowController.h in Headers */, + E18BF543069FEA1300F076B8 /* OutlineViewDelegate.h in Headers */, + E18BF544069FEA1300F076B8 /* PrefsWindowController.h in Headers */, + E18BF545069FEA1300F076B8 /* Resource.h in Headers */, + E18BF546069FEA1300F076B8 /* ResourceDataSource.h in Headers */, + E18BF547069FEA1300F076B8 /* ResourceDocument.h in Headers */, + E18BF548069FEA1300F076B8 /* ResourceNameCell.h in Headers */, + E18BF549069FEA1300F076B8 /* SizeFormatter.h in Headers */, + E18BF54A069FEA1300F076B8 /* NSOutlineView-SelectedItems.h in Headers */, + E18BF54B069FEA1300F076B8 /* MoreFilesX.h in Headers */, + E18BF54C069FEA1300F076B8 /* NSString-FSSpec.h in Headers */, + E18BF54D069FEA1300F076B8 /* PasteboardDocument.h in Headers */, + E18BF54E069FEA1300F076B8 /* PasteboardWindowController.h in Headers */, + E18BF54F069FEA1300F076B8 /* RKDocumentController.h in Headers */, + E18BF550069FEA1300F076B8 /* OpenPanelDelegate.h in Headers */, + E18BF551069FEA1300F076B8 /* RKEditorRegistry.h in Headers */, + E18BF552069FEA1300F076B8 /* RKSupportResourceRegistry.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4960E41103800A72928 /* Headers */ = { + E18BF58F069FEA1400F076B8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4970E41103800A72928 /* Application.h in Headers */, - E1B2A4980E41103800A72928 /* Asynchronous.h in Headers */, - E1B2A4990E41103800A72928 /* DataBrowser.h in Headers */, - E1B2A49A0E41103800A72928 /* EditorWindow.h in Headers */, - E1B2A49B0E41103800A72928 /* Errors.h in Headers */, - E1B2A49C0E41103800A72928 /* Files.h in Headers */, - E1B2A49D0E41103800A72928 /* FileWindow.h in Headers */, - E1B2A49E0E41103800A72928 /* HostCallbacks.h in Headers */, - E1B2A49F0E41103800A72928 /* InspectorWindow.h in Headers */, - E1B2A4A00E41103800A72928 /* PickerWindow.h in Headers */, - E1B2A4A10E41103800A72928 /* PlugObject.h in Headers */, - E1B2A4A20E41103800A72928 /* PlugWindow.h in Headers */, - E1B2A4A30E41103800A72928 /* ResourceObject.h in Headers */, - E1B2A4A40E41103800A72928 /* Utility.h in Headers */, - E1B2A4A50E41103800A72928 /* WindowObject.h in Headers */, - E1B2A4A60E41103800A72928 /* Generic.h in Headers */, - E1B2A4A70E41103800A72928 /* ResKnife.h in Headers */, - E1B2A4A80E41103800A72928 /* Transfer.h in Headers */, + E18BF590069FEA1400F076B8 /* ResKnifeResourceProtocol.h in Headers */, + E18BF591069FEA1400F076B8 /* ResKnifePluginProtocol.h in Headers */, + E18BF592069FEA1400F076B8 /* HexEditorDelegate.h in Headers */, + E18BF593069FEA1400F076B8 /* HexTextView.h in Headers */, + E18BF594069FEA1400F076B8 /* HexWindowController.h in Headers */, + E18BF595069FEA1400F076B8 /* FindSheetController.h in Headers */, + E18BF596069FEA1400F076B8 /* NSData-HexRepresentation.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4C70E41103900A72928 /* Headers */ = { + E18BF5A8069FEA1400F076B8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4C80E41103900A72928 /* ResKnife.h in Headers */, - E1B2A4C90E41103900A72928 /* Generic.h in Headers */, - E1B2A4CA0E41103900A72928 /* Transfer.h in Headers */, - E1B2A4CB0E41103900A72928 /* Application.h in Headers */, - E1B2A4CC0E41103900A72928 /* Asynchronous.h in Headers */, - E1B2A4CD0E41103900A72928 /* DataBrowser.h in Headers */, - E1B2A4CE0E41103900A72928 /* EditorWindow.h in Headers */, - E1B2A4CF0E41103900A72928 /* Errors.h in Headers */, - E1B2A4D00E41103900A72928 /* Files.h in Headers */, - E1B2A4D10E41103900A72928 /* FileWindow.h in Headers */, - E1B2A4D20E41103900A72928 /* HostCallbacks.h in Headers */, - E1B2A4D30E41103900A72928 /* InspectorWindow.h in Headers */, - E1B2A4D40E41103900A72928 /* WindowObject.h in Headers */, - E1B2A4D50E41103900A72928 /* Utility.h in Headers */, - E1B2A4D60E41103900A72928 /* ResourceObject.h in Headers */, - E1B2A4D70E41103900A72928 /* PlugWindow.h in Headers */, - E1B2A4D80E41103900A72928 /* PlugObject.h in Headers */, - E1B2A4D90E41103900A72928 /* PickerWindow.h in Headers */, + E18BF5A9069FEA1400F076B8 /* NGSTemplateWindowController.h in Headers */, + E18BF5AA069FEA1400F076B8 /* NGSElement.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4F20E41103900A72928 /* Headers */ = { + E18BF5B8069FEA1400F076B8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4F30E41103900A72928 /* Hex Editor.h in Headers */, - E1B2A4F40E41103900A72928 /* Events.h in Headers */, - E1B2A4F50E41103900A72928 /* HexWindow.h in Headers */, - E1B2A4F60E41103900A72928 /* Initalisation.h in Headers */, - E1B2A4F70E41103900A72928 /* Utility.h in Headers */, - E1B2A4F80E41103900A72928 /* HostCallbacks.h in Headers */, + E18BF5B9069FEA1400F076B8 /* HostCallbacks.h in Headers */, + E18BF5BA069FEA1400F076B8 /* BoomWindowController.h in Headers */, + E18BF5BB069FEA1400F076B8 /* NovaWindowController.h in Headers */, + E18BF5BC069FEA1400F076B8 /* CharWindowController.h in Headers */, + E18BF5BD069FEA1400F076B8 /* ColrWindowController.h in Headers */, + E18BF5BE069FEA1400F076B8 /* CronWindowController.h in Headers */, + E18BF5BF069FEA1400F076B8 /* DescWindowController.h in Headers */, + E18BF5C0069FEA1400F076B8 /* ResKnifeResourceProtocol.h in Headers */, + E18BF5C1069FEA1400F076B8 /* ResKnifePluginProtocol.h in Headers */, + E18BF5C2069FEA1400F076B8 /* DescSplitViewDelegate.h in Headers */, + E18BF5C3069FEA1400F076B8 /* DataSource.h in Headers */, + E18BF5C4069FEA1400F076B8 /* Structs.h in Headers */, + E18BF5C5069FEA1400F076B8 /* NSNumber-Range.h in Headers */, + E18BF5C6069FEA1400F076B8 /* MisnWindowController.h in Headers */, + E18BF5C7069FEA1400F076B8 /* ShipWindowController.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5090E41103900A72928 /* Headers */ = { + E18BF5E7069FEA1500F076B8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A50A0E41103900A72928 /* Template Editor.h in Headers */, - E1B2A50B0E41103900A72928 /* TemplateWindow.h in Headers */, - E1B2A50C0E41103900A72928 /* HostCallbacks.h in Headers */, + E18BF5E8069FEA1500F076B8 /* Application.h in Headers */, + E18BF5E9069FEA1500F076B8 /* Asynchronous.h in Headers */, + E18BF5EA069FEA1500F076B8 /* DataBrowser.h in Headers */, + E18BF5EB069FEA1500F076B8 /* EditorWindow.h in Headers */, + E18BF5EC069FEA1500F076B8 /* Errors.h in Headers */, + E18BF5ED069FEA1500F076B8 /* Files.h in Headers */, + E18BF5EE069FEA1500F076B8 /* FileWindow.h in Headers */, + E18BF5EF069FEA1500F076B8 /* HostCallbacks.h in Headers */, + E18BF5F0069FEA1500F076B8 /* InspectorWindow.h in Headers */, + E18BF5F1069FEA1500F076B8 /* PickerWindow.h in Headers */, + E18BF5F2069FEA1500F076B8 /* PlugObject.h in Headers */, + E18BF5F3069FEA1500F076B8 /* PlugWindow.h in Headers */, + E18BF5F4069FEA1500F076B8 /* ResourceObject.h in Headers */, + E18BF5F5069FEA1500F076B8 /* Utility.h in Headers */, + E18BF5F6069FEA1500F076B8 /* WindowObject.h in Headers */, + E18BF5F7069FEA1500F076B8 /* Generic.h in Headers */, + E18BF5F8069FEA1500F076B8 /* ResKnife.h in Headers */, + E18BF5F9069FEA1500F076B8 /* Transfer.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A51A0E41103900A72928 /* Headers */ = { + E18BF616069FEA1500F076B8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A51B0E41103900A72928 /* Initalisation.h in Headers */, - E1B2A51C0E41103900A72928 /* Parser.h in Headers */, - E1B2A51D0E41103900A72928 /* PICT Editor.h in Headers */, + E18BF617069FEA1500F076B8 /* ResKnife.h in Headers */, + E18BF618069FEA1500F076B8 /* Generic.h in Headers */, + E18BF619069FEA1500F076B8 /* Transfer.h in Headers */, + E18BF61A069FEA1500F076B8 /* Application.h in Headers */, + E18BF61B069FEA1500F076B8 /* Asynchronous.h in Headers */, + E18BF61C069FEA1500F076B8 /* DataBrowser.h in Headers */, + E18BF61D069FEA1500F076B8 /* EditorWindow.h in Headers */, + E18BF61E069FEA1500F076B8 /* Errors.h in Headers */, + E18BF61F069FEA1500F076B8 /* Files.h in Headers */, + E18BF620069FEA1500F076B8 /* FileWindow.h in Headers */, + E18BF621069FEA1500F076B8 /* HostCallbacks.h in Headers */, + E18BF622069FEA1500F076B8 /* InspectorWindow.h in Headers */, + E18BF623069FEA1500F076B8 /* WindowObject.h in Headers */, + E18BF624069FEA1500F076B8 /* Utility.h in Headers */, + E18BF625069FEA1500F076B8 /* ResourceObject.h in Headers */, + E18BF626069FEA1500F076B8 /* PlugWindow.h in Headers */, + E18BF627069FEA1500F076B8 /* PlugObject.h in Headers */, + E18BF628069FEA1500F076B8 /* PickerWindow.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A52B0E41103900A72928 /* Headers */ = { + E18BF63F069FEA1600F076B8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A52C0E41103900A72928 /* BoolTemplateField.h in Headers */, - E1B2A52D0E41103900A72928 /* DividerTemplateField.h in Headers */, - E1B2A52E0E41103900A72928 /* IntegerTemplateField.h in Headers */, - E1B2A52F0E41103900A72928 /* KHandleStream.h in Headers */, - E1B2A5300E41103900A72928 /* ListTemplateField.h in Headers */, - E1B2A5310E41103900A72928 /* LSTCTemplateField.h in Headers */, - E1B2A5320E41103900A72928 /* StringTemplateField.h in Headers */, - E1B2A5330E41103900A72928 /* TemplateWindow.h in Headers */, - E1B2A5340E41103900A72928 /* HostCallbacks.h in Headers */, + E18BF640069FEA1600F076B8 /* Hex Editor.h in Headers */, + E18BF641069FEA1600F076B8 /* Events.h in Headers */, + E18BF642069FEA1600F076B8 /* HexWindow.h in Headers */, + E18BF643069FEA1600F076B8 /* Initalisation.h in Headers */, + E18BF644069FEA1600F076B8 /* Utility.h in Headers */, + E18BF645069FEA1600F076B8 /* HostCallbacks.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF654069FEA1600F076B8 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + E18BF655069FEA1600F076B8 /* Template Editor.h in Headers */, + E18BF656069FEA1600F076B8 /* TemplateWindow.h in Headers */, + E18BF657069FEA1600F076B8 /* HostCallbacks.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF663069FEA1700F076B8 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + E18BF664069FEA1700F076B8 /* Initalisation.h in Headers */, + E18BF665069FEA1700F076B8 /* Parser.h in Headers */, + E18BF666069FEA1700F076B8 /* PICT Editor.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF672069FEA1700F076B8 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + E18BF673069FEA1700F076B8 /* BoolTemplateField.h in Headers */, + E18BF674069FEA1700F076B8 /* DividerTemplateField.h in Headers */, + E18BF675069FEA1700F076B8 /* IntegerTemplateField.h in Headers */, + E18BF676069FEA1700F076B8 /* KHandleStream.h in Headers */, + E18BF677069FEA1700F076B8 /* ListTemplateField.h in Headers */, + E18BF678069FEA1700F076B8 /* LSTCTemplateField.h in Headers */, + E18BF679069FEA1700F076B8 /* StringTemplateField.h in Headers */, + E18BF67A069FEA1700F076B8 /* TemplateWindow.h in Headers */, + E18BF67B069FEA1700F076B8 /* HostCallbacks.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF68F069FEA1800F076B8 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + E18BF690069FEA1800F076B8 /* ResKnifePluginProtocol.h in Headers */, + E18BF691069FEA1800F076B8 /* ResKnifeResourceProtocol.h in Headers */, + E18BF692069FEA1800F076B8 /* ICONWindowController.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF69F069FEA1800F076B8 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + E18BF6A0069FEA1800F076B8 /* TemplateWindowController.h in Headers */, + E18BF6A1069FEA1800F076B8 /* ResKnifePluginProtocol.h in Headers */, + E18BF6A2069FEA1800F076B8 /* ResKnifeResourceProtocol.h in Headers */, + E18BF6A3069FEA1800F076B8 /* Element.h in Headers */, + E18BF6A5069FEA1800F076B8 /* TemplateStream.h in Headers */, + E18BF6A6069FEA1800F076B8 /* ElementLSTB.h in Headers */, + E18BF6A8069FEA1800F076B8 /* ElementPSTR.h in Headers */, + E18BF6A9069FEA1800F076B8 /* ElementDWRD.h in Headers */, + E18BF6AA069FEA1800F076B8 /* ElementLSTE.h in Headers */, + E18BF6AB069FEA1800F076B8 /* ElementDLNG.h in Headers */, + E18BF6AC069FEA1800F076B8 /* ElementDBYT.h in Headers */, + E18BF6AD069FEA1800F076B8 /* ElementOCNT.h in Headers */, + E18BF6AE069FEA1800F076B8 /* ElementLSTC.h in Headers */, + E14AC2760996BF1700D293E5 /* ElementDLLG.h in Headers */, + E14AC453099702F400D293E5 /* ElementFBYT.h in Headers */, + E1193683099864AD00A3A6EA /* ElementUBYT.h in Headers */, + E1193685099864AD00A3A6EA /* ElementULNG.h in Headers */, + E1193687099864AD00A3A6EA /* ElementUWRD.h in Headers */, + E119371B09986D8300A3A6EA /* ElementFIXD.h in Headers */, + E119376E0998768600A3A6EA /* ElementFRAC.h in Headers */, + E119379309987CC400A3A6EA /* ElementULLG.h in Headers */, + E119388D0999296B00A3A6EA /* ElementHEXD.h in Headers */, + E15CFF82099BECAF004929B6 /* ElementDATE.h in Headers */, + E1D0DB520A109A4F0011739C /* ElementKEYB.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF786069FF23700F076B8 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + E18BF7D4069FFC7600F076B8 /* FontWindowController.h in Headers */, + E119363A099833AE00A3A6EA /* Categories.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - E1B2A3DE0E41103700A72928 /* ResKnife Cocoa */ = { + E18BF537069FEA1300F076B8 /* ResKnife Cocoa */ = { isa = PBXNativeTarget; - buildConfigurationList = E1B2A4380E41103700A72928 /* Build configuration list for PBXNativeTarget "ResKnife Cocoa" */; + buildConfigurationList = E13F7ED908F0411100E2A5CB /* Build configuration list for PBXNativeTarget "ResKnife Cocoa" */; buildPhases = ( - E1B2A3E90E41103700A72928 /* Headers */, - E1B2A4010E41103700A72928 /* Resources */, - E1B2A4170E41103700A72928 /* CopyFiles */, - E1B2A41C0E41103700A72928 /* Sources */, - E1B2A4340E41103700A72928 /* Frameworks */, - E1B2A4370E41103700A72928 /* Rez */, + E18BF53C069FEA1300F076B8 /* Headers */, + E18BF553069FEA1300F076B8 /* Resources */, + E119383F09991CA300A3A6EA /* Copy Support Resources */, + E1EAB18D06A20EEB0041EE35 /* Copy Plugins */, + E18BF56F069FEA1300F076B8 /* Sources */, + E18BF586069FEA1300F076B8 /* Frameworks */, + E18BF589069FEA1300F076B8 /* Rez */, ); buildRules = ( ); dependencies = ( - E1B2A5880E41103A00A72928 /* PBXTargetDependency */, - E1B2A5900E41103A00A72928 /* PBXTargetDependency */, - E17753B20E42526500F737F8 /* PBXTargetDependency */, - E17753B40E42526F00F737F8 /* PBXTargetDependency */, + E18BF6CA069FEA1900F076B8 /* PBXTargetDependency */, + E18BF6D0069FEA1900F076B8 /* PBXTargetDependency */, + E13F836508F139E900E2A5CB /* PBXTargetDependency */, ); name = "ResKnife Cocoa"; productInstallPath = "$(USER_APPS_DIR)"; productName = "ResKnife Cocoa"; - productReference = E1B2A43C0E41103800A72928 /* ResKnife Cocoa.app */; + productReference = E18BF58C069FEA1400F076B8 /* ResKnife Cocoa.app */; productType = "com.apple.product-type.application"; }; - E1B2A43E0E41103800A72928 /* Hex Editor Cocoa */ = { + E18BF58E069FEA1400F076B8 /* Hex Editor Cocoa */ = { isa = PBXNativeTarget; - buildConfigurationList = E1B2A4530E41103800A72928 /* Build configuration list for PBXNativeTarget "Hex Editor Cocoa" */; + buildConfigurationList = E13F7ED108F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Hex Editor Cocoa" */; buildPhases = ( - E1B2A4460E41103800A72928 /* Resources */, - E1B2A44A0E41103800A72928 /* Sources */, - E1B2A4500E41103800A72928 /* Frameworks */, - E1B2A4520E41103800A72928 /* Rez */, + E18BF58F069FEA1400F076B8 /* Headers */, + E18BF597069FEA1400F076B8 /* Resources */, + E18BF59A069FEA1400F076B8 /* Sources */, + E18BF5A1069FEA1400F076B8 /* Frameworks */, + E18BF5A3069FEA1400F076B8 /* Rez */, ); buildRules = ( ); @@ -1492,16 +1676,38 @@ ); name = "Hex Editor Cocoa"; productName = "Hex Editor Cocoa"; - productReference = E1B2A4570E41103800A72928 /* Hexadecimal Editor.plugin */; + productReference = E18BF5A6069FEA1400F076B8 /* Hexadecimal Editor.plugin */; productType = "com.apple.product-type.bundle"; }; - E1B2A46A0E41103800A72928 /* NovaTools */ = { + E18BF5A7069FEA1400F076B8 /* Nick's Template Editor Cocoa */ = { isa = PBXNativeTarget; - buildConfigurationList = E1B2A4900E41103800A72928 /* Build configuration list for PBXNativeTarget "NovaTools" */; + buildConfigurationList = E13F7EDD08F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Nick's Template Editor Cocoa" */; buildPhases = ( - E1B2A4790E41103800A72928 /* Resources */, - E1B2A4810E41103800A72928 /* Sources */, - E1B2A48C0E41103800A72928 /* Frameworks */, + E18BF5A8069FEA1400F076B8 /* Headers */, + E18BF5AB069FEA1400F076B8 /* Resources */, + E18BF5AD069FEA1400F076B8 /* Sources */, + E18BF5B1069FEA1400F076B8 /* Frameworks */, + E18BF5B3069FEA1400F076B8 /* Rez */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Nick's Template Editor Cocoa"; + productInstallPath = "$(USER_LIBRARY_DIR)/Bundles"; + productName = "Nick's Template Editor Cocoa"; + productReference = E18BF5B6069FEA1400F076B8 /* Nicks Template Editor.plugin */; + productType = "com.apple.product-type.bundle"; + }; + E18BF5B7069FEA1400F076B8 /* NovaTools */ = { + isa = PBXNativeTarget; + buildConfigurationList = E13F7EE908F0411100E2A5CB /* Build configuration list for PBXNativeTarget "NovaTools" */; + buildPhases = ( + E18BF5B8069FEA1400F076B8 /* Headers */, + E18BF5C8069FEA1400F076B8 /* Resources */, + E18BF5D2069FEA1400F076B8 /* Sources */, + E18BF5DF069FEA1400F076B8 /* Frameworks */, + E18BF5E2069FEA1400F076B8 /* Rez */, ); buildRules = ( ); @@ -1510,18 +1716,18 @@ name = NovaTools; productInstallPath = "$(USER_LIBRARY_DIR)/Bundles"; productName = "NovaTools™"; - productReference = E1B2A4940E41103800A72928 /* NovaTools.plugin */; + productReference = E17ADBC006A2132800842474 /* NovaTools.plugin */; productType = "com.apple.product-type.bundle"; }; - E1B2A4950E41103800A72928 /* ResKnife Carbon */ = { + E18BF5E6069FEA1500F076B8 /* ResKnife Carbon */ = { isa = PBXNativeTarget; - buildConfigurationList = E1B2A4C00E41103800A72928 /* Build configuration list for PBXNativeTarget "ResKnife Carbon" */; + buildConfigurationList = E13F7EED08F0411100E2A5CB /* Build configuration list for PBXNativeTarget "ResKnife Carbon" */; buildPhases = ( - E1B2A4960E41103800A72928 /* Headers */, - E1B2A4A90E41103800A72928 /* Resources */, - E1B2A4AB0E41103800A72928 /* Sources */, - E1B2A4BB0E41103800A72928 /* Frameworks */, - E1B2A4BD0E41103800A72928 /* Rez */, + E18BF5E7069FEA1500F076B8 /* Headers */, + E18BF5FA069FEA1500F076B8 /* Resources */, + E18BF5FC069FEA1500F076B8 /* Sources */, + E18BF60C069FEA1500F076B8 /* Frameworks */, + E18BF60E069FEA1500F076B8 /* Rez */, ); buildRules = ( ); @@ -1530,17 +1736,17 @@ name = "ResKnife Carbon"; productInstallPath = "$(USER_APPS_DIR)"; productName = "ResKnife Carbon"; - productReference = E1B2A4C40E41103900A72928 /* ResKnife Carbon.app */; + productReference = E18BF613069FEA1500F076B8 /* ResKnife Carbon.app */; productType = "com.apple.product-type.application"; }; - E1B2A4C60E41103900A72928 /* libResKnife */ = { + E18BF615069FEA1500F076B8 /* libResKnife */ = { isa = PBXNativeTarget; - buildConfigurationList = E1B2A4ED0E41103900A72928 /* Build configuration list for PBXNativeTarget "libResKnife" */; + buildConfigurationList = E13F7EF108F0411100E2A5CB /* Build configuration list for PBXNativeTarget "libResKnife" */; buildPhases = ( - E1B2A4C70E41103900A72928 /* Headers */, - E1B2A4DA0E41103900A72928 /* Sources */, - E1B2A4EA0E41103900A72928 /* Frameworks */, - E1B2A4EC0E41103900A72928 /* Rez */, + E18BF616069FEA1500F076B8 /* Headers */, + E18BF629069FEA1500F076B8 /* Sources */, + E18BF639069FEA1500F076B8 /* Frameworks */, + E18BF63B069FEA1500F076B8 /* Rez */, ); buildRules = ( ); @@ -1549,18 +1755,18 @@ name = libResKnife; productInstallPath = /usr/local/lib; productName = libResKnife; - productReference = E1B2A4F00E41103900A72928 /* libResKnife.dylib.a */; + productReference = E18BF63D069FEA1600F076B8 /* liblibResKnife.dylib.a */; productType = "com.apple.product-type.library.static"; }; - E1B2A4F10E41103900A72928 /* Hex Editor Carbon */ = { + E18BF63E069FEA1600F076B8 /* Hex Editor Carbon */ = { isa = PBXNativeTarget; - buildConfigurationList = E1B2A5030E41103900A72928 /* Build configuration list for PBXNativeTarget "Hex Editor Carbon" */; + buildConfigurationList = E13F7EF508F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Hex Editor Carbon" */; buildPhases = ( - E1B2A4F20E41103900A72928 /* Headers */, - E1B2A4F90E41103900A72928 /* Resources */, - E1B2A4FA0E41103900A72928 /* Sources */, - E1B2A4FF0E41103900A72928 /* Frameworks */, - E1B2A5020E41103900A72928 /* Rez */, + E18BF63F069FEA1600F076B8 /* Headers */, + E18BF646069FEA1600F076B8 /* Resources */, + E18BF647069FEA1600F076B8 /* Sources */, + E18BF64C069FEA1600F076B8 /* Frameworks */, + E18BF64F069FEA1600F076B8 /* Rez */, ); buildRules = ( ); @@ -1568,18 +1774,18 @@ ); name = "Hex Editor Carbon"; productName = "Hex Editor"; - productReference = E1B2A5070E41103900A72928 /* Hex Editor.bundle */; + productReference = E18BF652069FEA1600F076B8 /* Hex Editor.bundle */; productType = "com.apple.product-type.bundle"; }; - E1B2A5080E41103900A72928 /* Template Editor Carbon */ = { + E18BF653069FEA1600F076B8 /* Template Editor Carbon */ = { isa = PBXNativeTarget; - buildConfigurationList = E1B2A5140E41103900A72928 /* Build configuration list for PBXNativeTarget "Template Editor Carbon" */; + buildConfigurationList = E13F7EF908F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Template Editor Carbon" */; buildPhases = ( - E1B2A5090E41103900A72928 /* Headers */, - E1B2A50D0E41103900A72928 /* Resources */, - E1B2A50E0E41103900A72928 /* Sources */, - E1B2A5100E41103900A72928 /* Frameworks */, - E1B2A5120E41103900A72928 /* Rez */, + E18BF654069FEA1600F076B8 /* Headers */, + E18BF658069FEA1600F076B8 /* Resources */, + E18BF659069FEA1600F076B8 /* Sources */, + E18BF65B069FEA1600F076B8 /* Frameworks */, + E18BF65D069FEA1600F076B8 /* Rez */, ); buildRules = ( ); @@ -1588,56 +1794,58 @@ name = "Template Editor Carbon"; productInstallPath = "$(USER_LIBRARY_DIR)/Bundles"; productName = "Template Editor"; - productReference = E1B2A5180E41103900A72928 /* Template Editor.bundle */; + productReference = E18BF661069FEA1700F076B8 /* Template Editor.bundle */; productType = "com.apple.product-type.bundle"; }; - E1B2A5190E41103900A72928 /* PICT Editor */ = { + E18BF662069FEA1700F076B8 /* PICT Editor Carbon */ = { isa = PBXNativeTarget; - buildConfigurationList = E1B2A5250E41103900A72928 /* Build configuration list for PBXNativeTarget "PICT Editor" */; + buildConfigurationList = E13F7EFD08F0411100E2A5CB /* Build configuration list for PBXNativeTarget "PICT Editor Carbon" */; buildPhases = ( - E1B2A51A0E41103900A72928 /* Headers */, - E1B2A51E0E41103900A72928 /* Resources */, - E1B2A51F0E41103900A72928 /* Sources */, - E1B2A5220E41103900A72928 /* Frameworks */, - E1B2A5240E41103900A72928 /* Rez */, + E18BF663069FEA1700F076B8 /* Headers */, + E18BF667069FEA1700F076B8 /* Resources */, + E18BF668069FEA1700F076B8 /* Sources */, + E18BF66B069FEA1700F076B8 /* Frameworks */, + E18BF66D069FEA1700F076B8 /* Rez */, ); buildRules = ( ); dependencies = ( ); - name = "PICT Editor"; + name = "PICT Editor Carbon"; productInstallPath = "$(USER_LIBRARY_DIR)/Bundles"; productName = "PICT Editor"; - productReference = E1B2A5290E41103900A72928 /* PICT Editor.bundle */; + productReference = E18BF670069FEA1700F076B8 /* PICT Editor.bundle */; productType = "com.apple.product-type.bundle"; }; - E1B2A52A0E41103900A72928 /* Uli's Template Editor (Abandoned) */ = { + E18BF671069FEA1700F076B8 /* Uli's Template Editor */ = { isa = PBXNativeTarget; - buildConfigurationList = E1B2A5440E41103900A72928 /* Build configuration list for PBXNativeTarget "Uli's Template Editor (Abandoned)" */; + buildConfigurationList = E13F7F0108F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Uli's Template Editor" */; buildPhases = ( - E1B2A52B0E41103900A72928 /* Headers */, - E1B2A5350E41103900A72928 /* Resources */, - E1B2A5370E41103900A72928 /* Sources */, - E1B2A5410E41103900A72928 /* Frameworks */, - E1B2A5420E41103900A72928 /* Rez */, + E18BF672069FEA1700F076B8 /* Headers */, + E18BF67C069FEA1700F076B8 /* Resources */, + E18BF67E069FEA1700F076B8 /* Sources */, + E18BF688069FEA1700F076B8 /* Frameworks */, + E18BF689069FEA1700F076B8 /* Rez */, ); buildRules = ( ); dependencies = ( ); - name = "Uli's Template Editor (Abandoned)"; + name = "Uli's Template Editor"; productInstallPath = "$(USER_LIBRARY_DIR)/Bundles"; productName = "Uli's Template Editor"; - productReference = E1B2A5480E41103A00A72928 /* Ulis Template Editor.bundle */; + productReference = E18BF68D069FEA1800F076B8 /* Ulis Template Editor.bundle */; productType = "com.apple.product-type.bundle"; }; - E1B2A5490E41103A00A72928 /* Bitmap Editor Cocoa */ = { + E18BF68E069FEA1800F076B8 /* Bitmap Editor Cocoa */ = { isa = PBXNativeTarget; - buildConfigurationList = E1B2A5560E41103A00A72928 /* Build configuration list for PBXNativeTarget "Bitmap Editor Cocoa" */; + buildConfigurationList = E13F7EE108F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Bitmap Editor Cocoa" */; buildPhases = ( - E1B2A54E0E41103A00A72928 /* Resources */, - E1B2A5500E41103A00A72928 /* Sources */, - E1B2A5530E41103A00A72928 /* Frameworks */, + E18BF68F069FEA1800F076B8 /* Headers */, + E18BF693069FEA1800F076B8 /* Resources */, + E18BF695069FEA1800F076B8 /* Sources */, + E18BF698069FEA1800F076B8 /* Frameworks */, + E18BF69A069FEA1800F076B8 /* Rez */, ); buildRules = ( ); @@ -1646,38 +1854,40 @@ name = "Bitmap Editor Cocoa"; productInstallPath = "$(USER_LIBRARY_DIR)/Bundles"; productName = "Bitmap Editor Cocoa"; - productReference = E1B2A55A0E41103A00A72928 /* Bitmap Editor.plugin */; + productReference = E18BF69D069FEA1800F076B8 /* Bitmap Editor.plugin */; productType = "com.apple.product-type.bundle"; }; - E1B2A55B0E41103A00A72928 /* Template Editor Cocoa */ = { + E18BF69E069FEA1800F076B8 /* Template Editor Cocoa */ = { isa = PBXNativeTarget; - buildConfigurationList = E1B2A5820E41103A00A72928 /* Build configuration list for PBXNativeTarget "Template Editor Cocoa" */; + buildConfigurationList = E13F7ED508F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Template Editor Cocoa" */; buildPhases = ( - E1B2A56C0E41103A00A72928 /* Resources */, - E17753850E4250CA00F737F8 /* Copy Support Resources */, - E1B2A5700E41103A00A72928 /* Sources */, - E1B2A57F0E41103A00A72928 /* Frameworks */, + E18BF69F069FEA1800F076B8 /* Headers */, + E18BF6AF069FEA1800F076B8 /* Resources */, + E119386209991DAC00A3A6EA /* Copy Support Resources */, + E18BF6B3069FEA1800F076B8 /* Sources */, + E18BF6C2069FEA1800F076B8 /* Frameworks */, + E18BF6C4069FEA1800F076B8 /* Rez */, ); buildRules = ( - E1B2A5980E41103D00A72928 /* PBXBuildRule */, - E1B2A5990E41103D00A72928 /* PBXBuildRule */, + E18BF6C7069FEA1900F076B8 /* PBXBuildRule */, ); dependencies = ( ); name = "Template Editor Cocoa"; productInstallPath = "$(USER_LIBRARY_DIR)/Bundles"; - productName = "NuTemplateEditor Cocoa"; - productReference = E1B2A5860E41103A00A72928 /* Template Editor.plugin */; + productName = "Template Editor Cocoa"; + productReference = E18BF6C8069FEA1900F076B8 /* Template Editor.plugin */; productType = "com.apple.product-type.bundle"; }; - E1B2A7210E41213300A72928 /* Font Editor Cocoa */ = { + E18BF78A069FF23700F076B8 /* Font Editor Cocoa */ = { isa = PBXNativeTarget; - buildConfigurationList = E1B2A7260E41213400A72928 /* Build configuration list for PBXNativeTarget "Font Editor Cocoa" */; + buildConfigurationList = E13F7EE508F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Font Editor Cocoa" */; buildPhases = ( - E1B2A71E0E41213300A72928 /* Resources */, - E177539C0E42520800F737F8 /* Copy Support Resources */, - E1B2A71F0E41213300A72928 /* Sources */, - E1B2A7200E41213300A72928 /* Frameworks */, + E18BF786069FF23700F076B8 /* Headers */, + E18BF787069FF23700F076B8 /* Resources */, + E15CFD86099995FD004929B6 /* Copy Support Resources */, + E18BF788069FF23700F076B8 /* Sources */, + E18BF789069FF23700F076B8 /* Frameworks */, ); buildRules = ( ); @@ -1685,7 +1895,7 @@ ); name = "Font Editor Cocoa"; productName = "Font Editor"; - productReference = E1B2A7220E41213300A72928 /* Font Editor.plugin */; + productReference = E18BF78B069FF23700F076B8 /* Font Editor.plugin */; productType = "com.apple.product-type.bundle"; }; /* End PBXNativeTarget section */ @@ -1693,493 +1903,551 @@ /* Begin PBXProject section */ F5B5880F0156D2A601000001 /* Project object */ = { isa = PBXProject; - buildConfigurationList = 84A45AA50E410BAD008598FD /* Build configuration list for PBXProject "ResKnife" */; - compatibilityVersion = "Xcode 3.1"; + buildConfigurationList = E13F7F0508F0411100E2A5CB /* Build configuration list for PBXProject "ResKnife" */; + compatibilityVersion = "Xcode 2.4"; hasScannedForEncodings = 1; mainGroup = F5B588100156D2A601000001; productRefGroup = F5B588110156D30301000001 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - E1B2A3DE0E41103700A72928 /* ResKnife Cocoa */, - E1B2A43E0E41103800A72928 /* Hex Editor Cocoa */, - E1B2A55B0E41103A00A72928 /* Template Editor Cocoa */, - E1B2A7210E41213300A72928 /* Font Editor Cocoa */, - E1B2A5490E41103A00A72928 /* Bitmap Editor Cocoa */, - E1B2A46A0E41103800A72928 /* NovaTools */, - E1B2A4950E41103800A72928 /* ResKnife Carbon */, - E1B2A4C60E41103900A72928 /* libResKnife */, - E1B2A4F10E41103900A72928 /* Hex Editor Carbon */, - E1B2A5080E41103900A72928 /* Template Editor Carbon */, - E1B2A5190E41103900A72928 /* PICT Editor */, - E1B2A52A0E41103900A72928 /* Uli's Template Editor (Abandoned) */, + E18BF537069FEA1300F076B8 /* ResKnife Cocoa */, + E18BF58E069FEA1400F076B8 /* Hex Editor Cocoa */, + E18BF69E069FEA1800F076B8 /* Template Editor Cocoa */, + E18BF5A7069FEA1400F076B8 /* Nick's Template Editor Cocoa */, + E18BF68E069FEA1800F076B8 /* Bitmap Editor Cocoa */, + E18BF78A069FF23700F076B8 /* Font Editor Cocoa */, + E18BF5B7069FEA1400F076B8 /* NovaTools */, + E18BF5E6069FEA1500F076B8 /* ResKnife Carbon */, + E18BF615069FEA1500F076B8 /* libResKnife */, + E18BF63E069FEA1600F076B8 /* Hex Editor Carbon */, + E18BF653069FEA1600F076B8 /* Template Editor Carbon */, + E18BF662069FEA1700F076B8 /* PICT Editor Carbon */, + E18BF671069FEA1700F076B8 /* Uli's Template Editor */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - E1B2A4010E41103700A72928 /* Resources */ = { + E18BF553069FEA1300F076B8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4020E41103700A72928 /* AboutPanel.nib in Resources */, - E1B2A4030E41103700A72928 /* Application.nib in Resources */, - E1B2A4040E41103700A72928 /* InfoWindow.nib in Resources */, - E1B2A4050E41103700A72928 /* PrefsWindow.nib in Resources */, - E1B2A4060E41103700A72928 /* ResourceDocument.nib in Resources */, - E1B2A4070E41103700A72928 /* CreateResourceSheet.nib in Resources */, - E1B2A4080E41103700A72928 /* InfoPlist.strings in Resources */, - E1B2A4090E41103700A72928 /* Localizable.strings in Resources */, - E1B2A40A0E41103700A72928 /* defaults.plist in Resources */, - E1B2A40B0E41103700A72928 /* ResKnife.icns in Resources */, - E1B2A40C0E41103700A72928 /* Resource file.icns in Resources */, - E1B2A40D0E41103700A72928 /* Icon file.icns in Resources */, - E1B2A40E0E41103700A72928 /* Create.tiff in Resources */, - E1B2A40F0E41103700A72928 /* Delete.tiff in Resources */, - E1B2A4100E41103700A72928 /* Edit.tiff in Resources */, - E1B2A4110E41103700A72928 /* Edit Hex.tiff in Resources */, - E1B2A4120E41103700A72928 /* Save.tiff in Resources */, - E1B2A4130E41103700A72928 /* Show Info.tiff in Resources */, - E1B2A4140E41103700A72928 /* ResKnife.scriptSuite in Resources */, - E1B2A4150E41103700A72928 /* ResKnife.scriptTerminology in Resources */, - E1B2A4160E41103700A72928 /* Export.tiff in Resources */, + E18BF554069FEA1300F076B8 /* AboutPanel.nib in Resources */, + E18BF555069FEA1300F076B8 /* Application.nib in Resources */, + E18BF556069FEA1300F076B8 /* InfoWindow.nib in Resources */, + E18BF557069FEA1300F076B8 /* PrefsWindow.nib in Resources */, + E18BF558069FEA1300F076B8 /* ResourceDocument.nib in Resources */, + E18BF559069FEA1300F076B8 /* CreateResourceSheet.nib in Resources */, + E18BF55A069FEA1300F076B8 /* InfoPlist.strings in Resources */, + E18BF55B069FEA1300F076B8 /* Localizable.strings in Resources */, + E18BF55C069FEA1300F076B8 /* defaults.plist in Resources */, + E18BF55D069FEA1300F076B8 /* ResKnife.icns in Resources */, + E18BF55E069FEA1300F076B8 /* Resource file.icns in Resources */, + E18BF55F069FEA1300F076B8 /* Icon file.icns in Resources */, + E18BF560069FEA1300F076B8 /* Create.tiff in Resources */, + E18BF561069FEA1300F076B8 /* Delete.tiff in Resources */, + E18BF562069FEA1300F076B8 /* Edit.tiff in Resources */, + E18BF563069FEA1300F076B8 /* Edit Hex.tiff in Resources */, + E18BF564069FEA1300F076B8 /* Save.tiff in Resources */, + E18BF565069FEA1300F076B8 /* Show Info.tiff in Resources */, + E18BF566069FEA1300F076B8 /* ResKnife.scriptSuite in Resources */, + E18BF567069FEA1300F076B8 /* ResKnife.scriptTerminology in Resources */, + E18BF568069FEA1300F076B8 /* Export.tiff in Resources */, + E18BF569069FEA1300F076B8 /* Resource Type Mappings.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4460E41103800A72928 /* Resources */ = { + E18BF597069FEA1400F076B8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4470E41103800A72928 /* HexWindow.nib in Resources */, - E1B2A4480E41103800A72928 /* FindSheet.nib in Resources */, - E1B2A4490E41103800A72928 /* PasteMenu.nib in Resources */, + E18BF598069FEA1400F076B8 /* HexWindow.nib in Resources */, + E18BF599069FEA1400F076B8 /* FindSheet.nib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4790E41103800A72928 /* Resources */ = { + E18BF5AB069FEA1400F076B8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A47A0E41103800A72928 /* NovaTools.nib in Resources */, - E1B2A47B0E41103800A72928 /* boom.nib in Resources */, - E1B2A47C0E41103800A72928 /* char.nib in Resources */, - E1B2A47D0E41103800A72928 /* colr.nib in Resources */, - E1B2A47E0E41103800A72928 /* cron.nib in Resources */, - E1B2A47F0E41103800A72928 /* desc.nib in Resources */, - E1B2A4800E41103800A72928 /* Resource Types.strings in Resources */, + E18BF5AC069FEA1400F076B8 /* TemplateWindow.nib in Resources */, + E18BFA3706A20B7A00F076B8 /* Info.plist in Resources */, + E13F846A08F18FBE00E2A5CB /* Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4A90E41103800A72928 /* Resources */ = { + E18BF5C8069FEA1400F076B8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4AA0E41103800A72928 /* ResKnife.nib in Resources */, + E18BF5C9069FEA1400F076B8 /* NovaTools.nib in Resources */, + E18BF5CA069FEA1400F076B8 /* boom.nib in Resources */, + E18BF5CB069FEA1400F076B8 /* char.nib in Resources */, + E18BF5CC069FEA1400F076B8 /* colr.nib in Resources */, + E18BF5CD069FEA1400F076B8 /* cron.nib in Resources */, + E18BF5CE069FEA1400F076B8 /* desc.nib in Resources */, + E18BF5CF069FEA1400F076B8 /* Resource Types.strings in Resources */, + E18BF5D0069FEA1400F076B8 /* misn.nib in Resources */, + E18BF5D1069FEA1400F076B8 /* ship.nib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4F90E41103900A72928 /* Resources */ = { + E18BF5FA069FEA1500F076B8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E18BF5FB069FEA1500F076B8 /* ResKnife.nib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF646069FEA1600F076B8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A50D0E41103900A72928 /* Resources */ = { + E18BF658069FEA1600F076B8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A51E0E41103900A72928 /* Resources */ = { + E18BF667069FEA1700F076B8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5350E41103900A72928 /* Resources */ = { + E18BF67C069FEA1700F076B8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A5360E41103900A72928 /* InfoPlist.strings in Resources */, + E18BF67D069FEA1700F076B8 /* InfoPlist.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A54E0E41103A00A72928 /* Resources */ = { + E18BF693069FEA1800F076B8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A54F0E41103A00A72928 /* ICONWindow.nib in Resources */, + E18BF694069FEA1800F076B8 /* ICONWindow.nib in Resources */, + E13F7F9908F05B5C00E2A5CB /* Info.plist in Resources */, + E1193949099940FD00A3A6EA /* InfoPlist.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A56C0E41103A00A72928 /* Resources */ = { + E18BF6AF069FEA1800F076B8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - E177574E0E425EE600F737F8 /* Info.plist in Resources */, - E177574C0E425EE600F737F8 /* Localizable.strings in Resources */, - E177574D0E425EE600F737F8 /* TemplateWindow.nib in Resources */, - E17757500E425EE600F737F8 /* DisplayTMPL.png in Resources */, + E18BF6B0069FEA1800F076B8 /* TemplateWindow.nib in Resources */, + E1A984FE099C309400A70612 /* DisplayTMPL.png in Resources */, + 0E85D4AC10A72953004240C0 /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A71E0E41213300A72928 /* Resources */ = { + E18BF787069FF23700F076B8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A73F0E41218F00A72928 /* FontDocument.nib in Resources */, - E1B2A7400E41218F00A72928 /* FontWindow.nib in Resources */, - E1B2A7410E41219000A72928 /* Localizable.strings in Resources */, + E18BF7D3069FFC7600F076B8 /* FontWindow.nib in Resources */, + E1193609099830D300A3A6EA /* FontDocument.nib in Resources */, + E11936660998552900A3A6EA /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXRezBuildPhase section */ - E1B2A4370E41103700A72928 /* Rez */ = { + E18BF589069FEA1300F076B8 /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4520E41103800A72928 /* Rez */ = { + E18BF5A3069FEA1400F076B8 /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4BD0E41103800A72928 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - E1B2A4BE0E41103800A72928 /* ResKnife.r in Rez */, - E1B2A4BF0E41103800A72928 /* ResKnife.rsrc in Rez */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E1B2A4EC0E41103900A72928 /* Rez */ = { + E18BF5B3069FEA1400F076B8 /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5020E41103900A72928 /* Rez */ = { + E18BF5E2069FEA1400F076B8 /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5120E41103900A72928 /* Rez */ = { + E18BF60E069FEA1500F076B8 /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A5130E41103900A72928 /* Template Editor.r in Rez */, + E18BF60F069FEA1500F076B8 /* ResKnife.r in Rez */, + E18BF610069FEA1500F076B8 /* ResKnife.rsrc in Rez */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5240E41103900A72928 /* Rez */ = { + E18BF63B069FEA1500F076B8 /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5420E41103900A72928 /* Rez */ = { + E18BF64F069FEA1600F076B8 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF65D069FEA1600F076B8 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + E18BF65E069FEA1600F076B8 /* Template Editor.r in Rez */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF66D069FEA1700F076B8 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF689069FEA1700F076B8 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + E18BF68A069FEA1700F076B8 /* Templar.rsrc in Rez */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF69A069FEA1800F076B8 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF6C4069FEA1800F076B8 /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A5430E41103900A72928 /* Templar.rsrc in Rez */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXRezBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - E1B2A41C0E41103700A72928 /* Sources */ = { + E18BF56F069FEA1300F076B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A41D0E41103700A72928 /* ApplicationDelegate.m in Sources */, - E1B2A41E0E41103700A72928 /* AttributesFormatter.m in Sources */, - E1B2A41F0E41103700A72928 /* CreateResourceSheetController.m in Sources */, - E1B2A4200E41103700A72928 /* InfoWindowController.m in Sources */, - E1B2A4210E41103700A72928 /* NameFormatter.m in Sources */, - E1B2A4220E41103700A72928 /* OutlineViewDelegate.m in Sources */, - E1B2A4230E41103700A72928 /* PrefsWindowController.m in Sources */, - E1B2A4240E41103700A72928 /* Resource.m in Sources */, - E1B2A4250E41103700A72928 /* ResourceDataSource.m in Sources */, - E1B2A4260E41103700A72928 /* ResourceDocument.m in Sources */, - E1B2A4270E41103700A72928 /* ResourceNameCell.m in Sources */, - E1B2A4280E41103700A72928 /* SizeFormatter.m in Sources */, - E1B2A4290E41103700A72928 /* NSOutlineView-SelectedItems.m in Sources */, - E1B2A42A0E41103700A72928 /* MoreFilesX.c in Sources */, - E1B2A42B0E41103700A72928 /* Notifications.m in Sources */, - E1B2A42C0E41103700A72928 /* NSString-FSSpec.m in Sources */, - E1B2A42D0E41103700A72928 /* PasteboardDocument.m in Sources */, - E1B2A42E0E41103700A72928 /* PasteboardWindowController.m in Sources */, - E1B2A42F0E41103700A72928 /* RKDocumentController.m in Sources */, - E1B2A4310E41103700A72928 /* main.m in Sources */, - E1B2A4320E41103700A72928 /* RKEditorRegistry.m in Sources */, - E1B2A4330E41103700A72928 /* RKSupportResourceRegistry.m in Sources */, - E1B2A7780E41230E00A72928 /* NGSCategories.m in Sources */, - E177526F0E424DCB00F737F8 /* OpenPanelDelegate.m in Sources */, + E18BF570069FEA1300F076B8 /* ApplicationDelegate.m in Sources */, + E18BF571069FEA1300F076B8 /* AttributesFormatter.m in Sources */, + E18BF572069FEA1300F076B8 /* CreateResourceSheetController.m in Sources */, + E18BF573069FEA1300F076B8 /* InfoWindowController.m in Sources */, + 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 */, + E18BF579069FEA1300F076B8 /* ResourceNameCell.m in Sources */, + E18BF57A069FEA1300F076B8 /* SizeFormatter.m in Sources */, + E18BF57B069FEA1300F076B8 /* NSOutlineView-SelectedItems.m in Sources */, + E18BF57C069FEA1300F076B8 /* MoreFilesX.c in Sources */, + E18BF57D069FEA1300F076B8 /* Notifications.m in Sources */, + E18BF57E069FEA1300F076B8 /* NSString-FSSpec.m in Sources */, + E18BF57F069FEA1300F076B8 /* PasteboardDocument.m in Sources */, + E18BF580069FEA1300F076B8 /* PasteboardWindowController.m in Sources */, + E18BF581069FEA1300F076B8 /* RKDocumentController.m in Sources */, + E18BF582069FEA1300F076B8 /* OpenPanelDelegate.m in Sources */, + E18BF583069FEA1300F076B8 /* main.m in Sources */, + E18BF584069FEA1300F076B8 /* RKEditorRegistry.m in Sources */, + E18BF585069FEA1300F076B8 /* RKSupportResourceRegistry.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A44A0E41103800A72928 /* Sources */ = { + E18BF59A069FEA1400F076B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A44B0E41103800A72928 /* HexEditorDelegate.m in Sources */, - E1B2A44C0E41103800A72928 /* HexTextView.m in Sources */, - E1B2A44D0E41103800A72928 /* HexWindowController.m in Sources */, - E1B2A44E0E41103800A72928 /* FindSheetController.m in Sources */, - E1B2A44F0E41103800A72928 /* Notifications.m in Sources */, - E1B2A77A0E41230E00A72928 /* NGSCategories.m in Sources */, - E17752350E424BAB00F737F8 /* NSData-HexRepresentation.m in Sources */, + E18BF59B069FEA1400F076B8 /* HexEditorDelegate.m in Sources */, + E18BF59C069FEA1400F076B8 /* HexTextView.m in Sources */, + E18BF59D069FEA1400F076B8 /* HexWindowController.mm in Sources */, + E18BF59E069FEA1400F076B8 /* FindSheetController.m in Sources */, + E18BF59F069FEA1400F076B8 /* Notifications.m in Sources */, + E18BF5A0069FEA1400F076B8 /* NSData-HexRepresentation.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4810E41103800A72928 /* Sources */ = { + E18BF5AD069FEA1400F076B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4820E41103800A72928 /* BoomWindowController.m in Sources */, - E1B2A4830E41103800A72928 /* NovaWindowController.m in Sources */, - E1B2A4840E41103800A72928 /* CharWindowController.m in Sources */, - E1B2A4850E41103800A72928 /* ColrWindowController.m in Sources */, - E1B2A4860E41103800A72928 /* CronWindowController.m in Sources */, - E1B2A4870E41103800A72928 /* DescWindowController.m in Sources */, - E1B2A4880E41103800A72928 /* DescSplitViewDelegate.m in Sources */, - E1B2A4890E41103800A72928 /* DataSource.m in Sources */, - E1B2A48A0E41103800A72928 /* Notifications.m in Sources */, - E1B2A48B0E41103800A72928 /* NSNumber-Range.m in Sources */, - E1B2A7800E41230E00A72928 /* NGSCategories.m in Sources */, + E18BF5AE069FEA1400F076B8 /* NGSTemplateWindowController.m in Sources */, + E18BF5AF069FEA1400F076B8 /* NGSElement.m in Sources */, + E18BF5B0069FEA1400F076B8 /* Notifications.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4AB0E41103800A72928 /* Sources */ = { + E18BF5D2069FEA1400F076B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4AC0E41103800A72928 /* Application.cpp in Sources */, - E1B2A4AD0E41103800A72928 /* Asynchronous.cpp in Sources */, - E1B2A4AE0E41103800A72928 /* DataBrowser.cpp in Sources */, - E1B2A4AF0E41103800A72928 /* EditorWindow.cpp in Sources */, - E1B2A4B00E41103800A72928 /* Errors.cpp in Sources */, - E1B2A4B10E41103800A72928 /* Files.cpp in Sources */, - E1B2A4B20E41103800A72928 /* FileWindow.cpp in Sources */, - E1B2A4B30E41103800A72928 /* HostCallbacks.cpp in Sources */, - E1B2A4B40E41103800A72928 /* InspectorWindow.cpp in Sources */, - E1B2A4B50E41103800A72928 /* PickerWindow.cpp in Sources */, - E1B2A4B60E41103800A72928 /* PlugObject.cpp in Sources */, - E1B2A4B70E41103800A72928 /* PlugWindow.cpp in Sources */, - E1B2A4B80E41103800A72928 /* ResourceObject.cpp in Sources */, - E1B2A4B90E41103800A72928 /* Utility.cpp in Sources */, - E1B2A4BA0E41103800A72928 /* WindowObject.cpp in Sources */, + E18BF5D3069FEA1400F076B8 /* BoomWindowController.m in Sources */, + E18BF5D4069FEA1400F076B8 /* NovaWindowController.m in Sources */, + E18BF5D5069FEA1400F076B8 /* CharWindowController.m in Sources */, + E18BF5D6069FEA1400F076B8 /* ColrWindowController.m in Sources */, + E18BF5D7069FEA1400F076B8 /* CronWindowController.m in Sources */, + E18BF5D8069FEA1400F076B8 /* DescWindowController.m in Sources */, + E18BF5D9069FEA1400F076B8 /* DescSplitViewDelegate.m in Sources */, + E18BF5DA069FEA1400F076B8 /* DataSource.m in Sources */, + E18BF5DB069FEA1400F076B8 /* Notifications.m in Sources */, + E18BF5DC069FEA1400F076B8 /* NSNumber-Range.m in Sources */, + E18BF5DD069FEA1400F076B8 /* MisnWindowController.m in Sources */, + E18BF5DE069FEA1400F076B8 /* ShipWindowController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4DA0E41103900A72928 /* Sources */ = { + E18BF5FC069FEA1500F076B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4DB0E41103900A72928 /* Application.cpp in Sources */, - E1B2A4DC0E41103900A72928 /* Asynchronous.cpp in Sources */, - E1B2A4DD0E41103900A72928 /* DataBrowser.cpp in Sources */, - E1B2A4DE0E41103900A72928 /* EditorWindow.cpp in Sources */, - E1B2A4DF0E41103900A72928 /* Errors.cpp in Sources */, - E1B2A4E00E41103900A72928 /* Files.cpp in Sources */, - E1B2A4E10E41103900A72928 /* FileWindow.cpp in Sources */, - E1B2A4E20E41103900A72928 /* HostCallbacks.cpp in Sources */, - E1B2A4E30E41103900A72928 /* WindowObject.cpp in Sources */, - E1B2A4E40E41103900A72928 /* Utility.cpp in Sources */, - E1B2A4E50E41103900A72928 /* ResourceObject.cpp in Sources */, - E1B2A4E60E41103900A72928 /* PlugWindow.cpp in Sources */, - E1B2A4E70E41103900A72928 /* PlugObject.cpp in Sources */, - E1B2A4E80E41103900A72928 /* PickerWindow.cpp in Sources */, - E1B2A4E90E41103900A72928 /* InspectorWindow.cpp in Sources */, + E18BF5FD069FEA1500F076B8 /* Application.cpp in Sources */, + E18BF5FE069FEA1500F076B8 /* Asynchronous.cpp in Sources */, + E18BF5FF069FEA1500F076B8 /* DataBrowser.cpp in Sources */, + E18BF600069FEA1500F076B8 /* EditorWindow.cpp in Sources */, + E18BF601069FEA1500F076B8 /* Errors.cpp in Sources */, + E18BF602069FEA1500F076B8 /* Files.cpp in Sources */, + E18BF603069FEA1500F076B8 /* FileWindow.cpp in Sources */, + E18BF604069FEA1500F076B8 /* HostCallbacks.cpp in Sources */, + E18BF605069FEA1500F076B8 /* InspectorWindow.cpp in Sources */, + E18BF606069FEA1500F076B8 /* PickerWindow.cpp in Sources */, + E18BF607069FEA1500F076B8 /* PlugObject.cpp in Sources */, + E18BF608069FEA1500F076B8 /* PlugWindow.cpp in Sources */, + E18BF609069FEA1500F076B8 /* ResourceObject.cpp in Sources */, + E18BF60A069FEA1500F076B8 /* Utility.cpp in Sources */, + E18BF60B069FEA1500F076B8 /* WindowObject.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A4FA0E41103900A72928 /* Sources */ = { + E18BF629069FEA1500F076B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A4FB0E41103900A72928 /* Events.cpp in Sources */, - E1B2A4FC0E41103900A72928 /* HexWindow.cpp in Sources */, - E1B2A4FD0E41103900A72928 /* Initalisation.cpp in Sources */, - E1B2A4FE0E41103900A72928 /* Utility.cpp in Sources */, + E18BF62A069FEA1500F076B8 /* Application.cpp in Sources */, + E18BF62B069FEA1500F076B8 /* Asynchronous.cpp in Sources */, + E18BF62C069FEA1500F076B8 /* DataBrowser.cpp in Sources */, + E18BF62D069FEA1500F076B8 /* EditorWindow.cpp in Sources */, + E18BF62E069FEA1500F076B8 /* Errors.cpp in Sources */, + E18BF62F069FEA1500F076B8 /* Files.cpp in Sources */, + E18BF630069FEA1500F076B8 /* FileWindow.cpp in Sources */, + E18BF631069FEA1500F076B8 /* HostCallbacks.cpp in Sources */, + E18BF632069FEA1500F076B8 /* WindowObject.cpp in Sources */, + E18BF633069FEA1500F076B8 /* Utility.cpp in Sources */, + E18BF634069FEA1500F076B8 /* ResourceObject.cpp in Sources */, + E18BF635069FEA1500F076B8 /* PlugWindow.cpp in Sources */, + E18BF636069FEA1500F076B8 /* PlugObject.cpp in Sources */, + E18BF637069FEA1500F076B8 /* PickerWindow.cpp in Sources */, + E18BF638069FEA1500F076B8 /* InspectorWindow.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A50E0E41103900A72928 /* Sources */ = { + E18BF647069FEA1600F076B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A50F0E41103900A72928 /* TemplateWindow.cpp in Sources */, + E18BF648069FEA1600F076B8 /* Events.cpp in Sources */, + E18BF649069FEA1600F076B8 /* HexWindow.cpp in Sources */, + E18BF64A069FEA1600F076B8 /* Initalisation.cpp in Sources */, + E18BF64B069FEA1600F076B8 /* Utility.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A51F0E41103900A72928 /* Sources */ = { + E18BF659069FEA1600F076B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A5200E41103900A72928 /* Initalisation.cpp in Sources */, - E1B2A5210E41103900A72928 /* PictWindow.cpp in Sources */, + E18BF65A069FEA1600F076B8 /* TemplateWindow.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5370E41103900A72928 /* Sources */ = { + E18BF668069FEA1700F076B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A5380E41103900A72928 /* BoolTemplateField.cpp in Sources */, - E1B2A5390E41103900A72928 /* DividerTemplateField.cpp in Sources */, - E1B2A53A0E41103900A72928 /* IntegerTemplateField.cpp in Sources */, - E1B2A53B0E41103900A72928 /* KHandleStream.cpp in Sources */, - E1B2A53C0E41103900A72928 /* ListTemplateField.cpp in Sources */, - E1B2A53D0E41103900A72928 /* LSTCTemplateField.cpp in Sources */, - E1B2A53E0E41103900A72928 /* StringTemplateField.cpp in Sources */, - E1B2A53F0E41103900A72928 /* Templar.cpp in Sources */, - E1B2A5400E41103900A72928 /* TemplateWindow.cpp in Sources */, + E18BF669069FEA1700F076B8 /* Initalisation.cpp in Sources */, + E18BF66A069FEA1700F076B8 /* PictWindow.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5500E41103A00A72928 /* Sources */ = { + E18BF67E069FEA1700F076B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A5510E41103A00A72928 /* Notifications.m in Sources */, - E1B2A5520E41103A00A72928 /* ICONWindowController.m in Sources */, - E1B2A77E0E41230E00A72928 /* NGSCategories.m in Sources */, + E18BF67F069FEA1700F076B8 /* BoolTemplateField.cpp in Sources */, + E18BF680069FEA1700F076B8 /* DividerTemplateField.cpp in Sources */, + E18BF681069FEA1700F076B8 /* IntegerTemplateField.cpp in Sources */, + E18BF682069FEA1700F076B8 /* KHandleStream.cpp in Sources */, + E18BF683069FEA1700F076B8 /* ListTemplateField.cpp in Sources */, + E18BF684069FEA1700F076B8 /* LSTCTemplateField.cpp in Sources */, + E18BF685069FEA1700F076B8 /* StringTemplateField.cpp in Sources */, + E18BF686069FEA1700F076B8 /* Templar.cpp in Sources */, + E18BF687069FEA1700F076B8 /* TemplateWindow.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A5700E41103A00A72928 /* Sources */ = { + E18BF695069FEA1800F076B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A5720E41103A00A72928 /* Notifications.m in Sources */, - E1B2A77C0E41230E00A72928 /* NGSCategories.m in Sources */, - E17757380E425EE600F737F8 /* Element.m in Sources */, - E17757390E425EE600F737F8 /* ElementDATE.m in Sources */, - E177573A0E425EE600F737F8 /* ElementDBYT.m in Sources */, - E177573B0E425EE600F737F8 /* ElementDLLG.m in Sources */, - E177573C0E425EE600F737F8 /* ElementDLNG.m in Sources */, - E177573D0E425EE600F737F8 /* ElementDWRD.m in Sources */, - E177573E0E425EE600F737F8 /* ElementFBYT.m in Sources */, - E177573F0E425EE600F737F8 /* ElementFIXD.m in Sources */, - E17757400E425EE600F737F8 /* ElementFRAC.m in Sources */, - E17757410E425EE600F737F8 /* ElementHEXD.m in Sources */, - E17757420E425EE600F737F8 /* ElementKEYB.mm in Sources */, - E17757430E425EE600F737F8 /* ElementLSTB.mm in Sources */, - E17757440E425EE600F737F8 /* ElementLSTC.mm in Sources */, - E17757450E425EE600F737F8 /* ElementLSTE.m in Sources */, - E17757460E425EE600F737F8 /* ElementOCNT.m in Sources */, - E17757470E425EE600F737F8 /* ElementPSTR.m in Sources */, - E17757480E425EE600F737F8 /* ElementUBYT.m in Sources */, - E17757490E425EE600F737F8 /* ElementULLG.m in Sources */, - E177574A0E425EE600F737F8 /* ElementULNG.m in Sources */, - E177574B0E425EE600F737F8 /* ElementUWRD.m in Sources */, - E17757520E425EE600F737F8 /* TemplateStream.m in Sources */, - E17757530E425EE600F737F8 /* TemplateWindowController.m in Sources */, + E18BF696069FEA1800F076B8 /* Notifications.m in Sources */, + E18BF697069FEA1800F076B8 /* ICONWindowController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1B2A71F0E41213300A72928 /* Sources */ = { + E18BF6B3069FEA1800F076B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E1B2A7430E41219000A72928 /* FontWindowController.m in Sources */, - E1B2A7760E41230E00A72928 /* NGSCategories.m in Sources */, - E17752760E424ED400F737F8 /* Notifications.m in Sources */, + E18BF6B4069FEA1800F076B8 /* TemplateWindowController.mm in Sources */, + E18BF6B5069FEA1800F076B8 /* Notifications.m in Sources */, + E18BF6B6069FEA1800F076B8 /* Element.m in Sources */, + E18BF6B8069FEA1800F076B8 /* TemplateStream.m in Sources */, + E18BF6B9069FEA1800F076B8 /* ElementLSTB.mm in Sources */, + E18BF6BB069FEA1800F076B8 /* ElementPSTR.m in Sources */, + E18BF6BC069FEA1800F076B8 /* ElementDWRD.m in Sources */, + E18BF6BD069FEA1800F076B8 /* ElementLSTE.m in Sources */, + E18BF6BE069FEA1800F076B8 /* ElementDLNG.m in Sources */, + E18BF6BF069FEA1800F076B8 /* ElementDBYT.m in Sources */, + E18BF6C0069FEA1800F076B8 /* ElementOCNT.m in Sources */, + E18BF6C1069FEA1800F076B8 /* ElementLSTC.mm in Sources */, + E14AC2770996BF1700D293E5 /* ElementDLLG.m in Sources */, + E14AC454099702F400D293E5 /* ElementFBYT.m in Sources */, + E1193684099864AD00A3A6EA /* ElementUBYT.m in Sources */, + E1193686099864AD00A3A6EA /* ElementULNG.m in Sources */, + E1193688099864AD00A3A6EA /* ElementUWRD.m in Sources */, + E119371C09986D8300A3A6EA /* ElementFIXD.m in Sources */, + E119376F0998768600A3A6EA /* ElementFRAC.m in Sources */, + E119379409987CC400A3A6EA /* ElementULLG.m in Sources */, + E119388E0999296B00A3A6EA /* ElementHEXD.m in Sources */, + E15CFF83099BECAF004929B6 /* ElementDATE.m in Sources */, + E1D0DB530A109A4F0011739C /* ElementKEYB.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E18BF788069FF23700F076B8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E18BF7D5069FFC7600F076B8 /* FontWindowController.mm in Sources */, + E18BF8EB06A0027700F076B8 /* Notifications.m in Sources */, + E119363B099833AE00A3A6EA /* Categories.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - E17753B20E42526500F737F8 /* PBXTargetDependency */ = { + E13F836508F139E900E2A5CB /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = E1B2A7210E41213300A72928 /* Font Editor Cocoa */; - targetProxy = E17753B10E42526500F737F8 /* PBXContainerItemProxy */; + target = E18BF78A069FF23700F076B8 /* Font Editor Cocoa */; + targetProxy = E13F836408F139E900E2A5CB /* PBXContainerItemProxy */; }; - E17753B40E42526F00F737F8 /* PBXTargetDependency */ = { + E18BF6CA069FEA1900F076B8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = E1B2A46A0E41103800A72928 /* NovaTools */; - targetProxy = E17753B30E42526F00F737F8 /* PBXContainerItemProxy */; + target = E18BF58E069FEA1400F076B8 /* Hex Editor Cocoa */; + targetProxy = E18BF6C9069FEA1900F076B8 /* PBXContainerItemProxy */; }; - E1B2A5880E41103A00A72928 /* PBXTargetDependency */ = { + E18BF6D0069FEA1900F076B8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = E1B2A43E0E41103800A72928 /* Hex Editor Cocoa */; - targetProxy = E1B2A5870E41103A00A72928 /* PBXContainerItemProxy */; - }; - E1B2A5900E41103A00A72928 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = E1B2A55B0E41103A00A72928 /* Template Editor Cocoa */; - targetProxy = E1B2A58F0E41103A00A72928 /* PBXContainerItemProxy */; + target = E18BF69E069FEA1800F076B8 /* Template Editor Cocoa */; + targetProxy = E18BF6CF069FEA1900F076B8 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ + 3D0B38B504DEF465005AED5E /* TemplateWindow.nib */ = { + isa = PBXVariantGroup; + children = ( + 3D0B38B604DEF465005AED5E /* English */, + ); + name = TemplateWindow.nib; + sourceTree = ""; + }; 3D3B99BC04DC16FC0056861E /* ICONWindow.nib */ = { isa = PBXVariantGroup; children = ( - 3D3B99BD04DC16FC0056861E /* English */, + 3D3B99BD04DC16FC0056861E /* ICONWindow.nib */, ); name = ICONWindow.nib; sourceTree = ""; }; - E177572A0E425EE200F737F8 /* Localizable.strings */ = { + E1193607099830D200A3A6EA /* FontDocument.nib */ = { isa = PBXVariantGroup; children = ( - E177572B0E425EE200F737F8 /* English */, - ); - name = Localizable.strings; - path = ..; - sourceTree = ""; - }; - E177572C0E425EE200F737F8 /* TemplateWindow.nib */ = { - isa = PBXVariantGroup; - children = ( - E177572D0E425EE200F737F8 /* English */, - ); - name = TemplateWindow.nib; - path = ..; - sourceTree = ""; - }; - E1B2A7350E41218F00A72928 /* FontDocument.nib */ = { - isa = PBXVariantGroup; - children = ( - E1B2A7360E41218F00A72928 /* English */, + E1193608099830D300A3A6EA /* English */, ); name = FontDocument.nib; sourceTree = ""; }; - E1B2A7370E41218F00A72928 /* FontWindow.nib */ = { + E11936650998552900A3A6EA /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( - E1B2A7380E41218F00A72928 /* English */, - ); - name = FontWindow.nib; - sourceTree = ""; - }; - E1B2A7390E41218F00A72928 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - E1B2A73A0E41218F00A72928 /* English */, + E11936620998551200A3A6EA /* English */, ); name = Localizable.strings; sourceTree = ""; }; + E1193947099940FD00A3A6EA /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + E1193948099940FD00A3A6EA /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + E18BF7CF069FFC7600F076B8 /* FontWindow.nib */ = { + isa = PBXVariantGroup; + children = ( + E18BF7D0069FFC7600F076B8 /* English */, + ); + name = FontWindow.nib; + path = English.lproj; + sourceTree = ""; + }; + E19FB51C054E919F00A80202 /* misn.nib */ = { + isa = PBXVariantGroup; + children = ( + E19FB51D054E919F00A80202 /* English */, + ); + name = misn.nib; + sourceTree = ""; + }; + E19FB51F054E91AA00A80202 /* ship.nib */ = { + isa = PBXVariantGroup; + children = ( + E19FB520054E91AA00A80202 /* English */, + ); + name = ship.nib; + sourceTree = ""; + }; F50DFE16036C203F01A8010A /* ResKnife.scriptTerminology */ = { isa = PBXVariantGroup; children = ( @@ -2220,14 +2488,6 @@ name = CreateResourceSheet.nib; sourceTree = ""; }; - F5606FDD02ACF2F701A8010C /* PasteMenu.nib */ = { - isa = PBXVariantGroup; - children = ( - F5606FDE02ACF2F701A8010C /* PasteMenu.nib */, - ); - name = PasteMenu.nib; - sourceTree = ""; - }; F58F6BA9025BDBA701A8010C /* NovaTools.nib */ = { isa = PBXVariantGroup; children = ( @@ -2299,6 +2559,14 @@ path = Cocoa; sourceTree = SOURCE_ROOT; }; + F5D0CBD302278F8B01A80001 /* TemplateWindow.nib */ = { + isa = PBXVariantGroup; + children = ( + F53544430226778D01A80001 /* TemplateWindow.nib */, + ); + name = TemplateWindow.nib; + sourceTree = ""; + }; F5EDC612025BFB7301A8010C /* boom.nib */ = { isa = PBXVariantGroup; children = ( @@ -2350,119 +2618,314 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 84A45AA60E410BAD008598FD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_C_LANGUAGE_STANDARD = c99; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvmgcc42; - }; - name = Debug; - }; - 84A45AA70E410BAD008598FD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_C_LANGUAGE_STANDARD = c99; - GCC_VERSION = com.apple.compilers.llvmgcc42; - }; - name = Release; - }; - E1B2A4390E41103700A72928 /* Debug */ = { + E13F7ED208F0411100E2A5CB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = c99; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_PREFIX_HEADER = "Prefix Files/C99 Prefix.h"; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - INFOPLIST_FILE = Cocoa/Info.plist; - PREBINDING = NO; - PRODUCT_NAME = "ResKnife Cocoa"; - PROFILING_CODE = YES; + GCC_OPTIMIZATION_LEVEL = 0; + INFOPLIST_FILE = "Cocoa/Plug-Ins/Hex Editor/Info.plist"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + "-bundle", + "-undefined", + error, + ); + OTHER_REZFLAGS = ""; + PRODUCT_NAME = "Hexadecimal Editor"; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", "-Wno-four-char-constants", "-Wno-unknown-pragmas", ); - WRAPPER_EXTENSION = app; + WRAPPER_EXTENSION = plugin; + ZERO_LINK = YES; }; name = Debug; }; - E1B2A43A0E41103700A72928 /* Release */ = { + E13F7ED308F0411100E2A5CB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = YES; + DEBUGGING_SYMBOLS = NO; + GCC_C_LANGUAGE_STANDARD = c99; GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_PREFIX_HEADER = "Prefix Files/C99 Prefix.h"; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - INFOPLIST_FILE = Cocoa/Info.plist; - PREBINDING = NO; - PRODUCT_NAME = "ResKnife Cocoa"; - PROFILING_CODE = YES; + INFOPLIST_FILE = "Cocoa/Plug-Ins/Hex Editor/Info.plist"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + "-bundle", + "-undefined", + error, + ); + OTHER_REZFLAGS = ""; + PRODUCT_NAME = "Hexadecimal Editor"; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", "-Wno-four-char-constants", "-Wno-unknown-pragmas", ); - WRAPPER_EXTENSION = app; + WRAPPER_EXTENSION = plugin; + ZERO_LINK = NO; }; name = Release; }; - E1B2A4540E41103800A72928 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREFIX_HEADER = "Prefix Files/C99 Prefix.h"; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - INFOPLIST_FILE = "Cocoa/Plug-Ins/Hex Editor/Info.plist"; - OTHER_LDFLAGS = ( - "-bundle", - "-undefined", - error, - ); - PRODUCT_NAME = "Hexadecimal Editor"; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = plugin; - }; - name = Debug; - }; - E1B2A4550E41103800A72928 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_PREFIX_HEADER = "Prefix Files/C99 Prefix.h"; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - INFOPLIST_FILE = "Cocoa/Plug-Ins/Hex Editor/Info.plist"; - OTHER_LDFLAGS = ( - "-bundle", - "-undefined", - error, - ); - PRODUCT_NAME = "Hexadecimal Editor"; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = plugin; - }; - name = Release; - }; - E1B2A4910E41103800A72928 /* Debug */ = { + E13F7ED608F0411100E2A5CB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + INFOPLIST_FILE = "Cocoa/Plug-Ins/Template Editor/Info.plist"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = "Template Editor"; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = plugin; + ZERO_LINK = YES; + }; + name = Debug; + }; + E13F7ED708F0411100E2A5CB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DEBUGGING_SYMBOLS = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + INFOPLIST_FILE = "Cocoa/Plug-Ins/Template Editor/Info.plist"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = "Template Editor"; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = plugin; + ZERO_LINK = NO; + }; + name = Release; + }; + E13F7EDA08F0411100E2A5CB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + INFOPLIST_FILE = Cocoa/Info.plist; + PREBINDING = YES; + PRODUCT_NAME = "ResKnife Cocoa"; + PROFILING_CODE = YES; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = app; + ZERO_LINK = YES; + }; + name = Debug; + }; + E13F7EDB08F0411100E2A5CB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DEBUGGING_SYMBOLS = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_OPTIMIZATION_LEVEL = 0; + INFOPLIST_FILE = Cocoa/Info.plist; + PREBINDING = YES; + PRODUCT_NAME = "ResKnife Cocoa"; + PROFILING_CODE = YES; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = app; + ZERO_LINK = NO; + }; + name = Release; + }; + E13F7EDE08F0411100E2A5CB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + INFOPLIST_FILE = "Cocoa/Plug-Ins/Nick's Template Editor/Info.plist"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = "Nicks Template Editor"; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = plugin; + ZERO_LINK = YES; + }; + name = Debug; + }; + E13F7EDF08F0411100E2A5CB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DEBUGGING_SYMBOLS = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + INFOPLIST_FILE = "Cocoa/Plug-Ins/Nick's Template Editor/Info.plist"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = "Nicks Template Editor"; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = plugin; + ZERO_LINK = NO; + }; + name = Release; + }; + E13F7EE208F0411100E2A5CB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + INFOPLIST_FILE = ICONEditor/Info.plist; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = "Bitmap Editor"; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = plugin; + ZERO_LINK = YES; + }; + name = Debug; + }; + E13F7EE308F0411100E2A5CB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DEBUGGING_SYMBOLS = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + INFOPLIST_FILE = ICONEditor/Info.plist; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = "Bitmap Editor"; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = plugin; + ZERO_LINK = NO; + }; + name = Release; + }; + E13F7EE608F0411100E2A5CB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_SIGN_COMPARE = NO; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + INFOPLIST_FILE = "Cocoa/Plug-Ins/Font Editor/Info.plist"; + INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + OTHER_REZFLAGS = ""; + PRODUCT_NAME = "Font Editor"; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost"; + WRAPPER_EXTENSION = plugin; + ZERO_LINK = YES; + }; + name = Debug; + }; + E13F7EE708F0411100E2A5CB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DEBUGGING_SYMBOLS = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_SIGN_COMPARE = NO; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + INFOPLIST_FILE = "Cocoa/Plug-Ins/Font Editor/Info.plist"; + INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + OTHER_REZFLAGS = ""; + PRODUCT_NAME = "Font Editor"; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost"; + WRAPPER_EXTENSION = plugin; + ZERO_LINK = NO; + }; + name = Release; + }; + E13F7EEA08F0411100E2A5CB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; @@ -2471,8 +2934,6 @@ GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREFIX_HEADER = "Prefix Files/C99 Prefix.h"; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = NovaTools/Info.plist; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ""; @@ -2489,15 +2950,13 @@ }; name = Debug; }; - E1B2A4920E41103800A72928 /* Release */ = { + E13F7EEB08F0411100E2A5CB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = YES; + DEBUGGING_SYMBOLS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_PREFIX_HEADER = "Prefix Files/C99 Prefix.h"; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = NovaTools/Info.plist; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ""; @@ -2514,16 +2973,15 @@ }; name = Release; }; - E1B2A4C10E41103800A72928 /* Debug */ = { + E13F7EEE08F0411100E2A5CB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; - FRAMEWORK_SEARCH_PATHS = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Versions/A/Frameworks\""; + FRAMEWORK_SEARCH_PATHS = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Versions/A/Frameworks"; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = "Info-ResKnife_Carbon__Upgraded_.plist"; LIBRARY_SEARCH_PATHS = Carbon; OTHER_CFLAGS = ""; @@ -2541,14 +2999,13 @@ }; name = Debug; }; - E1B2A4C20E41103800A72928 /* Release */ = { + E13F7EEF08F0411100E2A5CB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = YES; - FRAMEWORK_SEARCH_PATHS = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Versions/A/Frameworks\""; + DEBUGGING_SYMBOLS = NO; + FRAMEWORK_SEARCH_PATHS = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Versions/A/Frameworks"; GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = "Info-ResKnife_Carbon__Upgraded_.plist"; LIBRARY_SEARCH_PATHS = Carbon; OTHER_CFLAGS = ""; @@ -2566,7 +3023,7 @@ }; name = Release; }; - E1B2A4EE0E41103900A72928 /* Debug */ = { + E13F7EF208F0411100E2A5CB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; @@ -2581,7 +3038,7 @@ OTHER_LDFLAGS = ""; OTHER_LIBTOOL_FLAGS = ""; OTHER_REZFLAGS = ""; - PRODUCT_NAME = ResKnife.dylib; + PRODUCT_NAME = libResKnife.dylib; REZ_EXECUTABLE = YES; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( @@ -2593,20 +3050,20 @@ }; name = Debug; }; - E1B2A4EF0E41103900A72928 /* Release */ = { + E13F7EF308F0411100E2A5CB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = YES; + DEBUGGING_SYMBOLS = NO; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ""; OTHER_LIBTOOL_FLAGS = ""; OTHER_REZFLAGS = ""; - PRODUCT_NAME = ResKnife.dylib; + PRODUCT_NAME = libResKnife.dylib; REZ_EXECUTABLE = YES; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( @@ -2618,7 +3075,7 @@ }; name = Release; }; - E1B2A5040E41103900A72928 /* Debug */ = { + E13F7EF608F0411100E2A5CB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; @@ -2626,19 +3083,16 @@ GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = "Info-Hex_Editor_Carbon__Upgraded_.plist"; - LIBRARY_SEARCH_PATHS = ( - "\"/Users/nicholas/Projects/ResKnife/Carbon\"", - "\"$(SRCROOT)/../build/Debug\"", - ); + LIBRARY_SEARCH_PATHS = /Users/nicholas/Projects/ResKnife/Carbon; OTHER_LDFLAGS = ( "-bundle", "-bundle_loader", - "$HOME/Projects/ResKnife/build/ResKnife\\\\\\ Carbon", + "$(OTHER_LDFLAGS_QUOTED_FOR_TARGET_1)", "-undefined", error, ); + OTHER_LDFLAGS_QUOTED_FOR_TARGET_1 = "$HOME/Projects/ResKnife/build/ResKnife\\ Carbon"; OTHER_REZFLAGS = ""; PRODUCT_NAME = "Hex Editor"; SECTORDER_FLAGS = ""; @@ -2652,25 +3106,22 @@ }; name = Debug; }; - E1B2A5050E41103900A72928 /* Release */ = { + E13F7EF708F0411100E2A5CB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = YES; + DEBUGGING_SYMBOLS = NO; GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = "Info-Hex_Editor_Carbon__Upgraded_.plist"; - LIBRARY_SEARCH_PATHS = ( - "\"/Users/nicholas/Projects/ResKnife/Carbon\"", - "\"$(SRCROOT)/../build/Debug\"", - ); + LIBRARY_SEARCH_PATHS = /Users/nicholas/Projects/ResKnife/Carbon; OTHER_LDFLAGS = ( "-bundle", "-bundle_loader", - "$HOME/Projects/ResKnife/build/ResKnife\\\\\\ Carbon", + "$(OTHER_LDFLAGS_QUOTED_FOR_TARGET_1)", "-undefined", error, ); + OTHER_LDFLAGS_QUOTED_FOR_TARGET_1 = "$HOME/Projects/ResKnife/build/ResKnife\\ Carbon"; OTHER_REZFLAGS = ""; PRODUCT_NAME = "Hex Editor"; SECTORDER_FLAGS = ""; @@ -2684,7 +3135,7 @@ }; name = Release; }; - E1B2A5150E41103900A72928 /* Debug */ = { + E13F7EFA08F0411100E2A5CB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; @@ -2692,7 +3143,6 @@ GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = "Info-Template_Editor_Carbon__Upgraded_.plist"; LIBRARY_SEARCH_PATHS = /Volumes/DeskStar/nicholas/Projects/ResKnife/Carbon; OTHER_LDFLAGS = ( @@ -2713,13 +3163,12 @@ }; name = Debug; }; - E1B2A5160E41103900A72928 /* Release */ = { + E13F7EFB08F0411100E2A5CB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = YES; + DEBUGGING_SYMBOLS = NO; GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = "Info-Template_Editor_Carbon__Upgraded_.plist"; LIBRARY_SEARCH_PATHS = /Volumes/DeskStar/nicholas/Projects/ResKnife/Carbon; OTHER_LDFLAGS = ( @@ -2740,7 +3189,7 @@ }; name = Release; }; - E1B2A5260E41103900A72928 /* Debug */ = { + E13F7EFE08F0411100E2A5CB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; @@ -2748,7 +3197,6 @@ GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = "Info-PICT_Editor__Upgraded_.plist"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( @@ -2769,13 +3217,12 @@ }; name = Debug; }; - E1B2A5270E41103900A72928 /* Release */ = { + E13F7EFF08F0411100E2A5CB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = YES; + DEBUGGING_SYMBOLS = NO; GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = "Info-PICT_Editor__Upgraded_.plist"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( @@ -2796,7 +3243,7 @@ }; name = Release; }; - E1B2A5450E41103900A72928 /* Debug */ = { + E13F7F0208F0411100E2A5CB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; @@ -2804,7 +3251,6 @@ GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = "Info-Uli_s_Template_Editor__Upgraded_.plist"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ""; @@ -2821,13 +3267,12 @@ }; name = Debug; }; - E1B2A5460E41103900A72928 /* Release */ = { + E13F7F0308F0411100E2A5CB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = YES; + DEBUGGING_SYMBOLS = NO; GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = "Info-Uli_s_Template_Editor__Upgraded_.plist"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ""; @@ -2844,249 +3289,147 @@ }; name = Release; }; - E1B2A5570E41103A00A72928 /* Debug */ = { + E13F7F0608F0411100E2A5CB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - INFOPLIST_FILE = ICONEditor/Info.plist; - OTHER_LDFLAGS = ""; - PRODUCT_NAME = "Bitmap Editor"; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = plugin; + GCC_VERSION = 4.0; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; }; name = Debug; }; - E1B2A5580E41103A00A72928 /* Release */ = { + E13F7F0708F0411100E2A5CB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - INFOPLIST_FILE = ICONEditor/Info.plist; - OTHER_LDFLAGS = ""; - PRODUCT_NAME = "Bitmap Editor"; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = plugin; - }; - name = Release; - }; - E1B2A5830E41103A00A72928 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INFOPLIST_FILE = "Cocoa/Plug-Ins/Template Editor/Info.plist"; - OTHER_LDFLAGS = ""; - PRODUCT_NAME = "Template Editor"; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = plugin; - }; - name = Debug; - }; - E1B2A5840E41103A00A72928 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INFOPLIST_FILE = "Cocoa/Plug-Ins/Template Editor/Info.plist"; - OTHER_LDFLAGS = ""; - PRODUCT_NAME = "Template Editor"; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = plugin; - }; - name = Release; - }; - E1B2A7240E41213400A72928 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INFOPLIST_FILE = "Cocoa/Plug-Ins/Font Editor/Info.plist"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; - PRODUCT_NAME = "Font Editor"; - WRAPPER_EXTENSION = plugin; - }; - name = Debug; - }; - E1B2A7250E41213400A72928 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INFOPLIST_FILE = "Cocoa/Plug-Ins/Font Editor/Info.plist"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; - PRODUCT_NAME = "Font Editor"; - WRAPPER_EXTENSION = plugin; + GCC_VERSION = 4.0; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 84A45AA50E410BAD008598FD /* Build configuration list for PBXProject "ResKnife" */ = { + E13F7ED108F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Hex Editor Cocoa" */ = { isa = XCConfigurationList; buildConfigurations = ( - 84A45AA60E410BAD008598FD /* Debug */, - 84A45AA70E410BAD008598FD /* Release */, + E13F7ED208F0411100E2A5CB /* Debug */, + E13F7ED308F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - E1B2A4380E41103700A72928 /* Build configuration list for PBXNativeTarget "ResKnife Cocoa" */ = { + E13F7ED508F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Template Editor Cocoa" */ = { isa = XCConfigurationList; buildConfigurations = ( - E1B2A4390E41103700A72928 /* Debug */, - E1B2A43A0E41103700A72928 /* Release */, + E13F7ED608F0411100E2A5CB /* Debug */, + E13F7ED708F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - E1B2A4530E41103800A72928 /* Build configuration list for PBXNativeTarget "Hex Editor Cocoa" */ = { + E13F7ED908F0411100E2A5CB /* Build configuration list for PBXNativeTarget "ResKnife Cocoa" */ = { isa = XCConfigurationList; buildConfigurations = ( - E1B2A4540E41103800A72928 /* Debug */, - E1B2A4550E41103800A72928 /* Release */, + E13F7EDA08F0411100E2A5CB /* Debug */, + E13F7EDB08F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - E1B2A4900E41103800A72928 /* Build configuration list for PBXNativeTarget "NovaTools" */ = { + E13F7EDD08F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Nick's Template Editor Cocoa" */ = { isa = XCConfigurationList; buildConfigurations = ( - E1B2A4910E41103800A72928 /* Debug */, - E1B2A4920E41103800A72928 /* Release */, + E13F7EDE08F0411100E2A5CB /* Debug */, + E13F7EDF08F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - E1B2A4C00E41103800A72928 /* Build configuration list for PBXNativeTarget "ResKnife Carbon" */ = { + E13F7EE108F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Bitmap Editor Cocoa" */ = { isa = XCConfigurationList; buildConfigurations = ( - E1B2A4C10E41103800A72928 /* Debug */, - E1B2A4C20E41103800A72928 /* Release */, + E13F7EE208F0411100E2A5CB /* Debug */, + E13F7EE308F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - E1B2A4ED0E41103900A72928 /* Build configuration list for PBXNativeTarget "libResKnife" */ = { + E13F7EE508F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Font Editor Cocoa" */ = { isa = XCConfigurationList; buildConfigurations = ( - E1B2A4EE0E41103900A72928 /* Debug */, - E1B2A4EF0E41103900A72928 /* Release */, + E13F7EE608F0411100E2A5CB /* Debug */, + E13F7EE708F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - E1B2A5030E41103900A72928 /* Build configuration list for PBXNativeTarget "Hex Editor Carbon" */ = { + E13F7EE908F0411100E2A5CB /* Build configuration list for PBXNativeTarget "NovaTools" */ = { isa = XCConfigurationList; buildConfigurations = ( - E1B2A5040E41103900A72928 /* Debug */, - E1B2A5050E41103900A72928 /* Release */, + E13F7EEA08F0411100E2A5CB /* Debug */, + E13F7EEB08F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - E1B2A5140E41103900A72928 /* Build configuration list for PBXNativeTarget "Template Editor Carbon" */ = { + E13F7EED08F0411100E2A5CB /* Build configuration list for PBXNativeTarget "ResKnife Carbon" */ = { isa = XCConfigurationList; buildConfigurations = ( - E1B2A5150E41103900A72928 /* Debug */, - E1B2A5160E41103900A72928 /* Release */, + E13F7EEE08F0411100E2A5CB /* Debug */, + E13F7EEF08F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - E1B2A5250E41103900A72928 /* Build configuration list for PBXNativeTarget "PICT Editor" */ = { + E13F7EF108F0411100E2A5CB /* Build configuration list for PBXNativeTarget "libResKnife" */ = { isa = XCConfigurationList; buildConfigurations = ( - E1B2A5260E41103900A72928 /* Debug */, - E1B2A5270E41103900A72928 /* Release */, + E13F7EF208F0411100E2A5CB /* Debug */, + E13F7EF308F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - E1B2A5440E41103900A72928 /* Build configuration list for PBXNativeTarget "Uli's Template Editor (Abandoned)" */ = { + E13F7EF508F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Hex Editor Carbon" */ = { isa = XCConfigurationList; buildConfigurations = ( - E1B2A5450E41103900A72928 /* Debug */, - E1B2A5460E41103900A72928 /* Release */, + E13F7EF608F0411100E2A5CB /* Debug */, + E13F7EF708F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - E1B2A5560E41103A00A72928 /* Build configuration list for PBXNativeTarget "Bitmap Editor Cocoa" */ = { + E13F7EF908F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Template Editor Carbon" */ = { isa = XCConfigurationList; buildConfigurations = ( - E1B2A5570E41103A00A72928 /* Debug */, - E1B2A5580E41103A00A72928 /* Release */, + E13F7EFA08F0411100E2A5CB /* Debug */, + E13F7EFB08F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - E1B2A5820E41103A00A72928 /* Build configuration list for PBXNativeTarget "Template Editor Cocoa" */ = { + E13F7EFD08F0411100E2A5CB /* Build configuration list for PBXNativeTarget "PICT Editor Carbon" */ = { isa = XCConfigurationList; buildConfigurations = ( - E1B2A5830E41103A00A72928 /* Debug */, - E1B2A5840E41103A00A72928 /* Release */, + E13F7EFE08F0411100E2A5CB /* Debug */, + E13F7EFF08F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - E1B2A7260E41213400A72928 /* Build configuration list for PBXNativeTarget "Font Editor Cocoa" */ = { + E13F7F0108F0411100E2A5CB /* Build configuration list for PBXNativeTarget "Uli's Template Editor" */ = { isa = XCConfigurationList; buildConfigurations = ( - E1B2A7240E41213400A72928 /* Debug */, - E1B2A7250E41213400A72928 /* Release */, + E13F7F0208F0411100E2A5CB /* Debug */, + E13F7F0308F0411100E2A5CB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + E13F7F0508F0411100E2A5CB /* Build configuration list for PBXProject "ResKnife" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E13F7F0608F0411100E2A5CB /* Debug */, + E13F7F0708F0411100E2A5CB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; diff --git a/TODO.txt b/TODO.txt index e7aecd0..23abf9f 100644 --- a/TODO.txt +++ b/TODO.txt @@ -1,5 +1,8 @@ --> "Open as Hex" displays "(null)" as the document name. Why? --> Changing the type/creator of a file isn't written to disk by ResourceDocument. --> Create small versions of the doc icons in Photoshop instead of letting IconComposer use its cheap scaling on them. --> Auto-uncollapse list items in template editor when they are created and when a resource is opened. --> Template editor should maintain "dirty" flag for resource. \ No newline at end of file +// Global to-do list for the entire project +// to-do items specific to an object are associated directly with that object in the header or implementation files + +Create some nice icons instead of the crap ones we have now. +Auto-uncollapse list items in template editor when they are created and when a resource is opened. +Add preference to "Show Resource Fork even if empty." +Add viewers for MooV and PICT. +Modify -[Resource data] and -[Resource setData] to use ResourceManager functions behind the scenes instead of an NSData object. This should fix the problem with new resources not being saved at times. diff --git a/To Dos.rtf b/To Dos.rtf new file mode 100644 index 0000000..bd15e46 --- /dev/null +++ b/To Dos.rtf @@ -0,0 +1,15 @@ +{\rtf1\mac\ansicpg10000\cocoartf102 +{\fonttbl\f0\fswiss\fcharset77 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\margl1440\margr1440\vieww9900\viewh5060\viewkind0 +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural + +\f0\fs24 \cf0 add category to NSSavePanel to return the NSBrowser\ +swap existing browser delegate for my own class, retain old one\ +intercept select methods, post notification, call old delegate\ +forward invocations of other methods to former browser delegate object too\ +\ +add notification listening code to table data source\ +\ +intercept drag begin from hex window and pass correct data.\ +allow fork editing.} \ No newline at end of file