diff --git a/Documentation/ChangeLog b/Documentation/ChangeLog index 83a9954..375566b 100644 --- a/Documentation/ChangeLog +++ b/Documentation/ChangeLog @@ -1,7 +1,14 @@ -2004-11-19 Nicola Pero +2004-12-24 Serg Stoyan - * GNUmakefile.preamble (ADDITIONAL_LIB_DIRS): Fixed finding the - ProjectCenter framework when non-flattened. + * "Build Tool" setting from Project Inspector was moved to PC + Preferences. + + * Implemented support of document-based applications + + * Added "Document types" panel into Project Inspector + + * Library/PCFileManager.m: Fix crashing while calling "Add Files" + panel. 2004-10-14 Serg Stoyan diff --git a/GNUmakefile b/GNUmakefile index efe6930..d432b14 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -48,7 +48,6 @@ Images/MultiFiles.tiff \ Images/Options.tiff \ Images/Run.tiff \ Images/Stop.tiff \ -Images/Editor.tiff \ Images/ProjectCenter_add.tiff \ Images/ProjectCenter_cvs.tiff \ Images/ProjectCenter_dist.tiff \ diff --git a/Library/PCDefines.h b/Library/PCDefines.h index f87048d..344b102 100644 --- a/Library/PCDefines.h +++ b/Library/PCDefines.h @@ -41,6 +41,7 @@ #define PromptOnQuit @"PromtOnQuit" #define DeleteCacheWhenQuitting @"DeleteBuildCacheWhenQuitting" #define FullPathInFilePanels @"FullPathInFilePanels" +#define BuildTool @"BuildTool" #define Debugger @"Debugger" #define Editor @"Editor" #define SeparateBuilder @"SeparateBuilder" @@ -194,6 +195,7 @@ static NSString * const PCCopyrightDescription = @"PROJECT_COPYRIGHT_DESC"; static NSString * const PCProjectCreator = @"PROJECT_CREATOR"; static NSString * const PCDescription = @"PROJECT_DESCRIPTION"; static NSString * const PCDocumentExtensions = @"PROJECT_DOCUMENTEXTENSIONS"; +static NSString * const PCDocumentTypes = @"PROJECT_DOCUMENTTYPES"; static NSString * const PCGroup = @"PROJECT_GROUP"; static NSString * const PCProjectMaintainer = @"PROJECT_MAINTAINER"; static NSString * const PCProjectName = @"PROJECT_NAME"; @@ -208,6 +210,7 @@ static NSString * const PCSearchLibs = @"SEARCH_LIB_DIRS"; static NSString * const PCAppIcon = @"APPLICATIONICON"; static NSString * const PCMainInterfaceFile = @"MAININTERFACE"; static NSString * const PCHelpFile = @"HELP_FILE"; +static NSString * const PCDocumentBasedApp = @"APP_DOCUMENT_BASED"; // Library specific static NSString * const PCPublicHeaders = @"PUBLIC_HEADERS"; diff --git a/Library/PCFileManager.m b/Library/PCFileManager.m index 3d22a18..0cbb5d7 100644 --- a/Library/PCFileManager.m +++ b/Library/PCFileManager.m @@ -74,6 +74,13 @@ static PCFileManager *_mgr = nil; RELEASE(creators); RELEASE(newFilePanel); + + if (addFilesPanel) + { + RELEASE(addFilesPanel); + RELEASE(fileTypePopup); + RELEASE(fileTypeAccessaryView); + } [super dealloc]; } @@ -354,15 +361,10 @@ static PCFileManager *_mgr = nil; [fileTypeAccessaryView sizeToFit]; [fileTypeAccessaryView setAutoresizingMask:NSViewMinXMargin | NSViewMaxXMargin]; - RELEASE(fileTypePopup); - // Panel addFilesPanel = [NSOpenPanel openPanel]; [addFilesPanel setAllowsMultipleSelection:YES]; [addFilesPanel setDelegate:self]; - [addFilesPanel setAccessoryView:fileTypeAccessaryView]; - - RELEASE(fileTypeAccessaryView); } } @@ -375,6 +377,8 @@ static PCFileManager *_mgr = nil; int retval; [self _createAddFilesPanel]; + [addFilesPanel setAccessoryView:fileTypeAccessaryView]; + selectedCategory = [[project projectBrowser] nameOfSelectedCategory]; if ([selectedCategory isEqualToString:@"Subprojects"]) { @@ -444,6 +448,7 @@ static PCFileManager *_mgr = nil; if ([[filename pathExtension] isEqualToString:@"gorm"]) { + NSLog(@"GORM file: %@", filename); isDir = NO; } @@ -460,8 +465,10 @@ static PCFileManager *_mgr = nil; return NO; } // File is already in project + NSLog(@"file: %@ type: %@ fileTypes: %@", filename, fileType, fileTypes); if (![project doesAcceptFile:filename forKey:categoryKey]) { + NSLog(@"Don't show: %@", filename); return NO; } } diff --git a/Library/PCProject.m b/Library/PCProject.m index 3bdd8ea..3ae1cb2 100644 --- a/Library/PCProject.m +++ b/Library/PCProject.m @@ -682,6 +682,7 @@ NSString while ((key = [keyEnum nextObject])) { projectFiles = [projectDict objectForKey:key]; + NSLog(@"KEY: %@ Files: %@ file: %@", key, projectFiles, pFile); if ([projectFiles containsObject:pFile]) { return NO; diff --git a/Library/PCProjectBuilder.m b/Library/PCProjectBuilder.m index f36f3af..1c2812b 100644 --- a/Library/PCProjectBuilder.m +++ b/Library/PCProjectBuilder.m @@ -362,15 +362,7 @@ if ((self = [super init])) { currentProject = aProject; - makePath = [[aProject projectDict] objectForKey: PCBuildTool]; - - if ([makePath isEqualToString: @""]) - { - makePath = [NSString stringWithString: @"/usr/bin/make"]; - } - RETAIN(makePath); - - buildTarget = [[NSMutableString alloc] initWithString: @"Default"]; + buildTarget = [[NSMutableString alloc] initWithString:@"Default"]; buildArgs = [[NSMutableArray array] retain]; postProcess = NULL; makeTask = nil; @@ -450,14 +442,15 @@ - (void)startBuild:(id)sender { NSString *tFString = [targetField stringValue]; - NSArray *tFArray = [tFString componentsSeparatedByString: @" "]; + NSArray *tFArray = [tFString componentsSeparatedByString:@" "]; if ([self stopBuild:self] == YES) {// We've just stopped build process return; } + makePath = [[NSUserDefaults standardUserDefaults] objectForKey:BuildTool]; - [buildTarget setString: [tFArray objectAtIndex: 0]]; + [buildTarget setString:[tFArray objectAtIndex:0]]; // Set build arguments if ([buildTarget isEqualToString: @"Debug"]) @@ -483,7 +476,7 @@ [buildTarget setString: @"Build"]; [cleanButton setEnabled:NO]; [installButton setEnabled:NO]; - [self build: self]; + [self build:self]; _isBuilding = YES; } diff --git a/Library/PCProjectInspector.m b/Library/PCProjectInspector.m index 4862145..2079311 100644 --- a/Library/PCProjectInspector.m +++ b/Library/PCProjectInspector.m @@ -236,17 +236,6 @@ { [project setProjectDictObject:newEntry forKey:PCInstallDir notify:YES]; } - else if (sender == toolField) - { - [project setProjectDictObject:newEntry forKey:PCBuildTool notify:YES]; - - if (![[NSFileManager defaultManager] isExecutableFileAtPath:newEntry]) - { - NSRunAlertPanel(@"Build Tool Error!", - @"No valid executable found at '%@'!", - @"OK",nil,nil,newEntry); - } - } else if (sender == cppOptField) { [project setProjectDictObject:newEntry @@ -351,8 +340,6 @@ [projectDict objectForKey:PCLinkerOptions]]; [installPathField setStringValue: [projectDict objectForKey:PCInstallDir]]; - [toolField setStringValue: - [projectDict objectForKey:PCBuildTool]]; // Project Description view [descriptionField setStringValue: @@ -434,8 +421,7 @@ [objcOptField setNextText:cOptField]; [cOptField setNextText:ldOptField]; [ldOptField setNextText:installPathField]; - [installPathField setNextText:toolField]; - [toolField setNextText:cppOptField]; + [installPathField setNextText:cppOptField]; // Retain view [buildAttributesView retain]; diff --git a/Library/Resources/BuildAttributes.gorm/data.classes b/Library/Resources/BuildAttributes.gorm/data.classes index ea7bceb..6034e17 100644 --- a/Library/Resources/BuildAttributes.gorm/data.classes +++ b/Library/Resources/BuildAttributes.gorm/data.classes @@ -1,143 +1,75 @@ { + "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( - "activateContextHelpMode:", "alignCenter:", - "alignJustified:", "alignLeft:", - "alignRight:", "arrangeInFront:", - "cancel:", "capitalizeWord:", - "changeColor:", "changeFont:", - "checkSpelling:", "close:", - "complete:", "copy:", - "copyFont:", "copyRuler:", - "cut:", "delete:", - "deleteBackward:", "deleteForward:", - "deleteToBeginningOfLine:", "deleteToBeginningOfParagraph:", - "deleteToEndOfLine:", "deleteToEndOfParagraph:", - "deleteToMark:", "deleteWordBackward:", - "deleteWordForward:", "deminiaturize:", - "deselectAll:", "fax:", - "hide:", "hideOtherApplications:", - "indent:", "loosenKerning:", - "lowerBaseline:", "lowercaseWord:", - "makeKeyAndOrderFront:", "miniaturize:", - "miniaturizeAll:", "moveBackward:", - "moveBackwardAndModifySelection:", "moveDown:", - "moveDownAndModifySelection:", "moveForward:", - "moveForwardAndModifySelection:", "moveLeft:", - "moveRight:", "moveToBeginningOfDocument:", - "moveToBeginningOfLine:", "moveToBeginningOfParagraph:", - "moveToEndOfDocument:", "moveToEndOfLine:", - "moveToEndOfParagraph:", "moveUp:", - "moveUpAndModifySelection:", "moveWordBackward:", - "moveWordBackwardAndModifySelection:", "moveWordForward:", - "moveWordForwardAndModifySelection:", "newDocument:", - "ok:", "open:", - "openDocument:", "orderBack:", - "orderFront:", "orderFrontColorPanel:", - "orderFrontDataLinkPanel:", "orderFrontFontPanel:", - "orderFrontHelpPanel:", "orderFrontStandardAboutPanel:", - "orderFrontStandardInfoPanel:", "orderOut:", - "pageDown:", "pageUp:", - "paste:", "pasteAsPlainText:", - "pasteAsRichText:", "pasteFont:", - "pasteRuler:", "performClose:", - "performMiniaturize:", "performZoom:", - "print:", "raiseBaseline:", - "revertDocumentToSaved:", "runPageLayout:", - "runToolbarCustomizationPalette:", "saveAllDocuments:", - "saveDocument:", "saveDocumentAs:", - "saveDocumentTo:", "scrollLineDown:", - "scrollLineUp:", "scrollPageDown:", - "scrollPageUp:", "scrollViaScroller:", - "selectAll:", "selectLine:", - "selectNextKeyView:", "selectParagraph:", - "selectPreviousKeyView:", "selectText:", - "selectToMark:", "selectWord:", - "showContextHelp:", "showGuessPanel:", - "showHelp:", "showWindow:", - "stop:", "subscript:", - "superscript:", "swapWithMark:", - "takeDoubleValueFrom:", "takeFloatValueFrom:", - "takeIntValueFrom:", "takeObjectValueFrom:", - "takeStringValueFrom:", "terminate:", - "tightenKerning:", "toggle:", - "toggleContinuousSpellChecking:", "toggleRuler:", - "toggleToolbarShown:", "toggleTraditionalCharacterShape:", - "transpose:", "transposeWords:", - "turnOffKerning:", "turnOffLigatures:", - "underline:", "unhide:", - "unhideAllApplications:", "unscript:", - "uppercaseWord:", "useAllLigatures:", - "useStandardKerning:", "useStandardLigatures:", - "yank:", "zoom:", "searchOrderPopupDidChange:", "setSearchOrder:", @@ -169,7 +101,6 @@ cOptField, ldOptField, installPathField, - toolField, searchOrderScroll ); Super = NSObject; diff --git a/Library/Resources/BuildAttributes.gorm/data.info b/Library/Resources/BuildAttributes.gorm/data.info index 800a444..72818cc 100644 Binary files a/Library/Resources/BuildAttributes.gorm/data.info and b/Library/Resources/BuildAttributes.gorm/data.info differ diff --git a/Library/Resources/BuildAttributes.gorm/objects.gorm b/Library/Resources/BuildAttributes.gorm/objects.gorm index 2f20d45..dbcc3b4 100644 Binary files a/Library/Resources/BuildAttributes.gorm/objects.gorm and b/Library/Resources/BuildAttributes.gorm/objects.gorm differ diff --git a/Modules/AggregateProject/Resources/PC.project b/Modules/AggregateProject/Resources/PC.project index 06470a0..c2c1482 100644 --- a/Modules/AggregateProject/Resources/PC.project +++ b/Modules/AggregateProject/Resources/PC.project @@ -1,5 +1,4 @@ { - BUILDTOOL = "/usr/bin/make"; COMPILEROPTIONS = ""; CPPOPTIONS = ""; LINKEROPTIONS = ""; @@ -12,8 +11,8 @@ PROJECT_AUTHORS = (); PROJECT_CREATOR = ""; PROJECT_DESCRIPTION = "No description avaliable!"; - PROJECT_GROUP = "No group avaliable!"; - PROJECT_SUMMARY = "No summary avaliable!"; + PROJECT_GROUP = "No group available!"; + PROJECT_SUMMARY = "No summary available!"; PROJECT_RELEASE = "0.1"; PROJECT_COPYRIGHT = "Copyright (C) 200x"; PROJECT_COPYRIGHT_DESC = "Released under ..."; diff --git a/Modules/ApplicationProject/PCAppProject+Inspector.h b/Modules/ApplicationProject/PCAppProject+Inspector.h index a110c96..6bf47c9 100644 --- a/Modules/ApplicationProject/PCAppProject+Inspector.h +++ b/Modules/ApplicationProject/PCAppProject+Inspector.h @@ -49,6 +49,8 @@ - (BOOL)setMainNibWithFileAtPath:(NSString *)path; - (void)clearMainNib:(id)sender; +- (void)setDocBasedApp:(id)sender; + - (int)numberOfRowsInTableView:(NSTableView *)aTableView; - (id) tableView: (NSTableView *)aTableView objectValueForTableColumn: (NSTableColumn *)aTableColumn @@ -57,6 +59,8 @@ setObjectValue:anObject forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex; + +- (void)fillFieldsForRow:(int)rowIndex; // ---------------------------------------------------------------------------- // --- Notifications diff --git a/Modules/ApplicationProject/PCAppProject+Inspector.m b/Modules/ApplicationProject/PCAppProject+Inspector.m index d7f5a92..2e6c1b9 100644 --- a/Modules/ApplicationProject/PCAppProject+Inspector.m +++ b/Modules/ApplicationProject/PCAppProject+Inspector.m @@ -45,6 +45,15 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification"; @implementation PCAppProject (Inspector) +- (void)awakeFromNib +{ + [docBasedAppButton setRefusesFirstResponder:YES]; + + [docBasedAppButton setState: + ([[projectDict objectForKey:PCDocumentBasedApp] + isEqualToString: @"YES"]) ? NSOnState : NSOffState]; +} + // ---------------------------------------------------------------------------- // --- User Interface // ---------------------------------------------------------------------------- @@ -62,38 +71,13 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification"; [setFieldButton setRefusesFirstResponder:YES]; [clearFieldButton setRefusesFirstResponder:YES]; - // Document Icons - // - docExtColumn = [(NSTableColumn *)[NSTableColumn alloc] - initWithIdentifier: @"extension"]; - [[docExtColumn headerCell] setStringValue:@"Extension"]; - [docExtColumn setWidth:75]; - docIconColumn = [(NSTableColumn *)[NSTableColumn alloc] - initWithIdentifier: @"icon"]; - [[docIconColumn headerCell] setStringValue:@"Icon name"]; + // Document types buttons + [addDocTypeButton setRefusesFirstResponder:YES]; + [removeDocTypeButton setRefusesFirstResponder:YES]; + [docBasedAppButton setRefusesFirstResponder:YES]; - docIconsList = [[NSTableView alloc] initWithFrame:NSMakeRect(2,0,211,108)]; - [docIconsList setAllowsMultipleSelection:NO]; - [docIconsList setAllowsColumnReordering:NO]; - [docIconsList setAllowsColumnResizing:NO]; - [docIconsList setAllowsEmptySelection:YES]; - [docIconsList setAllowsColumnSelection:NO]; - [docIconsList addTableColumn:docExtColumn]; - [docIconsList addTableColumn:docIconColumn]; - [docIconsList setDataSource:self]; - [docIconsList setTarget:self]; - - // - [docIconsScroll setDocumentView:docIconsList]; - [docIconsScroll setHasHorizontalScroller:NO]; - [docIconsScroll setHasVerticalScroller:YES]; - [docIconsScroll setBorderType:NSBezelBorder]; - RELEASE(docIconsList); + [self setDocBasedApp:docBasedAppButton]; - // Document icons buttons - [addDocIcon setRefusesFirstResponder:YES]; - [removeDocIcon setRefusesFirstResponder:YES]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tfGetFocus:) name:PCITextFieldGetFocus @@ -308,112 +292,283 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification"; [self setProjectDictObject:@"" forKey:PCMainInterfaceFile notify:YES]; } -// Document Icons -- (void)addDocIcon:(id)sender +// Document Types +- (void)showDocTypesPanel:(id)sender +{ + [docTypesPanel makeKeyAndOrderFront:nil]; +} + +- (void)setDocBasedApp:(id)sender +{ + NSString *docBased = [projectDict objectForKey:PCDocumentBasedApp]; + + if ([docBasedAppButton state] == NSOnState) + { + [docTypeLabel setTextColor:[NSColor blackColor]]; + [docTypeField setBackgroundColor:[NSColor whiteColor]]; + [docTypeField setTextColor:[NSColor blackColor]]; + [docTypeField setEditable:YES]; + + [docNameLabel setTextColor:[NSColor blackColor]]; + [docNameField setBackgroundColor:[NSColor whiteColor]]; + [docNameField setTextColor:[NSColor blackColor]]; + [docNameField setEditable:YES]; + + [docRoleLabel setTextColor:[NSColor blackColor]]; + [docRoleField setBackgroundColor:[NSColor whiteColor]]; + [docRoleField setTextColor:[NSColor blackColor]]; + [docRoleField setEditable:YES]; + + [docClassLabel setTextColor:[NSColor blackColor]]; + [docClassField setBackgroundColor:[NSColor whiteColor]]; + [docClassField setTextColor:[NSColor blackColor]]; + [docClassField setEditable:YES]; + + if (![docBased isEqualToString:@"YES"]) + { + [self setProjectDictObject:@"YES" + forKey:PCDocumentBasedApp + notify:YES]; + } + } + else + { + [docTypeLabel setTextColor:[NSColor darkGrayColor]]; + [docTypeField setBackgroundColor:[NSColor lightGrayColor]]; + [docTypeField setTextColor:[NSColor darkGrayColor]]; + [docTypeField setEditable:NO]; + + [docNameLabel setTextColor:[NSColor darkGrayColor]]; + [docNameField setBackgroundColor:[NSColor lightGrayColor]]; + [docNameField setTextColor:[NSColor darkGrayColor]]; + [docNameField setEditable:NO]; + + [docRoleLabel setTextColor:[NSColor darkGrayColor]]; + [docRoleField setBackgroundColor:[NSColor lightGrayColor]]; + [docRoleField setTextColor:[NSColor darkGrayColor]]; + [docRoleField setEditable:NO]; + + [docClassLabel setTextColor:[NSColor darkGrayColor]]; + [docClassField setBackgroundColor:[NSColor lightGrayColor]]; + [docClassField setTextColor:[NSColor darkGrayColor]]; + [docClassField setEditable:NO]; + + if (![docBased isEqualToString:@"NO"]) + { + [self setProjectDictObject:@"NO" + forKey:PCDocumentBasedApp + notify:YES]; + } + } +} + +- (void)addDocType:(id)sender { int row; - NSMutableDictionary *entry = [NSMutableDictionary dictionaryWithCapacity:2]; - int selectedRow = [docIconsList selectedRow]; + NSMutableDictionary *entry = [NSMutableDictionary dictionaryWithCapacity:6]; + int selectedRow = [docTypesList selectedRow]; - [entry setObject:@"" forKey:@"Extension"]; - [entry setObject:@"" forKey:@"Icon"]; + [entry setObject:@"" forKey:@"NSName"]; + [entry setObject:@"" forKey:@"NSHumanReadableName"]; + [entry setObject:[NSArray array] forKey:@"NSUnixExtensions"]; + [entry setObject:@"" forKey:@"NSIcon"]; + [entry setObject:@"Editor" forKey:@"NSRole"]; + [entry setObject:@"NSDocument" forKey:@"NSDocumentClass"]; if (selectedRow >= 0) { - [docIconsItems insertObject:entry atIndex:selectedRow + 1]; + [docTypesItems insertObject:entry atIndex:selectedRow + 1]; row = selectedRow + 1; } else { - [docIconsItems addObject:entry]; - row = [docIconsItems count] - 1; + [docTypesItems addObject:entry]; + row = [docTypesItems count] - 1; } - [docIconsList reloadData]; + [docTypesList reloadData]; - [docIconsList selectRow:row byExtendingSelection:NO]; - [docIconsList editColumn:0 row:row withEvent:nil select:YES]; + [docTypesList selectRow:row byExtendingSelection:NO]; - [self setProjectDictObject:docIconsItems - forKey:PCDocumentExtensions + [self fillFieldsForRow:row]; + + [self setProjectDictObject:docTypesItems + forKey:PCDocumentTypes notify:YES]; } -- (void)removeDocIcon:(id)sender +- (void)removeDocType:(id)sender { - int selectedRow = [docIconsList selectedRow]; - + int selectedRow = [docTypesList selectedRow]; + if (selectedRow >= 0) - { - [docIconsItems removeObjectAtIndex:selectedRow]; - [docIconsList reloadData]; - } - - if (([docIconsList selectedRow] < 0) && ([docIconsItems count] > 0)) - { - [docIconsList selectRow:[docIconsItems count]-1 byExtendingSelection:NO]; - } + { + [docTypesItems removeObjectAtIndex:selectedRow]; + [docTypesList reloadData]; + } - [self setProjectDictObject:docIconsItems - forKey:PCDocumentExtensions - notify:YES]; + if (([docTypesList selectedRow] < 0) && ([docTypesItems count] > 0)) + { + [docTypesList selectRow:[docTypesItems count]-1 byExtendingSelection:NO]; + [self fillFieldsForRow:[docTypesItems count]-1]; + } + + [self setProjectDictObject:docTypesItems + forKey:PCDocumentTypes + notify:YES]; } // ---------------------------------------------------------------------------- -// --- Document Icons browser +// --- Document Types browser // ---------------------------------------------------------------------------- -- (int)numberOfRowsInTableView: (NSTableView *)aTableView +- (int)numberOfRowsInTableView:(NSTableView *)aTableView { - return [docIconsItems count]; + return [docTypesItems count]; } -- (id) tableView: (NSTableView *)aTableView - objectValueForTableColumn: (NSTableColumn *)aTableColumn - row: (int)rowIndex +- (id) tableView:(NSTableView *)aTableView + objectValueForTableColumn:(NSTableColumn *)aTableColumn + row:(int)rowIndex { - NSDictionary *object = [docIconsItems objectAtIndex:rowIndex]; + NSDictionary *object = nil; - if ([[aTableColumn identifier] isEqualToString:@"extension"]) + if (docTypesItems != nil || [docTypesItems count] > 0) { - return [object objectForKey:@"Extension"]; - } - else if ([[aTableColumn identifier] isEqualToString:@"icon"]) - { - return [object objectForKey:@"Icon"]; + object = [docTypesItems objectAtIndex:rowIndex]; + + if (aTableColumn == extensionsColumn) + { + return [[object objectForKey:@"NSUnixExtensions"] + componentsJoinedByString:@","]; + } + else + { + return [object objectForKey:[aTableColumn identifier]]; + } } return nil; } -- (void) tableView:(NSTableView *)aTableView - setObjectValue:anObject - forTableColumn:(NSTableColumn *)aTableColumn - row:(int)rowIndex +- (void)tableView:(NSTableView *)aTableView + setObjectValue:anObject + forTableColumn:(NSTableColumn *)aTableColumn + row:(int)rowIndex { - NSMutableDictionary *ext = nil; + NSMutableDictionary *type = nil; - if (docIconsItems == nil || [docIconsItems count] <= 0) + if (docTypesItems == nil || [docTypesItems count] <= 0) { return; } - ext = [docIconsItems objectAtIndex:rowIndex]; - if ([[aTableColumn identifier] isEqualToString:@"extension"]) + type = [docTypesItems objectAtIndex:rowIndex]; + if ([[aTableColumn identifier] isEqualToString:@"NSUnixExtensions"]) { - [ext removeObjectForKey:@"Extension"]; - [ext setObject:anObject forKey:@"Extension"]; + [type removeObjectForKey:@"Extension"]; + [type setObject:anObject forKey:@"Extension"]; } - else if ([[aTableColumn identifier] isEqualToString:@"icon"]) + else if ([[aTableColumn identifier] isEqualToString:@"NSIcon"]) { - [ext removeObjectForKey:@"Icon"]; - [ext setObject:anObject forKey:@"Icon"]; + [type removeObjectForKey:@"Icon"]; + [type setObject:anObject forKey:@"Icon"]; } - [self setProjectDictObject:docIconsItems - forKey:PCDocumentExtensions + [self setProjectDictObject:docTypesItems + forKey:PCDocumentTypes notify:YES]; } +- (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(int)rowIndex +{ + [self fillFieldsForRow:rowIndex]; + return YES; +} + +- (void)fillFieldsForRow:(int)rowIndex +{ + NSDictionary *type = nil; + int itemCount = [docTypesItems count]; + + if (itemCount <= 0 || rowIndex > itemCount || rowIndex < 0) + { + [docTypeField setStringValue:@""]; + [docNameField setStringValue:@""]; + [docIconField setStringValue:@""]; + [docExtensionsField setStringValue:@""]; + [docRoleField setStringValue:@""]; + [docClassField setStringValue:@""]; + + return; + } + + type = [docTypesItems objectAtIndex:rowIndex]; + + [docTypeField setStringValue:[type objectForKey:@"NSName"]]; + [docNameField setStringValue:[type objectForKey:@"NSHumanReadableName"]]; + [docIconField setStringValue:[type objectForKey:@"NSIcon"]]; + + [docExtensionsField setStringValue:@""]; + if ([[type objectForKey:@"NSUnixExtensions"] count] > 0) + { + [docExtensionsField setStringValue: + [[type objectForKey:@"NSUnixExtensions"] + componentsJoinedByString:@","]]; + } + + [docRoleField setStringValue:[type objectForKey:@"NSRole"]]; + [docClassField setStringValue:[type objectForKey:@"NSDocumentClass"]]; +} + +- (void)docFieldSet:(id)sender +{ + NSMutableDictionary *object = nil; + + NSLog(@"docFieldSet"); + + if (sender != docTypeField && sender != docNameField + && sender != docIconField && sender != docExtensionsField + && sender != docRoleField && sender != docClassField) + { + return; + } + + object = [[docTypesItems objectAtIndex:[docTypesList selectedRow]] + mutableCopy]; + + if (sender == docTypeField) + { + [object setObject:[sender stringValue] forKey:@"NSName"]; + } + else if (sender == docNameField) + { + [object setObject:[sender stringValue] forKey:@"NSHumanReadableName"]; + } + else if (sender == docIconField) + { + [object setObject:[sender stringValue] forKey:@"NSIcon"]; + } + else if (sender == docExtensionsField) + { + [object + setObject:[[sender stringValue] componentsSeparatedByString:@","] + forKey:@"NSUnixExtensions"]; + } + else if (sender == docRoleField) + { + [object setObject:[sender stringValue] forKey:@"NSRole"]; + } + else if (sender == docClassField) + { + [object setObject:[sender stringValue] forKey:@"NSDocumentClass"]; + } + + [docTypesItems replaceObjectAtIndex:[docTypesList selectedRow] + withObject:object]; + [docTypesList reloadData]; + [object release]; +} + // ---------------------------------------------------------------------------- // --- Notifications // ---------------------------------------------------------------------------- @@ -432,8 +587,8 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification"; [helpFileField setStringValue:[projectDict objectForKey:PCHelpFile]]; [mainNIBField setStringValue:[projectDict objectForKey:PCMainInterfaceFile]]; - docIconsItems = [projectDict objectForKey:PCDocumentExtensions]; - [docIconsList reloadData]; + docTypesItems = [projectDict objectForKey:PCDocumentTypes]; + [docTypesList reloadData]; } // TextFields (PCITextField subclass) @@ -454,7 +609,7 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification"; && anObject != helpFileField && anObject != mainNIBField) { - NSLog(@"tfGetFocus: not that textfield"); +// NSLog(@"tfGetFocus: not that textfield"); return; } @@ -500,7 +655,6 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification"; && anObject != helpFileField && anObject != mainNIBField) { - NSLog(@"tfLostFocus: not that textfield"); return; } diff --git a/Modules/ApplicationProject/PCAppProject.h b/Modules/ApplicationProject/PCAppProject.h index a0831b3..36e881b 100644 --- a/Modules/ApplicationProject/PCAppProject.h +++ b/Modules/ApplicationProject/PCAppProject.h @@ -58,16 +58,37 @@ IBOutlet NSButton *setFieldButton; IBOutlet NSButton *clearFieldButton; - NSTableView *docIconsList; - NSTableColumn *docExtColumn; - NSTableColumn *docIconColumn; - NSMutableArray *docIconsItems; - IBOutlet NSScrollView *docIconsScroll; + IBOutlet NSButton *docTypesButton; - IBOutlet NSButton *addDocIcon; - IBOutlet NSButton *removeDocIcon; - - NSMutableDictionary *infoDict; + IBOutlet NSPanel *docTypesPanel; + IBOutlet NSButton *addDocTypeButton; + IBOutlet NSButton *removeDocTypeButton; + IBOutlet NSButton *docBasedAppButton; + IBOutlet NSScrollView *docTypesScroll; + + NSTableView *docTypesList; + NSTableColumn *typeColumn; // NSName + NSTableColumn *nameColumn; // NSHumanReadableName + NSTableColumn *extensionsColumn; // NSUnixExtensions + NSTableColumn *iconColumn; // NSIcon + NSTableColumn *roleColumn; // NSRole + NSTableColumn *classColumn; // NSDocumentClass + NSMutableArray *docTypesItems; + + IBOutlet NSTextField *docTypeLabel; + IBOutlet NSTextField *docTypeField; + IBOutlet NSTextField *docNameLabel; + IBOutlet NSTextField *docNameField; + IBOutlet NSTextField *docIconLabel; + IBOutlet NSTextField *docIconField; + IBOutlet NSTextField *docExtensionsLabel; + IBOutlet NSTextField *docExtensionsField; + IBOutlet NSTextField *docRoleLabel; + IBOutlet NSTextField *docRoleField; + IBOutlet NSTextField *docClassLabel; + IBOutlet NSTextField *docClassField; + + NSMutableDictionary *infoDict; } // ---------------------------------------------------------------------------- diff --git a/Modules/ApplicationProject/PCAppProject.m b/Modules/ApplicationProject/PCAppProject.m index 5b6b025..f2c1cfc 100644 --- a/Modules/ApplicationProject/PCAppProject.m +++ b/Modules/ApplicationProject/PCAppProject.m @@ -73,8 +73,8 @@ rootEntries = [[NSDictionary dictionaryWithObjects:rootCategories forKeys:rootKeys] retain]; - } + return self; } @@ -324,7 +324,8 @@ [self writeInfoEntry:@"NSMainNibFile" forKey:PCMainInterfaceFile]; [self writeInfoEntry:@"NSPrincipalClass" forKey:PCPrincipalClass]; [infoDict setObject:@"Application" forKey:@"NSRole"]; - [infoDict setObject:[self convertExtensions] forKey:@"NSTypes"]; +// [infoDict setObject:[self convertExtensions] forKey:@"NSTypes"]; + [self writeInfoEntry:@"NSTypes" forKey:PCDocumentTypes]; [self writeInfoEntry:@"URL" forKey:PCURL]; infoFile = [self dirForCategoryKey:PCOtherResources]; diff --git a/Modules/ApplicationProject/Resources/Inspector.gorm/data.classes b/Modules/ApplicationProject/Resources/Inspector.gorm/data.classes index a4e85dd..100347c 100644 --- a/Modules/ApplicationProject/Resources/Inspector.gorm/data.classes +++ b/Modules/ApplicationProject/Resources/Inspector.gorm/data.classes @@ -1,147 +1,49 @@ { + "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( - "activateContextHelpMode:", - "alignCenter:", - "alignJustified:", "alignLeft:", - "alignRight:", - "arrangeInFront:", - "cancel:", "capitalizeWord:", - "changeColor:", - "checkSpelling:", - "close:", "complete:", - "copy:", - "copyFont:", - "copyRuler:", "cut:", - "delete:", - "deleteBackward:", - "deleteForward:", "deleteToBeginningOfLine:", - "deleteToBeginningOfParagraph:", - "deleteToEndOfLine:", - "deleteToEndOfParagraph:", "deleteToMark:", - "deleteWordBackward:", - "deleteWordForward:", - "deminiaturize:", "deselectAll:", - "fax:", - "hide:", - "hideOtherApplications:", "indent:", - "loosenKerning:", - "lowerBaseline:", - "lowercaseWord:", "makeKeyAndOrderFront:", - "miniaturize:", - "miniaturizeAll:", - "moveBackward:", "moveBackwardAndModifySelection:", - "moveDown:", - "moveDownAndModifySelection:", - "moveForward:", "moveForwardAndModifySelection:", - "moveLeft:", - "moveRight:", - "moveToBeginningOfDocument:", "moveToBeginningOfLine:", - "moveToBeginningOfParagraph:", - "moveToEndOfDocument:", - "moveToEndOfLine:", "moveToEndOfParagraph:", - "moveUp:", - "moveUpAndModifySelection:", - "moveWordBackward:", "moveWordBackwardAndModifySelection:", - "moveWordForward:", - "moveWordForwardAndModifySelection:", - "newDocument:", "ok:", - "open:", - "openDocument:", - "orderBack:", "orderFront:", - "orderFrontColorPanel:", - "orderFrontDataLinkPanel:", - "orderFrontHelpPanel:", "orderFrontStandardAboutPanel:", - "orderFrontStandardInfoPanel:", - "orderOut:", - "pageDown:", "pageUp:", - "paste:", - "pasteAsPlainText:", - "pasteAsRichText:", "pasteFont:", - "pasteRuler:", - "performClose:", - "performMiniaturize:", "performZoom:", - "print:", - "raiseBaseline:", - "revertDocumentToSaved:", "runPageLayout:", - "runToolbarCustomizationPalette:", - "saveAllDocuments:", - "saveDocument:", "saveDocumentAs:", - "saveDocumentTo:", - "scrollLineDown:", - "scrollLineUp:", "scrollPageDown:", - "scrollPageUp:", - "scrollViaScroller:", - "selectAll:", "selectLine:", - "selectNextKeyView:", - "selectParagraph:", - "selectPreviousKeyView:", "selectText:", - "selectToMark:", - "selectWord:", - "showContextHelp:", "showGuessPanel:", - "showHelp:", - "showWindow:", - "stop:", "subscript:", - "superscript:", - "swapWithMark:", - "takeDoubleValueFrom:", "takeFloatValueFrom:", - "takeIntValueFrom:", - "takeObjectValueFrom:", - "takeStringValueFrom:", "terminate:", - "tightenKerning:", - "toggle:", - "toggleContinuousSpellChecking:", "toggleRuler:", - "toggleToolbarShown:", - "toggleTraditionalCharacterShape:", - "transpose:", "transposeWords:", - "turnOffKerning:", - "turnOffLigatures:", - "underline:", "unhide:", - "unhideAllApplications:", - "unscript:", - "uppercaseWord:", "useAllLigatures:", - "useStandardKerning:", - "useStandardLigatures:", - "yank:", "zoom:", "setAppClass:", "setFile:", "clearFile:", "setDocIcon:", - "removeDocIcon:" + "removeDocType:", + "showDocTypesPanel:", + "setDocBasedApp:", + "docFieldSet:" ); Super = NSObject; }; @@ -150,9 +52,12 @@ "setAppClass:", "setFile:", "clearFile:", - "addDocIcon:", - "removeDocIcon:", - "setCurrentLanguage:" + "addDocType:", + "removeDocType:", + "setCurrentLanguage:", + "showDocTypesPanel:", + "setDocBasedApp:", + "docFieldSet:" ); Outlets = ( projectAttributesView, @@ -166,9 +71,24 @@ appImageField, helpFileField, mainNIBField, - docIconsScroll, - addDocIcon, - removeDocIcon + docTypesButton, + docTypesPanel, + addDocTypeButton, + removeDocTypeButton, + docBasedAppButton, + docTypesScroll, + docTypeLabel, + docTypeField, + docNameLabel, + docNameField, + docIconLabel, + docIconField, + docExtensionsLabel, + docExtensionsField, + docRoleLabel, + docRoleField, + docClassLabel, + docClassField ); Super = NSObject; }; diff --git a/Modules/ApplicationProject/Resources/Inspector.gorm/data.info b/Modules/ApplicationProject/Resources/Inspector.gorm/data.info index 800a444..72818cc 100644 Binary files a/Modules/ApplicationProject/Resources/Inspector.gorm/data.info and b/Modules/ApplicationProject/Resources/Inspector.gorm/data.info differ diff --git a/Modules/ApplicationProject/Resources/Inspector.gorm/objects.gorm b/Modules/ApplicationProject/Resources/Inspector.gorm/objects.gorm index ace0ef5..5b68f4c 100644 Binary files a/Modules/ApplicationProject/Resources/Inspector.gorm/objects.gorm and b/Modules/ApplicationProject/Resources/Inspector.gorm/objects.gorm differ diff --git a/Modules/ApplicationProject/Resources/PC.project b/Modules/ApplicationProject/Resources/PC.project index 219d643..5bb98c0 100644 --- a/Modules/ApplicationProject/Resources/PC.project +++ b/Modules/ApplicationProject/Resources/PC.project @@ -1,6 +1,5 @@ { APPLICATIONICON = ""; - BUILDTOOL = "/usr/bin/make"; CLASS_FILES = ("AppController.m"); COMPILEROPTIONS = ""; CPPOPTIONS = ""; diff --git a/Modules/BundleProject/Resources/PC.project b/Modules/BundleProject/Resources/PC.project index 3079c7a..48953db 100644 --- a/Modules/BundleProject/Resources/PC.project +++ b/Modules/BundleProject/Resources/PC.project @@ -1,5 +1,4 @@ { - BUILDTOOL = "/usr/bin/make"; BUNDLE_EXTENSION = ".bundle"; CLASS_FILES = (); COMPILEROPTIONS = ""; @@ -24,9 +23,9 @@ PRINCIPAL_CLASS = ""; PROJECT_AUTHORS = (); PROJECT_CREATOR = ""; - PROJECT_DESCRIPTION = "No description avaliable!"; - PROJECT_GROUP = "No group avaliable!"; - PROJECT_SUMMARY = "No summary avaliable!"; + PROJECT_DESCRIPTION = "No description available!"; + PROJECT_GROUP = "No group available!"; + PROJECT_SUMMARY = "No summary available!"; PROJECT_RELEASE = "0.1"; PROJECT_COPYRIGHT = "Copyright (C) 200x"; PROJECT_COPYRIGHT_DESC = "Released under ..."; diff --git a/Modules/LibraryProject/Resources/PC.project b/Modules/LibraryProject/Resources/PC.project index 04c15cc..96479e7 100644 --- a/Modules/LibraryProject/Resources/PC.project +++ b/Modules/LibraryProject/Resources/PC.project @@ -1,5 +1,4 @@ { - BUILDTOOL = "/usr/bin/make"; CLASS_FILES = (); COMPILEROPTIONS = ""; CPPOPTIONS = ""; @@ -22,9 +21,9 @@ OTHER_SOURCES = (); PROJECT_AUTHORS = (); PROJECT_CREATOR = ""; - PROJECT_DESCRIPTION = "No description avaliable!"; - PROJECT_GROUP = "No group avaliable!"; - PROJECT_SUMMARY = "No summary avaliable!"; + PROJECT_DESCRIPTION = "No description available!"; + PROJECT_GROUP = "No group available!"; + PROJECT_SUMMARY = "No summary available!"; PROJECT_RELEASE = "0.1"; PROJECT_COPYRIGHT = "Copyright (C) 200x"; PROJECT_COPYRIGHT_DESC = "Released under ..."; diff --git a/Modules/RenaissanceProject/Resources/PC.project b/Modules/RenaissanceProject/Resources/PC.project index 297f8aa..877f4f2 100644 --- a/Modules/RenaissanceProject/Resources/PC.project +++ b/Modules/RenaissanceProject/Resources/PC.project @@ -1,6 +1,5 @@ { APPLICATIONICON = ""; - BUILDTOOL = "/usr/bin/make"; CLASS_FILES = ("AppController.m"); COMPILEROPTIONS = ""; CPPOPTIONS = ""; @@ -25,10 +24,10 @@ PRINCIPAL_CLASS = "NSApplication"; PROJECT_AUTHORS = (); PROJECT_CREATOR = ""; - PROJECT_DESCRIPTION = "No description avaliable!"; + PROJECT_DESCRIPTION = "No description available!"; PROJECT_DOCUMENTEXTENSIONS = (); - PROJECT_GROUP = "No group avaliable!"; - PROJECT_SUMMARY = "No summary avaliable!"; + PROJECT_GROUP = "No group available!"; + PROJECT_SUMMARY = "No summary available!"; PROJECT_RELEASE = "0.1"; PROJECT_COPYRIGHT = "Copyright (C) 200x"; PROJECT_COPYRIGHT_DESC = "Released under ..."; diff --git a/Modules/ToolProject/Resources/PC.project b/Modules/ToolProject/Resources/PC.project index 458d1db..234703d 100644 --- a/Modules/ToolProject/Resources/PC.project +++ b/Modules/ToolProject/Resources/PC.project @@ -1,5 +1,4 @@ { - BUILDTOOL = "/usr/bin/make"; CLASS_FILES = (); COMPILEROPTIONS = ""; CPPOPTIONS = ""; @@ -21,9 +20,9 @@ OTHER_SOURCES = ("main.m"); PROJECT_AUTHORS = (); PROJECT_CREATOR = ""; - PROJECT_DESCRIPTION = "No description avaliable!"; - PROJECT_GROUP = "No group avaliable!"; - PROJECT_SUMMARY = "No summary avaliable!"; + PROJECT_DESCRIPTION = "No description available!"; + PROJECT_GROUP = "No group available!"; + PROJECT_SUMMARY = "No summary available!"; PROJECT_RELEASE = "0.1"; PROJECT_COPYRIGHT = "Copyright (C) 200x"; PROJECT_COPYRIGHT_DESC = "Released under ..."; diff --git a/PCPrefController.h b/PCPrefController.h index 4084a3c..3b606fe 100644 --- a/PCPrefController.h +++ b/PCPrefController.h @@ -60,6 +60,7 @@ IBOutlet NSButton *promptWhenQuit; IBOutlet NSButton *deleteCache; IBOutlet NSButton *fullPathInFilePanels; + IBOutlet NSTextField *buildToolField; IBOutlet NSTextField *debuggerField; IBOutlet NSTextField *editorField; diff --git a/PCPrefController.m b/PCPrefController.m index 59894aa..36f03ec 100644 --- a/PCPrefController.m +++ b/PCPrefController.m @@ -120,6 +120,7 @@ static PCPrefController *_prefCtrllr = nil; [preferencesDict setObject:@"YES" forKey:PromptOnQuit]; [preferencesDict setObject:@"YES" forKey:DeleteCacheWhenQuitting]; [preferencesDict setObject:@"YES" forKey:FullPathInFilePanels]; + [preferencesDict setObject:@"/usr/bin/make" forKey:BuildTool]; [preferencesDict setObject:@"/usr/bin/gdb" forKey:Debugger]; [preferencesDict setObject:@"ProjectCenter" forKey:Editor]; @@ -207,6 +208,8 @@ static PCPrefController *_prefCtrllr = nil; ([[preferencesDict objectForKey: FullPathInFilePanels] isEqualToString:@"YES"]) ? NSOnState : NSOffState]; + [buildToolField setStringValue: + (val = [preferencesDict objectForKey:BuildTool]) ? val : @"/usr/bin/make"]; [debuggerField setStringValue: (val = [preferencesDict objectForKey: Debugger]) ? val : @"/usr/bin/gdb"]; [editorField setStringValue: @@ -656,6 +659,27 @@ static PCPrefController *_prefCtrllr = nil; forKey:FullPathInFilePanels]; } +- (void)setBuildTool:(id)sender +{ + NSString *path = [buildToolField stringValue]; + + if ([path isEqualToString:@""] || !path) + { + [buildToolField setStringValue:@"/usr/bin/make"]; + path = [buildToolField stringValue]; + } + else if (!path || ![[NSFileManager defaultManager] fileExistsAtPath:path]) + { + [buildToolField selectText:self]; + NSRunAlertPanel(@"Build Tool not found!", + @"File %@ doesn't exist!", + @"OK", nil, nil, path); + } + + [[NSUserDefaults standardUserDefaults] setObject:path forKey:BuildTool]; + [preferencesDict setObject:path forKey:BuildTool]; +} + - (void)setDebugger:(id)sender { NSString *path = [debuggerField stringValue]; diff --git a/Resources/Preferences.gorm/data.classes b/Resources/Preferences.gorm/data.classes index 5eb2593..ba53cd4 100644 --- a/Resources/Preferences.gorm/data.classes +++ b/Resources/Preferences.gorm/data.classes @@ -1,142 +1,42 @@ { + "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( - "activateContextHelpMode:", - "alignCenter:", - "alignJustified:", "alignLeft:", - "alignRight:", - "arrangeInFront:", - "cancel:", "capitalizeWord:", - "changeColor:", - "checkSpelling:", - "close:", "complete:", - "copy:", - "copyFont:", - "copyRuler:", "cut:", - "delete:", - "deleteBackward:", - "deleteForward:", "deleteToBeginningOfLine:", - "deleteToBeginningOfParagraph:", - "deleteToEndOfLine:", - "deleteToEndOfParagraph:", "deleteToMark:", - "deleteWordBackward:", - "deleteWordForward:", - "deminiaturize:", "deselectAll:", - "fax:", - "hide:", - "hideOtherApplications:", "indent:", - "loosenKerning:", - "lowerBaseline:", - "lowercaseWord:", "makeKeyAndOrderFront:", - "miniaturize:", - "miniaturizeAll:", - "moveBackward:", "moveBackwardAndModifySelection:", - "moveDown:", - "moveDownAndModifySelection:", - "moveForward:", "moveForwardAndModifySelection:", - "moveLeft:", - "moveRight:", - "moveToBeginningOfDocument:", "moveToBeginningOfLine:", - "moveToBeginningOfParagraph:", - "moveToEndOfDocument:", - "moveToEndOfLine:", "moveToEndOfParagraph:", - "moveUp:", - "moveUpAndModifySelection:", - "moveWordBackward:", "moveWordBackwardAndModifySelection:", - "moveWordForward:", - "moveWordForwardAndModifySelection:", - "newDocument:", "ok:", - "open:", - "openDocument:", - "orderBack:", "orderFront:", - "orderFrontColorPanel:", - "orderFrontDataLinkPanel:", - "orderFrontHelpPanel:", "orderFrontStandardAboutPanel:", - "orderFrontStandardInfoPanel:", - "orderOut:", - "pageDown:", "pageUp:", - "paste:", - "pasteAsPlainText:", - "pasteAsRichText:", "pasteFont:", - "pasteRuler:", - "performClose:", - "performMiniaturize:", "performZoom:", - "print:", - "raiseBaseline:", - "revertDocumentToSaved:", "runPageLayout:", - "runToolbarCustomizationPalette:", - "saveAllDocuments:", - "saveDocument:", "saveDocumentAs:", - "saveDocumentTo:", - "scrollLineDown:", - "scrollLineUp:", "scrollPageDown:", - "scrollPageUp:", - "scrollViaScroller:", - "selectAll:", "selectLine:", - "selectNextKeyView:", - "selectParagraph:", - "selectPreviousKeyView:", "selectText:", - "selectToMark:", - "selectWord:", - "showContextHelp:", "showGuessPanel:", - "showHelp:", - "showWindow:", - "stop:", "subscript:", - "superscript:", - "swapWithMark:", - "takeDoubleValueFrom:", "takeFloatValueFrom:", - "takeIntValueFrom:", - "takeObjectValueFrom:", - "takeStringValueFrom:", "terminate:", - "tightenKerning:", - "toggle:", - "toggleContinuousSpellChecking:", "toggleRuler:", - "toggleToolbarShown:", - "toggleTraditionalCharacterShape:", - "transpose:", "transposeWords:", - "turnOffKerning:", - "turnOffLigatures:", - "underline:", "unhide:", - "unhideAllApplications:", - "unscript:", - "uppercaseWord:", "useAllLigatures:", - "useStandardKerning:", - "useStandardLigatures:", - "yank:", - "zoom:" + "zoom:", + "setBuildTool:" ); Super = NSObject; }; @@ -160,7 +60,8 @@ "setFullPathInFilePanels:", "setRememberWindows:", "setEditorSize:", - "setDisplayLog:" + "setDisplayLog:", + "setBuildTool:" ); Outlets = ( panel, @@ -196,7 +97,8 @@ rootBuildDirButton, editorColumnsField, editorLinesField, - displayLog + displayLog, + buildToolField ); Super = NSObject; }; diff --git a/Resources/Preferences.gorm/data.info b/Resources/Preferences.gorm/data.info index 27a8774..72818cc 100644 Binary files a/Resources/Preferences.gorm/data.info and b/Resources/Preferences.gorm/data.info differ diff --git a/Resources/Preferences.gorm/objects.gorm b/Resources/Preferences.gorm/objects.gorm index e8fcd1e..b8efa6e 100644 Binary files a/Resources/Preferences.gorm/objects.gorm and b/Resources/Preferences.gorm/objects.gorm differ