mirror of
https://github.com/gnustep/apps-projectcenter.git
synced 2025-02-22 03:11:18 +00:00
finish updating Renaissance
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/branches/UNSTABLE_0_4@18970 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
7e40ae2ced
commit
3014de2a3e
6 changed files with 555 additions and 100 deletions
|
@ -1,25 +0,0 @@
|
||||||
/*
|
|
||||||
* AppController.h
|
|
||||||
*
|
|
||||||
* GNUstep Renaissance Application Controller
|
|
||||||
*
|
|
||||||
* Created with ProjectCenter - http://www.gnustep.org
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _APPCONTROLLER_H_
|
|
||||||
#define _APPCONTROLLER_H_
|
|
||||||
|
|
||||||
#include <Foundation/Foundation.h>
|
|
||||||
#include <Renaissance/Renaissance.h>
|
|
||||||
|
|
||||||
@interface AppController : NSObject
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) applicationDidFinishLaunching: (NSNotification *)not;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
#endif /* _APPCONTROLLER_H_ */
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
/*
|
|
||||||
* AppController.m
|
|
||||||
*
|
|
||||||
* GNUstep Renaissance Application Controller
|
|
||||||
*
|
|
||||||
* Created with ProjectCenter - http://www.gnustep.org
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "AppController.h"
|
|
||||||
|
|
||||||
@implementation AppController
|
|
||||||
|
|
||||||
- (void) applicationDidFinishLaunching: (NSNotification *)not
|
|
||||||
{
|
|
||||||
[NSBundle loadGSMarkupNamed: @"Main" owner: self];
|
|
||||||
}
|
|
||||||
@end
|
|
68
Modules/RenaissanceProject/PCRenaissanceProject+Inspector.h
Normal file
68
Modules/RenaissanceProject/PCRenaissanceProject+Inspector.h
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
/*
|
||||||
|
GNUstep ProjectCenter - http://www.gnustep.org
|
||||||
|
|
||||||
|
Copyright (C) 2001 Free Software Foundation
|
||||||
|
|
||||||
|
Author: Serg Stoyan <stoyan@on.com.ua>
|
||||||
|
|
||||||
|
This file is part of GNUstep.
|
||||||
|
|
||||||
|
This application is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This application is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public
|
||||||
|
License along with this library; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _PCRenaissanceProject_Inspector_h_
|
||||||
|
#define _PCRenaissanceProject_Inspector_h_
|
||||||
|
|
||||||
|
#include "PCRenaissanceProject.h"
|
||||||
|
|
||||||
|
@interface PCRenaissanceProject (Inspector)
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// --- User Interface
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
- (void)createProjectAttributes;
|
||||||
|
- (NSView *)projectAttributesView;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// --- Actions
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
- (void)setAppClass:(id)sender;
|
||||||
|
- (void)setFile:(id)sender;
|
||||||
|
- (void)clearFile:(id)sender;
|
||||||
|
- (void)setAppIcon:(id)sender;
|
||||||
|
- (void)clearAppIcon:(id)sender;
|
||||||
|
- (BOOL)setAppIconWithImageAtPath:(NSString *)path;
|
||||||
|
- (void)setMainNib:(id)sender;
|
||||||
|
- (BOOL)setMainNibWithFileAtPath:(NSString *)path;
|
||||||
|
- (void)clearMainNib:(id)sender;
|
||||||
|
|
||||||
|
- (int)numberOfRowsInTableView:(NSTableView *)aTableView;
|
||||||
|
- (id) tableView: (NSTableView *)aTableView
|
||||||
|
objectValueForTableColumn: (NSTableColumn *)aTableColumn
|
||||||
|
row: (int)rowIndex;
|
||||||
|
- (void) tableView:(NSTableView *)aTableView
|
||||||
|
setObjectValue:anObject
|
||||||
|
forTableColumn:(NSTableColumn *)aTableColumn
|
||||||
|
row:(int)rowIndex;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// --- Notifications
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
- (void)updateInspectorValues:(NSNotification *)aNotif;
|
||||||
|
- (void)tfGetFocus:(NSNotification *)aNotif;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif
|
487
Modules/RenaissanceProject/PCRenaissanceProject+Inspector.m
Normal file
487
Modules/RenaissanceProject/PCRenaissanceProject+Inspector.m
Normal file
|
@ -0,0 +1,487 @@
|
||||||
|
/*
|
||||||
|
GNUstep ProjectCenter - http://www.gnustep.org
|
||||||
|
|
||||||
|
Copyright (C) 2001 Free Software Foundation
|
||||||
|
|
||||||
|
Author: Serg Stoyan <stoyan@on.com.ua>
|
||||||
|
|
||||||
|
This file is part of GNUstep.
|
||||||
|
|
||||||
|
This application is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This application is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public
|
||||||
|
License along with this library; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <ProjectCenter/ProjectCenter.h>
|
||||||
|
#include "PCRenaissanceProject+Inspector.h"
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// --- Customized text field
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification";
|
||||||
|
|
||||||
|
@implementation PCAppTextField
|
||||||
|
|
||||||
|
- (BOOL)becomeFirstResponder
|
||||||
|
{
|
||||||
|
[[NSNotificationCenter defaultCenter]
|
||||||
|
postNotificationName:PCITextFieldGetFocus
|
||||||
|
object:self];
|
||||||
|
|
||||||
|
return [super becomeFirstResponder];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation PCRenaissanceProject (Inspector)
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// --- User Interface
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- (void)createProjectAttributes
|
||||||
|
{
|
||||||
|
// TFs Buttons
|
||||||
|
[setFieldButton setRefusesFirstResponder:YES];
|
||||||
|
[clearFieldButton setRefusesFirstResponder:YES];
|
||||||
|
|
||||||
|
// Document Icons
|
||||||
|
//
|
||||||
|
docExtColumn = [[NSTableColumn alloc] initWithIdentifier: @"extension"];
|
||||||
|
[[docExtColumn headerCell] setStringValue:@"Extenstion"];
|
||||||
|
[docExtColumn setWidth:75];
|
||||||
|
docIconColumn = [[NSTableColumn alloc] initWithIdentifier: @"icon"];
|
||||||
|
[[docIconColumn headerCell] setStringValue:@"Icon name"];
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
// Document icons buttons
|
||||||
|
[addDocIcon setRefusesFirstResponder:YES];
|
||||||
|
[removeDocIcon setRefusesFirstResponder:YES];
|
||||||
|
|
||||||
|
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||||
|
selector:@selector(tfGetFocus:)
|
||||||
|
name:PCITextFieldGetFocus
|
||||||
|
object:nil];
|
||||||
|
[projectAttributesView retain];
|
||||||
|
|
||||||
|
[self updateInspectorValues:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSView *)projectAttributesView
|
||||||
|
{
|
||||||
|
if (!projectAttributesView)
|
||||||
|
{
|
||||||
|
if ([NSBundle loadNibNamed:@"Inspector" owner:self] == NO)
|
||||||
|
{
|
||||||
|
NSLog(@"PCAppProject: error loading Inspector NIB!");
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
[self createProjectAttributes];
|
||||||
|
}
|
||||||
|
|
||||||
|
return projectAttributesView;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// --- Actions
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- (void)setAppClass:(id)sender
|
||||||
|
{
|
||||||
|
[self setProjectDictObject:[appClassField stringValue]
|
||||||
|
forKey:PCPrincipalClass];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setIconViewImage:(NSImage *)image
|
||||||
|
{
|
||||||
|
[iconView setImage:nil];
|
||||||
|
[iconView display];
|
||||||
|
|
||||||
|
if (image == nil)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
[iconView setImage:image];
|
||||||
|
[iconView display];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setFile:(id)sender
|
||||||
|
{
|
||||||
|
if (!activeTextField)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (activeTextField == appImageField)
|
||||||
|
{
|
||||||
|
[self setAppIcon:self];
|
||||||
|
}
|
||||||
|
else if (activeTextField == helpFileField)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (activeTextField == mainNIBField)
|
||||||
|
{
|
||||||
|
[self setMainNib:self];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)clearFile:(id)sender
|
||||||
|
{
|
||||||
|
if (!activeTextField)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (activeTextField == appImageField)
|
||||||
|
{
|
||||||
|
[self clearAppIcon:self];
|
||||||
|
}
|
||||||
|
else if (activeTextField == helpFileField)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (activeTextField == mainNIBField)
|
||||||
|
{
|
||||||
|
[self clearMainNib:self];
|
||||||
|
}
|
||||||
|
[self setIconViewImage:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Application Icon
|
||||||
|
- (void)setAppIcon:(id)sender
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
NSArray *fileTypes = [NSImage imageFileTypes];
|
||||||
|
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
|
||||||
|
NSString *dir = nil;
|
||||||
|
|
||||||
|
[openPanel setAllowsMultipleSelection:NO];
|
||||||
|
[openPanel setTitle:@"Set Application Icon"];
|
||||||
|
|
||||||
|
dir = [[NSUserDefaults standardUserDefaults]
|
||||||
|
objectForKey:@"LastOpenDirectory"];
|
||||||
|
result = [openPanel runModalForDirectory:dir
|
||||||
|
file:nil
|
||||||
|
types:fileTypes];
|
||||||
|
|
||||||
|
if (result == NSOKButton)
|
||||||
|
{
|
||||||
|
NSString *imageFilePath = [[openPanel filenames] objectAtIndex:0];
|
||||||
|
|
||||||
|
if (![self setAppIconWithImageAtPath:imageFilePath])
|
||||||
|
{
|
||||||
|
NSRunAlertPanel(@"Error while opening file!",
|
||||||
|
@"Couldn't open %@", @"OK", nil, nil,imageFilePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)clearAppIcon:(id)sender
|
||||||
|
{
|
||||||
|
[appImageField setStringValue:@""];
|
||||||
|
[infoDict setObject:@"" forKey:@"NSIcon"];
|
||||||
|
[infoDict setObject:@"" forKey:@"ApplicationIcon"];
|
||||||
|
|
||||||
|
[self setProjectDictObject:@"" forKey:PCAppIcon];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)setAppIconWithImageAtPath:(NSString *)path
|
||||||
|
{
|
||||||
|
NSImage *image = nil;
|
||||||
|
NSString *imageName = nil;
|
||||||
|
|
||||||
|
if (!(image = [[NSImage alloc] initWithContentsOfFile:path]))
|
||||||
|
{
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
imageName = [path lastPathComponent];
|
||||||
|
|
||||||
|
[appImageField setStringValue:imageName];
|
||||||
|
|
||||||
|
[self setIconViewImage:image];
|
||||||
|
|
||||||
|
[self addAndCopyFiles:[NSArray arrayWithObject:path] forKey:PCImages];
|
||||||
|
|
||||||
|
[infoDict setObject:imageName forKey:@"NSIcon"];
|
||||||
|
[infoDict setObject:imageName forKey:@"ApplicationIcon"];
|
||||||
|
|
||||||
|
[self setProjectDictObject:imageName forKey:PCAppIcon];
|
||||||
|
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main Interface File
|
||||||
|
- (void)setMainNib:(id)sender
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
|
||||||
|
NSString *dir = nil;
|
||||||
|
|
||||||
|
[openPanel setAllowsMultipleSelection:NO];
|
||||||
|
[openPanel setTitle:@"Set Main Interface File"];
|
||||||
|
|
||||||
|
dir = [[NSUserDefaults standardUserDefaults]
|
||||||
|
objectForKey:@"LastOpenDirectory"];
|
||||||
|
result = [openPanel runModalForDirectory:dir
|
||||||
|
file:nil
|
||||||
|
types:[NSArray arrayWithObject:@"gorm"]];
|
||||||
|
|
||||||
|
if (result == NSOKButton)
|
||||||
|
{
|
||||||
|
NSString *file = [[openPanel filenames] objectAtIndex:0];
|
||||||
|
|
||||||
|
if (![self setMainNibWithFileAtPath:file])
|
||||||
|
{
|
||||||
|
NSRunAlertPanel(@"Error while opening file!",
|
||||||
|
@"Couldn't open %@", @"OK", nil, nil,file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)setMainNibWithFileAtPath:(NSString *)path
|
||||||
|
{
|
||||||
|
NSString *nibName = [path lastPathComponent];
|
||||||
|
|
||||||
|
[self setIconViewImage:[[NSWorkspace sharedWorkspace] iconForFile:path]];
|
||||||
|
|
||||||
|
[self addAndCopyFiles:[NSArray arrayWithObject:path] forKey:PCInterfaces];
|
||||||
|
[infoDict setObject:nibName forKey:@"NSMainNibFile"];
|
||||||
|
|
||||||
|
[self setProjectDictObject:nibName forKey:PCMainInterfaceFile];
|
||||||
|
|
||||||
|
[mainNIBField setStringValue:nibName];
|
||||||
|
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)clearMainNib:(id)sender
|
||||||
|
{
|
||||||
|
[mainNIBField setStringValue:@""];
|
||||||
|
[infoDict setObject:@"" forKey:@"NSMainNibFile"];
|
||||||
|
|
||||||
|
[self setProjectDictObject:@"" forKey:PCMainInterfaceFile];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Document Icons
|
||||||
|
- (void)addDocIcon:(id)sender
|
||||||
|
{
|
||||||
|
int row;
|
||||||
|
NSMutableDictionary *entry = [NSMutableDictionary dictionaryWithCapacity:2];
|
||||||
|
int selectedRow = [docIconsList selectedRow];
|
||||||
|
|
||||||
|
[entry setObject:@"" forKey:@"Extension"];
|
||||||
|
[entry setObject:@"" forKey:@"Icon"];
|
||||||
|
|
||||||
|
if (selectedRow >= 0)
|
||||||
|
{
|
||||||
|
[docIconsItems insertObject:entry atIndex:selectedRow + 1];
|
||||||
|
row = selectedRow + 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
[docIconsItems addObject:entry];
|
||||||
|
row = [docIconsItems count] - 1;
|
||||||
|
}
|
||||||
|
[docIconsList reloadData];
|
||||||
|
|
||||||
|
[docIconsList selectRow:row byExtendingSelection:NO];
|
||||||
|
[docIconsList editColumn:0 row:row withEvent:nil select:YES];
|
||||||
|
|
||||||
|
[self setProjectDictObject:docIconsItems forKey:PCDocumentExtensions];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)removeDocIcon:(id)sender
|
||||||
|
{
|
||||||
|
int selectedRow = [docIconsList selectedRow];
|
||||||
|
|
||||||
|
if (selectedRow >= 0)
|
||||||
|
{
|
||||||
|
[docIconsItems removeObjectAtIndex:selectedRow];
|
||||||
|
[docIconsList reloadData];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (([docIconsList selectedRow] < 0) && ([docIconsItems count] > 0))
|
||||||
|
{
|
||||||
|
[docIconsList selectRow:[docIconsItems count]-1 byExtendingSelection:NO];
|
||||||
|
}
|
||||||
|
|
||||||
|
[self setProjectDictObject:docIconsItems forKey:PCDocumentExtensions];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// --- Document Icons browser
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- (int)numberOfRowsInTableView: (NSTableView *)aTableView
|
||||||
|
{
|
||||||
|
return [docIconsItems count];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (id) tableView: (NSTableView *)aTableView
|
||||||
|
objectValueForTableColumn: (NSTableColumn *)aTableColumn
|
||||||
|
row: (int)rowIndex
|
||||||
|
{
|
||||||
|
if ([[aTableColumn identifier] isEqualToString:@"extension"])
|
||||||
|
{
|
||||||
|
return [[docIconsItems objectAtIndex:rowIndex] objectForKey:@"Extension"];
|
||||||
|
}
|
||||||
|
else if ([[aTableColumn identifier] isEqualToString:@"icon"])
|
||||||
|
{
|
||||||
|
return [[docIconsItems objectAtIndex:rowIndex] objectForKey:@"Icon"];
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) tableView:(NSTableView *)aTableView
|
||||||
|
setObjectValue:anObject
|
||||||
|
forTableColumn:(NSTableColumn *)aTableColumn
|
||||||
|
row:(int)rowIndex
|
||||||
|
{
|
||||||
|
if (docIconsItems == nil || [docIconsItems count] <= 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ([[aTableColumn identifier] isEqualToString:@"extension"])
|
||||||
|
{
|
||||||
|
[[docIconsItems objectAtIndex:rowIndex] removeObjectForKey:@"Extension"];
|
||||||
|
[[docIconsItems objectAtIndex:rowIndex] setObject:anObject
|
||||||
|
forKey:@"Extension"];
|
||||||
|
}
|
||||||
|
else if ([[aTableColumn identifier] isEqualToString:@"icon"])
|
||||||
|
{
|
||||||
|
[[docIconsItems objectAtIndex:rowIndex] removeObjectForKey:@"Icon"];
|
||||||
|
[[docIconsItems objectAtIndex:rowIndex] setObject:anObject
|
||||||
|
forKey:@"Icon"];
|
||||||
|
}
|
||||||
|
|
||||||
|
[self setProjectDictObject:docIconsItems forKey:PCDocumentExtensions];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// --- Notifications
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- (void)updateInspectorValues:(NSNotification *)aNotif
|
||||||
|
{
|
||||||
|
NSLog (@"PCAppProject: updateInspectorValues");
|
||||||
|
|
||||||
|
// Project Attributes view
|
||||||
|
[projectTypeField setStringValue:[projectDict objectForKey:PCProjectType]];
|
||||||
|
[projectNameField setStringValue:[projectDict objectForKey:PCProjectName]];
|
||||||
|
[projectLanguageField setStringValue:[projectDict objectForKey:@"LANGUAGE"]];
|
||||||
|
[appClassField setStringValue:[projectDict objectForKey:PCPrincipalClass]];
|
||||||
|
|
||||||
|
[appImageField setStringValue:[projectDict objectForKey:PCAppIcon]];
|
||||||
|
[helpFileField setStringValue:[projectDict objectForKey:PCHelpFile]];
|
||||||
|
[mainNIBField setStringValue:[projectDict objectForKey:PCMainInterfaceFile]];
|
||||||
|
|
||||||
|
docIconsItems = [projectDict objectForKey:PCDocumentExtensions];
|
||||||
|
[docIconsList reloadData];
|
||||||
|
}
|
||||||
|
|
||||||
|
// TextFields (PCITextField subclass)
|
||||||
|
//
|
||||||
|
// NSTextField become first responder when user clicks on it and immediately
|
||||||
|
// lost first resonder status, so we can't catch when focus leaves textfield
|
||||||
|
// with resignFirstResponder: method overriding. Here we're using
|
||||||
|
// controlTextDidEndEditing (NSTextField's delegate method) to achieve this.
|
||||||
|
|
||||||
|
- (void)tfGetFocus:(NSNotification *)aNotif
|
||||||
|
{
|
||||||
|
id anObject = [aNotif object];
|
||||||
|
NSString *file = nil;
|
||||||
|
NSString *path = nil;
|
||||||
|
|
||||||
|
|
||||||
|
if (anObject != appImageField
|
||||||
|
&& anObject != helpFileField
|
||||||
|
&& anObject != mainNIBField)
|
||||||
|
{
|
||||||
|
NSLog(@"tfGetFocus: not that textfield");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (anObject == appImageField)
|
||||||
|
{
|
||||||
|
file = [appImageField stringValue];
|
||||||
|
|
||||||
|
if (![file isEqualToString:@""])
|
||||||
|
{
|
||||||
|
path = [self dirForCategoryKey:PCImages];
|
||||||
|
path = [path stringByAppendingPathComponent:file];
|
||||||
|
[self setIconViewImage:[[NSImage alloc]
|
||||||
|
initWithContentsOfFile:path]];
|
||||||
|
}
|
||||||
|
activeTextField = appImageField;
|
||||||
|
}
|
||||||
|
else if (anObject == helpFileField)
|
||||||
|
{
|
||||||
|
activeTextField = helpFileField;
|
||||||
|
}
|
||||||
|
else if (anObject == mainNIBField)
|
||||||
|
{
|
||||||
|
file = [mainNIBField stringValue];
|
||||||
|
|
||||||
|
if (![file isEqualToString:@""])
|
||||||
|
{
|
||||||
|
path = [projectPath stringByAppendingPathComponent:file];
|
||||||
|
[self setIconViewImage:[[NSWorkspace sharedWorkspace]
|
||||||
|
iconForFile:path]];
|
||||||
|
}
|
||||||
|
activeTextField = mainNIBField;
|
||||||
|
}
|
||||||
|
|
||||||
|
[setFieldButton setEnabled:YES];
|
||||||
|
[clearFieldButton setEnabled:YES];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)controlTextDidEndEditing:(NSNotification *)aNotification
|
||||||
|
{
|
||||||
|
id anObject = [aNotification object];
|
||||||
|
|
||||||
|
if (anObject != appImageField
|
||||||
|
&& anObject != helpFileField
|
||||||
|
&& anObject != mainNIBField)
|
||||||
|
{
|
||||||
|
NSLog(@"tfLostFocus: not that textfield");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
activeTextField = nil;
|
||||||
|
[self setIconViewImage:nil];
|
||||||
|
|
||||||
|
[setFieldButton setEnabled:NO];
|
||||||
|
[clearFieldButton setEnabled:NO];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
|
@ -1,30 +0,0 @@
|
||||||
/*
|
|
||||||
AppController.h
|
|
||||||
|
|
||||||
GNUstep Renaissance Application Controller
|
|
||||||
|
|
||||||
This application is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This application is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public
|
|
||||||
License along with this library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "AppController.h"
|
|
||||||
|
|
||||||
@implementation AppController
|
|
||||||
|
|
||||||
- (void) applicationDidFinishLaunching:(NSNotification *)aNotif
|
|
||||||
{
|
|
||||||
[NSBundle loadGSMarkupNamed:@"Main" owner:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,27 +0,0 @@
|
||||||
#include <Foundation/Foundation.h>
|
|
||||||
#include <AppKit/AppKit.h>
|
|
||||||
#include <Renaissance/Renaissance.h>
|
|
||||||
#include "AppController.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initialise and go!
|
|
||||||
*/
|
|
||||||
|
|
||||||
int main(int argc, const char *argv[])
|
|
||||||
{
|
|
||||||
CREATE_AUTORELEASE_POOL (pool);
|
|
||||||
[NSApplication sharedApplication];
|
|
||||||
[NSApp setDelegate: [AppController new]];
|
|
||||||
|
|
||||||
#ifdef GNUSTEP
|
|
||||||
[NSBundle loadGSMarkupNamed: @"MainMenu-GNUstep" owner: [NSApp delegate]];
|
|
||||||
#else
|
|
||||||
[NSBundle loadGSMarkupNamed: @"MainMenu-OSX" owner: [NSApp delegate]];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
RELEASE (pool);
|
|
||||||
return NSApplicationMain (argc, argv);
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in a new issue