Extensive changes to support GormLib (separation of key functionality from Gorm itself into a subproject library). This will allow easy extension of Gorm in the future.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@16776 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Gregory John Casamento 2003-05-23 02:25:34 +00:00
parent ae0687d0fc
commit dc86bbbd18
49 changed files with 1421 additions and 604 deletions

View file

@ -1,3 +1,52 @@
2003-05-22 Gregory John Casamento <greg_casamento@yahoo.com>
* TODO: Updated.
* GNUmakefile: Added reference to GormLib as a subproject of Gorm
* GModelDecoder.m: Cleaned up some code.
and removed reference to IBInspector and IBPalette.
* GNUmakefile.preamble: Relaxing the -Werror directive in the
makefile. For now.
* Gorm.m: Removed code which was moved to GormLib classes.
* GormButtonEditor.m: Added #include for InterfaceBuilder.
* GormClassEditor.m: Removed Gorm.h header which is no longer
pertinent.
* GormClassManager.m: Added include to IBEditors.h and
* GormCustomClassEditor.[hm]: Removed Gorm.h header reference.
* GormDocument.h: Added some headers.
* GormDocument.m: General code cleanup. Removed Notifications which
will be in GormLib classes. Implemented use of "awakeFromDocument:" a new
method defined in GormLib which allows implemention of behavior when
a class is loaded by Gorm. (see Apple's interface builder framework)
* GormFilesOwner.m: Added NSNibConnector header which was previously
provided by Gorm.h. This was the only include needed here.
* GormInspectorsManager.m: Same as above.
* GormPrivate.h: Added GPL notice and include for InterfaceBuilder.h
* GormSoundInspector.h: Corrected description for GormSoundInspector class.
* Palettes: Updated all palettes in the palettes directory to include
the new headers.
* GormLib/GNUmakefile: new file.
* GormLib/GNUmakefile.postamble: new file.
* GormLib/GNUmakefile.preamble: new file.
* GormLib/IBApplicationAdditions.h: new file.
* GormLib/IBApplicationAdditions.m: new file.
* GormLib/IBConnectors.h: new file.
* GormLib/IBConnectors.m: new file.
* GormLib/IBDefines.h: new file.
* GormLib/IBDocuments.h: new file.
* GormLib/IBDocuments.m: new file.
* GormLib/IBEditors.h: new file.
* GormLib/IBEditors.m: new file.
* GormLib/IBInspector.h: new file.
* GormLib/IBInspector.m: new file.
* GormLib/IBObjectAdditions.h: new file.
* GormLib/IBObjectAdditions.m: new file.
* GormLib/IBObjectProtocol.h: new file.
* GormLib/IBPalette.h: new file.
* GormLib/IBPalette.m: new file.
* GormLib/IBViewAdditions.h: new file.
* GormLib/InterfaceBuilder.h: new file.
* GormLib/README: new file.
2003-05-19 Gregory John Casamento <greg_casamento@yahoo.com>
Applied patch submitted by Fabien Vallon <fabien@tuxfamily.org>

View file

@ -20,8 +20,15 @@ See @url{http://www.gnustep.org/} for further information.
@subsection Build and Install
To build Gorm, simply type 'make'. To install, type 'make install'
To build Gorm, you must first install GormLib. GormLib is a subproject of
Gorm. Once GormLib is built, install it and then build Gorm. Steps to build:
@itemize
@item cd GormLib
@item make && make install
@item cd .. (to the Gorm directory)
@item make && make install
@end itemize
@subsection Trouble
Give us feedback! Tell us what you like; tell us what you think

View file

@ -27,6 +27,7 @@
#include <AppKit/IMCustomObject.h>
#include <AppKit/NSWindow.h>
#include <AppKit/GSDisplayServer.h>
#include <AppKit/NSNibConnector.h>
#include "GormPrivate.h"
#include "GormCustomView.h"
@ -284,8 +285,8 @@ static BOOL gormFileOwnerDecoded;
[u decodeClassName: @"NSTableView" asClassName: @"GormNSTableView"];
[u decodeClassName: @"NSOutlineView" asClassName: @"GormNSOutlineView"];
[u decodeClassName: @"NSPopUpButton" asClassName: @"GormNSPopUpButton"];
[u decodeClassName: @"NSPopUpButtonCell"
asClassName: @"GormNSPopUpButtonCell"];
[u decodeClassName: @"NSPopUpButtonCell" asClassName: @"GormNSPopUpButtonCell"];
[u decodeClassName: @"NSOutlineView" asClassName: @"GormNSOutlineView"];
unarchiver = [u unarchiverWithContentsOfFile: path];
if (!unarchiver)

View file

@ -36,6 +36,7 @@ include ./Version
# Each palette is a subproject
#
SUBPROJECTS = \
GormLib \
Palettes \
Testing
@ -149,8 +150,6 @@ Gorm_HEADERS = \
Gorm_OBJC_FILES = \
Gorm.m \
GormDocument.m \
IBInspector.m \
IBPalette.m \
GModelDecoder.m \
GormCustomView.m \
GormViewKnobs.m \

View file

@ -22,6 +22,5 @@
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA
#
ADDITIONAL_OBJCFLAGS+= -Wall \
-Werror
# ADDITIONAL_OBJCFLAGS += -Wall -Werror
ADDITIONAL_LDFLAGS += -lGorm

47
Gorm.m
View file

@ -1,9 +1,10 @@
/* Gorm.m
*
* Copyright (C) 1999 Free Software Foundation, Inc.
* Copyright (C) 1999, 2003 Free Software Foundation, Inc.
*
* Author: Richard Frith-Macdonald <richard@brainstrom.co.uk>
* Date: 1999
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 1999, 2003
*
* This file is part of GNUstep.
*
@ -29,17 +30,7 @@
#include <AppKit/NSControl.h>
#include <AppKit/NSButton.h>
NSString *IBWillBeginTestingInterfaceNotification
= @"IBWillBeginTestingInterfaceNotification";
NSString *IBDidBeginTestingInterfaceNotification
= @"IBDidBeginTestingInterfaceNotification";
NSString *IBWillEndTestingInterfaceNotification
= @"IBWillEndTestingInterfaceNotification";
NSString *IBDidEndTestingInterfaceNotification
= @"IBDidEndTestingInterfaceNotification";
NSDate *startDate;
NSString *GormLinkPboardType = @"GormLinkPboardType";
NSString *GormToggleGuidelineNotification = @"GormToggleGuidelineNotification";
@ -410,18 +401,10 @@ static NSButtonType _buttonTypeForObject( id button )
}
@end
@implementation NSObject (GormCustomClassAdditions)
+ (BOOL) canSubstituteForClass: (Class)aClass
{
// only for now...
return NO;
}
@end
// Gorm template subclasses to allow persisting and unpersisting from Gorm w/o the
// class trying to transform itself into the custom class instance. Instead the
// class will transform itself into the appropriate parent class which Gorm knows
// about.
// Gorm template subclasses to allow persisting and unpersisting
// from Gorm w/o the class trying to transform itself into the custom
// class instance. Instead the class will transform itself into the
// appropriate parent class which Gorm knows about.
@implementation GormNSWindowTemplate
- awakeAfterUsingCoder: (NSCoder *)coder
{
@ -456,8 +439,6 @@ static NSButtonType _buttonTypeForObject( id button )
- awakeAfterUsingCoder: (NSCoder *)coder
{
id obj = nil;
NSString *name = [[(Gorm *)NSApp activeDocument] nameForObject: self];
NSLog(@"**** NAME: %@",name);
[self setClassName: _parentClassName];
obj = RETAIN([self instantiateObject: coder]);
return obj;
@ -468,11 +449,8 @@ static NSButtonType _buttonTypeForObject( id button )
- awakeAfterUsingCoder: (NSCoder *)coder
{
id obj = nil;
NSString *name = [[(Gorm *)NSApp activeDocument] nameForObject: self];
NSDebugLog(@"**** NAME: %@ %@",name, self);
[self setClassName: _parentClassName];
obj = RETAIN([self instantiateObject: coder]);
NSDebugLog(@"******** OBJECT: %@",obj);
return obj;
}
@end
@ -958,9 +936,14 @@ static NSButtonType _buttonTypeForObject( id button )
}
}
defs = [NSUserDefaults standardUserDefaults];
[defs setObject: menuLocations forKey: @"NSMenuLocations"];
DESTROY(menuLocations);
// prevent saving of this, if the menuLocations have not previously been set.
if(menuLocations != nil)
{
defs = [NSUserDefaults standardUserDefaults];
[defs setObject: menuLocations forKey: @"NSMenuLocations"];
DESTROY(menuLocations);
}
[self setMainMenu: mainMenu];
DESTROY(testContainer);

View file

@ -22,15 +22,11 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <InterfaceBuilder/InterfaceBuilder.h>
#include <AppKit/AppKit.h>
#include "GormPrivate.h"
#include "GormButtonEditor.h"
#include "GormViewWithSubviewsEditor.h"
#include "Gorm.h"
#define _EO ((NSButton *)_editedObject)

View file

@ -1,4 +1,3 @@
#include "Gorm.h"
#include "GormPrivate.h"
@implementation GormClassEditor

View file

@ -25,8 +25,7 @@
#include "GormPrivate.h"
#include "GormCustomView.h"
NSString *IBClassNameChangedNotification = @"IBClassNameChangedNotification";
#include <InterfaceBuilder/IBEditors.h>
@interface GormClassManager (Private)
- (NSMutableDictionary*) classInfoForClassName: (NSString*)className;

View file

@ -28,7 +28,7 @@
#define INCLUDED_GormCustomClassInspector_h
#include <AppKit/AppKit.h>
#include "Gorm.h"
#include <InterfaceBuilder/IBInspector.h>
@class GormClassManager;

View file

@ -32,7 +32,6 @@
#include "GormClassManager.h"
#include "GormDocument.h"
#include "GormPrivate.h"
#include "Gorm.h"
@implementation GormCustomClassInspector
+ (void) initialize

View file

@ -1,6 +1,11 @@
#ifndef INCLUDED_GormDocument_h
#define INCLUDED_GormDocument_h
#include <AppKit/AppKit.h>
#include <Foundation/Foundation.h>
#include <AppKit/GSNibTemplates.h>
@class GormClassManager, GormClassEditor;
/*

View file

@ -31,6 +31,7 @@
#include <AppKit/NSImage.h>
#include <AppKit/NSSound.h>
#include <Foundation/NSUserDefaults.h>
#include <AppKit/NSNibConnector.h>
@interface GormDisplayCell : NSButtonCell
@end
@ -41,11 +42,6 @@
}
@end
NSString *IBDidOpenDocumentNotification = @"IBDidOpenDocumentNotification";
NSString *IBWillSaveDocumentNotification = @"IBWillSaveDocumentNotification";
NSString *IBDidSaveDocumentNotification = @"IBDidSaveDocumentNotification";
NSString *IBWillCloseDocumentNotification = @"IBWillCloseDocumentNotification";
// Internal only
NSString *GSCustomClassMap = @"GSCustomClassMap";
@ -181,7 +177,13 @@ static NSImage *classesImage = nil;
{
if ([connections indexOfObjectIdenticalTo: aConnector] == NSNotFound)
{
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc postNotificationName: IBWillAddConnectorNotification
object: aConnector];
[connections addObject: aConnector];
[nc postNotificationName: IBDidAddConnectorNotification
object: aConnector];
}
}
@ -318,7 +320,7 @@ static NSImage *classesImage = nil;
NSString *className = [classManager customClassForName: key];
[tempNameTable setObject: obj forKey: key]; // save the old object
NSDebugLog(@"className = (%@), obj = (%@), key = (%@)", className, obj, key);
NSLog(@"className = (%@), obj = (%@), key = (%@)", className, obj, key);
if (className != nil)
{
/*
@ -333,44 +335,44 @@ static NSImage *classesImage = nil;
NSDebugLog(@"In the window template if...");
template = [[GormNSWindowTemplate alloc] initWithObject: obj
className: className];
className: className];
[self setObject: obj isVisibleAtLaunch: NO];
[self setObject: template isVisibleAtLaunch: isVisible];
}
else if ([obj isKindOfClass: [NSTextView class]])
{
template = [[GormNSTextViewTemplate alloc] initWithObject: obj
className: className];
className: className];
[[obj superview] replaceSubview: obj with: template];
}
else if ([obj isKindOfClass: [NSText class]])
{
template = [[GormNSTextTemplate alloc] initWithObject: obj
className: className];
className: className];
[[obj superview] replaceSubview: obj with: template];
}
else if ([obj isKindOfClass: [NSButton class]])
{
template = [[GormNSButtonTemplate alloc] initWithObject: obj
className: className];
className: className];
[[obj superview] replaceSubview: obj with: template];
}
else if ([obj isKindOfClass: [NSControl class]])
{
template = [[GormNSControlTemplate alloc] initWithObject: obj
className: className];
className: className];
[[obj superview] replaceSubview: obj with: template];
}
else if ([obj isKindOfClass: [NSView class]])
{
template = [[GormNSViewTemplate alloc] initWithObject: obj
className: className];
className: className];
[[obj superview] replaceSubview: obj with: template];
}
else if ([obj isKindOfClass: [NSMenu class]])
{
template = [[GormNSMenuTemplate alloc] initWithObject: obj
className: className];
className: className];
}
[nameTable setObject: template forKey: key];
@ -1256,37 +1258,37 @@ static NSImage *classesImage = nil;
[(NSWindow *)obj setContentView: [template contentView]];
[self setObject: template isVisibleAtLaunch: NO];
[self setObject: obj isVisibleAtLaunch: isVisible];
RELEASE(template); // get rid of the template...
// RELEASE(template); // get rid of the template...
}
else if ([template isKindOfClass: [GormNSTextViewTemplate class]])
{
[[template superview] replaceSubview: template with: obj];
RELEASE(template); // get rid of the template...
// RELEASE(template); // get rid of the template...
}
else if ([template isKindOfClass: [GormNSTextTemplate class]])
{
[[template superview] replaceSubview: template with: obj];
RELEASE(template); // get rid of the template...
// RELEASE(template); // get rid of the template...
}
else if ([template isKindOfClass: [GormNSButtonTemplate class]])
{
[[template superview] replaceSubview: template with: obj];
RELEASE(template); // get rid of the template...
// RELEASE(template); // get rid of the template...
}
else if ([template isKindOfClass: [GormNSControlTemplate class]])
{
[[template superview] replaceSubview: template with: obj];
RELEASE(template); // get rid of the template...
// RELEASE(template); // get rid of the template...
}
else if ([template isKindOfClass: [GormNSViewTemplate class]])
{
[[template superview] replaceSubview: template with: obj];
RELEASE(template); // get rid of the template...
// RELEASE(template); // get rid of the template...
}
else if ([template isKindOfClass: [GormNSMenuTemplate class]])
{
[[template superview] replaceSubview: template with: obj];
RELEASE(template); // get rid of the template...
// RELEASE(template); // get rid of the template...
}
[nameTable setObject: obj forKey: key];
}
@ -1833,7 +1835,7 @@ static NSImage *classesImage = nil;
GSNibContainer *c;
NSEnumerator *enumerator;
id <IBConnectors> con;
NSString *ownerClass;
NSString *ownerClass, *key;
NSFileManager *mgr = [NSFileManager defaultManager];
BOOL isDir = NO;
NSDirectoryEnumerator *dirEnumerator;
@ -1882,22 +1884,24 @@ static NSImage *classesImage = nil;
asClassName: @"GormObjectProxy"];
[u decodeClassName: @"GSCustomView"
asClassName: @"GormCustomView"];
// classes
[u decodeClassName: @"NSMenu"
asClassName: @"GormNSMenu"];
[u decodeClassName: @"NSWindow"
asClassName: @"GormNSWindow"];
[u decodeClassName: @"NSPanel"
asClassName: @"GormNSPanel"];
[u decodeClassName: @"NSPopUpButton"
asClassName: @"GormNSPopUpButton"];
[u decodeClassName: @"NSPopUpButtonCell"
asClassName: @"GormNSPopUpButtonCell"];
[u decodeClassName: @"NSBrowser"
asClassName: @"GormNSBrowser"];
[u decodeClassName: @"NSTableView"
asClassName: @"GormNSTableView"];
[u decodeClassName: @"NSOutlineView"
asClassName: @"GormNSOutlineView"];
[u decodeClassName: @"NSPopUpButton"
asClassName: @"GormNSPopUpButton"];
[u decodeClassName: @"NSPopUpButtonCell"
asClassName: @"GormNSPopUpButtonCell"];
// templates
[u decodeClassName: @"NSWindowTemplate"
@ -2066,6 +2070,16 @@ static NSImage *classesImage = nil;
NSDebugLog(@"nameTable = %@",[c nameTable]);
enumerator = [[c nameTable] keyEnumerator];
while ((key = [enumerator nextObject]) != nil)
{
id o = [[c nameTable] objectForKey: key];
if ([o respondsToSelector: @selector(awakeFromDocument:)])
{
[o awakeFromDocument: self];
}
}
return self;
}
@ -2236,7 +2250,12 @@ static NSImage *classesImage = nil;
- (void) removeConnector: (id<IBConnectors>)aConnector
{
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc postNotificationName: IBWillRemoveConnectorNotification
object: aConnector];
[connections removeObjectIdenticalTo: aConnector];
[nc postNotificationName: IBDidRemoveConnectorNotification
object: aConnector];
}
- (void) resignSelectionForEditor: (id<IBEditors>)editor
@ -2600,16 +2619,16 @@ static NSImage *classesImage = nil;
intoClassName: @"NSWindow"];
[archiver encodeClassName: @"GormNSPanel"
intoClassName: @"NSPanel"];
[archiver encodeClassName: @"GormNSBrowser"
intoClassName: @"NSBrowser"];
[archiver encodeClassName: @"GormNSTableView"
intoClassName: @"NSTableView"];
[archiver encodeClassName: @"GormNSOutlineView"
intoClassName: @"NSOutlineView"];
[archiver encodeClassName: @"GormNSPopUpButton"
intoClassName: @"NSPopUpButton"];
[archiver encodeClassName: @"GormNSPopUpButtonCell"
intoClassName: @"NSPopUpButtonCell"];
[archiver encodeClassName: @"GormNSBrowser"
intoClassName: @"NSBrowser"];
[archiver encodeClassName: @"GormNSTableView"
intoClassName: @"NSTableView"];
[archiver encodeClassName: @"GormNSOutlineView"
intoClassName: @"NSOutlineView"];
/* Templates */
[archiver encodeClassName: @"GormNSWindowTemplate"
@ -2629,6 +2648,7 @@ static NSImage *classesImage = nil;
[archiver encodeClassName: @"GormNSMenuTemplate"
intoClassName: @"NSMenuTemplate"];
[archiver encodeRootObject: self];
NSDebugLog(@"nameTable = %@",nameTable);
fileExists = [mgr fileExistsAtPath: documentPath isDirectory: &isDir];

View file

@ -22,6 +22,7 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <AppKit/NSNibConnector.h>
#include "GormPrivate.h"
@implementation GormFilesOwner

View file

@ -22,6 +22,7 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <AppKit/NSNibConnector.h>
#include "GormPrivate.h"
#define HASFORMATTER(obj) \

83
GormLib/GNUmakefile Normal file
View file

@ -0,0 +1,83 @@
#
# GNUmakefile
# Written by Gregory John Casamento <greg_casamento@yahoo.com>
#
# NOTE: Do NOT change this file -- ProjectCenter maintains it!
#
# Put all of your customisations in GNUmakefile.preamble and
# GNUmakefile.postamble
#
include $(GNUSTEP_MAKEFILES)/common.make
GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_SYSTEM_ROOT)
#
# Subprojects
#
#
# Library
#
PACKAGE_NAME=Gorm
LIBRARY_VAR=GORM
LIBRARY_NAME=libGorm
libGorm_HEADER_FILES_DIR=.
libGorm_HEADER_FILES_INSTALL_DIR=/InterfaceBuilder
ADDITIONAL_INCLUDE_DIRS = -I..
srcdir = .
PROJECTCENTER_INSTALLATION_DIR=$(GNUSTEP_INSTALLATION_DIR)
PROJECTCENTER_INSTALL_PREFIX=$(GNUSTEP_INSTALLATION_DIR)
#
# Additional libraries
#
libGorm_LIBRARIES_DEPEND_UPON += -lgnustep-gui
#
# Header files
#
libGorm_HEADER_FILES= \
IBApplicationAdditions.h \
IBConnectors.h \
IBDefines.h \
IBDocuments.h \
IBEditors.h \
IBInspector.h \
IBObjectAdditions.h \
IBObjectProtocol.h \
IBPalette.h \
IBViewAdditions.h \
InterfaceBuilder.h
#
# Class files
#
libGorm_OBJC_FILES= \
IBApplicationAdditions.m \
IBConnectors.m \
IBDocuments.m \
IBEditors.m \
IBInspector.m \
IBObjectAdditions.m \
IBPalette.m
#
# C files
#
libGorm_C_FILES=
HEADERS_INSTALL = $(libGorm_HEADER_FILES)
-include GNUmakefile.preamble
-include GNUmakefile.local
include $(GNUSTEP_MAKEFILES)/library.make
-include GNUmakefile.postamble

View file

@ -0,0 +1,30 @@
#
# GNUmakefile.postamble
#
# Copyright (C) 2003 Free Software Foundation, Inc.
#
# Author: Gregory John Casamento <greg_casamento@yahoo.com>
#
# This file is part of GNUstep
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library 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 Library General Public
# License along with this library; see the file COPYING.LIB.
# If not, write to the Free Software Foundation,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
before-all::
rm -f InterfaceBuilder
$(LN_S) . InterfaceBuilder
after-clean::
rm -f InterfaceBuilder

View file

@ -0,0 +1,71 @@
# GNUmakefile.preamble
#
# Copyright (C) 2001 Free Software Foundation, Inc.
#
# Author: Philippe C.D. Robert <prh@3dkit.org>
#
# This file is part of GNUstep
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library 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.
#
# If you are interested in a warranty or support for this source code,
# contact Scott Christley at scottc@net-community.com
#
# You should have received a copy of the GNU Library General Public
# License along with this library; see the file COPYING.LIB.
# If not, write to the Free Software Foundation,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Makefile.preamble
#
# Project specific makefile variables, and additional
#
# Do not put any Makefile rules in this file, instead they should
# be put into Makefile.postamble.
#
#
# Flags dealing with compiling and linking
#
# Additional flags to pass to the preprocessor
ADDITIONAL_CPPFLAGS += -Wall -Werror
# Additional flags to pass to the Objective-C compiler
ADDITIONAL_OBJCFLAGS += -Wall -Werror
# Additional flags to pass to the C compiler
ADDITIONAL_CFLAGS += -Wall -Werror
# Additional include directories the compiler should search
ADDITIONAL_INCLUDE_DIRS += -I../PCLib
# Additional LDFLAGS to pass to the linker
#ADDITIONAL_LDFLAGS +=
# Additional library directories the linker should search
ADDITIONAL_LIB_DIRS += -L../PCLib/$(GNUSTEP_OBJ_DIR)
ADDITIONAL_TOOL_LIBS +=
#
# Flags dealing with installing and uninstalling
#
# Additional directories to be created during installation
ADDITIONAL_INSTALL_DIRS +=
#
# Local configuration
#

View file

@ -0,0 +1,43 @@
/* IBApplicationAdditions.h
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef INCLUDED_IBAPPLICATIONADDITIONS_H
#define INCLUDED_IBAPPLICATIONADDITIONS_H
#include <InterfaceBuilder/IBDocuments.h>
#include <InterfaceBuilder/IBEditors.h>
extern NSString *IBWillBeginTestingInterfaceNotification;
extern NSString *IBDidBeginTestingInterfaceNotification;
extern NSString *IBWillEndTestingInterfaceNotification;
extern NSString *IBDidEndTestingInterfaceNotification;
@protocol IB <NSObject>
- (id<IBDocuments>) activeDocument;
- (BOOL) isTestingInterface;
- (id<IBSelectionOwners>) selectionOwner;
- (id) selectedObject;
@end
#endif

View file

@ -0,0 +1,34 @@
/* IBApplicationAdditions.m
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <Foundation/NSString.h>
NSString *IBWillBeginTestingInterfaceNotification
= @"IBWillBeginTestingInterfaceNotification";
NSString *IBDidBeginTestingInterfaceNotification
= @"IBDidBeginTestingInterfaceNotification";
NSString *IBWillEndTestingInterfaceNotification
= @"IBWillEndTestingInterfaceNotification";
NSString *IBDidEndTestingInterfaceNotification
= @"IBDidEndTestingInterfaceNotification";

87
GormLib/IBConnectors.h Normal file
View file

@ -0,0 +1,87 @@
/* Gorm.h
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef INCLUDED_IBCONNECTORS_H
#define INCLUDED_IBCONNECTORS_H
#include <Foundation/NSObject.h>
#include <AppKit/NSApplication.h>
// forward declarations
@class NSString;
extern NSString *IBWillAddConnectorNotification;
extern NSString *IBDidAddConnectorNotification;
extern NSString *IBWillRemoveConnectorNotification;
extern NSString *IBDidRemoveConnectorNotification;
/*
* Connector objects are used to record connections between nib objects.
*/
@protocol IBConnectors <NSObject>
- (id) destination;
- (void) establishConnection;
- (NSString*) label;
- (void) replaceObject: (id)anObject withObject: (id)anotherObject;
- (id) source;
- (void) setDestination: (id)anObject;
- (void) setLabel: (NSString*)label;
- (void) setSource: (id)anObject;
@end
@interface NSApplication (IBConnections)
/*
* [NSApp -connectSource] returns the source object as set by the most recent
* [NSApp -displayConnectionBetween:and:]
*/
- (id) connectSource;
/*
* [NSApp -connectDestination] returns the target object as set by the most
* recent [NSApp -displayConnectionBetween:and:]
*/
- (id) connectDestination;
/*
* [NSApp -isConnecting] simply lets you know if a connection is in progress.
*/
- (BOOL) isConnecting;
/*
* [NSApp -stopConnecting] terminates the current connection process and
* removes the connection marks from the display.
*/
- (void) stopConnecting;
/*
* [NSApp -displayConnectionBetween:and:] is used to set the source and target
* objects and mark the display appropriately. Setting either source or
* target to 'nil' will remove markup from any previous source or target.
* NB. This method expects to be able to call the active document to ask it
* for the window and rectangle in which to perform markup.
*/
- (void) displayConnectionBetween: (id)source and: (id)destination;
@end
#endif

34
GormLib/IBConnectors.m Normal file
View file

@ -0,0 +1,34 @@
/* IBApplicationAdditions.m
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <Foundation/NSString.h>
NSString *IBWillAddConnectorNotification
= @"IBWillAddConnectorNotification";
NSString *IBDidAddConnectorNotification
= @"IBDidAddConnectorNotification";
NSString *IBWillRemoveConnectorNotification
= @"IBWillRemoveConnectorNotification";
NSString *IBDidRemoveConnectorNotification
= @"IBDidRemoveConnectorNotification";

43
GormLib/IBDefines.h Normal file
View file

@ -0,0 +1,43 @@
/* IBDefines.h
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef INCLUDED_IBDEFINES_H
#define INCLUDED_IBDEFINES_H
/*
* Positions of handles for resizing items.
*/
typedef enum {
IBBottomLeftKnobPosition = 0,
IBMiddleLeftKnobPosition = 1,
IBTopLeftKnobPosition = 2,
IBTopMiddleKnobPosition = 3,
IBTopRightKnobPosition = 4,
IBMiddleRightKnobPosition = 5,
IBBottomRightKnobPosition = 6,
IBBottomMiddleKnobPosition = 7,
IBNoneKnobPosition = -1
} IBKnobPosition;
#endif

87
GormLib/IBDocuments.h Normal file
View file

@ -0,0 +1,87 @@
/* IBDocuments.h
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef INCLUDED_IBDOCUMENTS_H
#define INCLUDED_IBDOCUMENTS_H
#include <Foundation/NSGeometry.h>
#include <InterfaceBuilder/IBEditors.h>
#include <InterfaceBuilder/IBConnectors.h>
extern NSString *IBDidOpenDocumentNotification;
extern NSString *IBWillSaveDocumentNotification;
extern NSString *IBDidSaveDocumentNotification;
extern NSString *IBWillCloseDocumentNotification;
@protocol IBDocuments <NSObject>
- (void) addConnector: (id<IBConnectors>)aConnector;
- (NSArray*) allConnectors;
- (void) attachObject: (id)anObject toParent: (id)aParent;
- (void) attachObjects: (NSArray*)anArray toParent: (id)aParent;
- (NSArray*) connectorsForDestination: (id)destination;
- (NSArray*) connectorsForDestination: (id)destination
ofClass: (Class)aConnectorClass;
- (NSArray*) connectorsForSource: (id)source;
- (NSArray*) connectorsForSource: (id)source
ofClass: (Class)aConnectorClass;
- (BOOL) containsObject: (id)anObject;
- (BOOL) containsObjectWithName: (NSString*)aName forParent: (id)parent;
- (BOOL) copyObject: (id)anObject
type: (NSString*)aType
toPasteboard: (NSPasteboard*)aPasteboard;
- (BOOL) copyObjects: (NSArray*)anArray
type: (NSString*)aType
toPasteboard: (NSPasteboard*)aPasteboard;
- (void) detachObject: (id)anObject;
- (void) detachObjects: (NSArray*)anArray;
- (NSString*) documentPath;
- (void) editor: (id<IBEditors>)anEditor didCloseForObject: (id)anObject;
- (id<IBEditors>) editorForObject: (id)anObject
create: (BOOL)flag;
- (id<IBEditors>) editorForObject: (id)anObject
inEditor: (id<IBEditors>)anEditor
create: (BOOL)flag;
- (NSString*) nameForObject: (id)anObject;
- (id) objectForName: (NSString*)aName;
- (NSArray*) objects;
- (id<IBEditors>) openEditorForObject: (id)anObject;
- (id<IBEditors, IBSelectionOwners>) parentEditorForEditor: (id<IBEditors>)anEditor;
- (id) parentOfObject: (id)anObject;
- (NSArray*) pasteType: (NSString*)aType
fromPasteboard: (NSPasteboard*)aPasteboard
parent: (id)parent;
- (void) removeConnector: (id<IBConnectors>)aConnector;
- (void) resignSelectionForEditor: (id<IBEditors>)editor;
- (void) setName: (NSString*)aName forObject: (id)object;
- (void) setSelectionFromEditor: (id<IBEditors>)anEditor;
- (void) touch; /* Mark document as having been changed. */
/*
* windowAndRect:forObject: is called by Gorm to determine where it should
* draw selection markup
*/
- (NSWindow*) windowAndRect: (NSRect*)r forObject: (id)object;
@end
#endif

30
GormLib/IBDocuments.m Normal file
View file

@ -0,0 +1,30 @@
/* IBDocuments.m
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <Foundation/NSString.h>
NSString *IBDidOpenDocumentNotification = @"IBDidOpenDocumentNotification";
NSString *IBWillSaveDocumentNotification = @"IBWillSaveDocumentNotification";
NSString *IBDidSaveDocumentNotification = @"IBDidSaveDocumentNotification";
NSString *IBWillCloseDocumentNotification = @"IBWillCloseDocumentNotification";

155
GormLib/IBEditors.h Normal file
View file

@ -0,0 +1,155 @@
/* IBEditors.h
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef INCLUDED_IBEDITORS_H
#define INCLUDED_IBEDITORS_H
#include <Foundation/NSObject.h>
#include <InterfaceBuilder/IBDocuments.h>
// forward references
@class NSString;
@class NSArray;
@class NSWindow;
/*
* Notification for editing and inspecting the objects etc.
*/
extern NSString *IBAttributesChangedNotification;
extern NSString *IBInspectorDidModifyObjectNotification;
extern NSString *IBSelectionChangedNotification;
extern NSString *IBClassNameChangedNotification;
/*
* The IBSelectionOwners protocol defines the methods that a selection owner
* must implement.
*/
@protocol IBSelectionOwners <NSObject>
// - (unsigned) selectionCount;
- (NSArray*) selection;
// - (void) drawSelection;
/*
* This method is used to draw or remove markup that identifies selected
* objects within the object being edited.
*/
- (void) makeSelectionVisible: (BOOL)flag;
/*
* This method changes the current selection to those objects in the array.
*/
- (void) selectObjects: (NSArray*)objects;
// /*
// * This method places the current selection from the editor on the pasteboard.
// */
// - (void) copySelection;
@end
/*
* The IBEditors protocol defines API for object editors. This is probably the
* area in which Gorm differs most from InterfaceBuilder, as I have no clear
* idea of how InterfaceBuilder editors are meant to operate.
*/
@protocol IBEditors
/*
* Decide whether an editor can accept data from the pasteboard.
*/
- (BOOL) acceptsTypeFromArray: (NSArray*)types;
/*
* Activate an editor - inserts it into the view hierarchy or whatever is
* needed for the editor to be able to provide its functionality.
* This method should be called by the document when an editor is created
* or opened. It should be safe to call repeatedly.
*/
- (BOOL) activate;
- (id) initWithObject: (id)anObject inDocument: (id/*<IBDocuments>*/)aDocument;
/*
* Close an editor - this destroys the editor. In this method the editor
* should tell its document that it has been closed, so that the document
* can remove all its references to the editor.
*/
- (void) close;
/*
* Deactivate an editor - removes it from the view hierarchy so that objects
* can be archived without including the editor.
* This method should be called automatically by the 'close' method.
* It should be safe to call repeatedly.
*/
- (void) deactivate;
// /*
// * This method deletes all the objects in the current selection in the editor.
// */
// - (void) deleteSelection;
/*
* This method returns the document that owns the object that the editor edits.
*/
- (id /*<IBDocuments>*/) document;
/*
* This method returns the object that the editor is editing.
*/
- (id) editedObject;
/*
* This method is used to ensure that the editor is visible on screen.
*/
- (void) orderFront;
/*
* This method is used to add the contents of the pasteboard to the current
* selection of objects within the editor.
*/
// - (void) pasteInSelection;
/*
* FIXME - I don't think we use this.
*/
- (void) resetObject: (id)anObject;
/*
* When an editor resigns the selection ownership, all editors are asked if
* they want selection ownership, and the first one to return YES gets made
* into the current selection owner.
*/
- (BOOL) wantsSelection;
/*
* This returns the window in which the editor is drawn.
*/
- (NSWindow*) window;
@end
#endif

34
GormLib/IBEditors.m Normal file
View file

@ -0,0 +1,34 @@
/* IBEditors.m
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <Foundation/NSString.h>
NSString *IBAttributesChangedNotification
= @"IBAttributesChangedNotification";
NSString *IBInspectorDidModifyObjectNotification
= @"IBInspectorDidModifyObjectNotification";
NSString *IBSelectionChangedNotification
= @"IBSelectionChangedNotification";
NSString *IBClassNameChangedNotification
= @"IBClassNameChangedNotification";

116
GormLib/IBInspector.h Normal file
View file

@ -0,0 +1,116 @@
/* IBInspector.h
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef INCLUDED_IBINSPECTOR_H
#define INCLUDED_IBINSPECTOR_H
#include <Foundation/NSObject.h>
#include <InterfaceBuilder/IBObjectProtocol.h>
#define IVH 388 /* Standard height of inspector view. */
#define IVW 272 /* Standard width of inspector view. */
#define IVB 40 /* Standard height of buttons area. */
// forward references
@class NSWindow;
@class NSButton;
@class NSString;
@class NSView;
@class NSNotification;
@interface IBInspector : NSObject
{
id object;
NSWindow *window;
NSButton *okButton;
NSButton *revertButton;
}
/**
* Releases all the instance variables (apart from the window, which is
* presumed to release itself when closed) and removes self as an observer
* of notifications before destroying self.
*/
- (void) dealloc;
- (NSView*) initialFirstResponder;
/**
* The object being inspected.
*/
- (id) object;
/**
* Action to take when user clicks the OK button
*/
- (void) ok: (id)sender;
/**
* Inspector supplied button - the inspectors manager will position this
* button for you.
*/
- (NSButton*) okButton;
/**
* Action to take when user clicks the revert button
*/
- (void) revert: (id)sender;
/**
* Inspector supplied button - the inspectors manager will position this
* button for you.
*/
- (NSButton*) revertButton;
/**
* Extension - not in NeXTstep - this message is sent to your inspector to
* tell it to set its edited object and make any changes to its UI needed.
*/
- (void) setObject: (id)anObject;
/**
* Used to take notice of textfields in inspector being updated.
*/
- (void) textDidBeginEditing: (NSNotification*)aNotification;
/**
* Method to mark the inspector as needing saving (ok or revert).
*/
- (void) touch: (id)sender;
/**
* If this method returns YES, the manager will partition off a section of
* the inspector panel for display of 'ok' and 'revert' buttons, which
* your inspector must supply.
*/
- (BOOL) wantsButtons;
/**
* The window that the UI of the inspector exists in.
*/
- (NSWindow*) window;
@end
#endif

View file

@ -1,9 +1,9 @@
/* IBInspector.m
*
* Copyright (C) 1999 Free Software Foundation, Inc.
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Richard Frith-Macdonald <richard@brainstrom.co.uk>
* Date: 1999
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
@ -22,13 +22,10 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "GormPrivate.h"
NSString *IBInspectorDidModifyObjectNotification
= @"IBInspectorDidModifyObjectNotification";
NSString *IBSelectionChangedNotification
= @"IBSelectionChangedNotification";
#include <InterfaceBuilder/IBInspector.h>
#include <Foundation/NSString.h>
#include <Foundation/NSNotification.h>
#include <AppKit/NSWindow.h>
@implementation IBInspector

View file

@ -0,0 +1,34 @@
/* IBObjectAdditions.h
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef INCLUDED_IBOBJECTADDITIONS_H
#define INCLUDED_IBOBJECTADDITIONS_H
#include <InterfaceBuilder/IBObjectProtocol.h>
// object additions -- object adopts protocol
@interface NSObject (IBObjectAdditions) <IBObjectProtocol>
@end
#endif

View file

@ -0,0 +1,98 @@
/* IBObjectAdditions.m
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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.
* g
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <Foundation/NSObject.h>
#include <Foundation/NSObjCRuntime.h>
#include <InterfaceBuilder/IBObjectAdditions.h>
// object additions -- object adopts protocol
@implementation NSObject (IBObjectAdditions)
// custom class support
+ (BOOL)canSubstituteForClass: (Class)origClass
{
return YES;
}
- (void)awakeFromDocument: (id <IBDocuments>)doc
{
// does nothing...
}
// editor
- (NSImage *)imageForViewer
{
return nil;
}
// object labels
- (NSString *)nibLabel: (NSString *)objectName
{
return nil;
}
// title to display in the inspector
- (NSString *)objectNameForInspectorTitle
{
return NSStringFromClass([self class]);
}
// names of inspectors for any given class...
- (NSString*) inspectorClassName
{
return nil;
}
- (NSString*) connectInspectorClassName
{
return nil;
}
- (NSString*) sizeInspectorClassName
{
return nil;
}
- (NSString*) helpInspectorClassName
{
return nil;
}
- (NSString*) classInspectorClassName
{
return nil;
}
// name of the editor for the current class.
- (NSString*) editorClassName
{
return nil;
}
// list of properties not compatible with IB.
- (NSArray*) ibIncompatibleProperties
{
return nil;
}
@end

View file

@ -0,0 +1,58 @@
/* IBObjectAdditions.h
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef INCLUDED_IBOBJECTPROTOCOL_H
#define INCLUDED_IBOBJECTPROTOCOL_H
#include <InterfaceBuilder/IBDocuments.h>
@protocol IBObjectProtocol
// custom class support
+ (BOOL)canSubstituteForClass: (Class)origClass;
- (void)awakeFromDocument: (id <IBDocuments>)doc;
// editor
- (NSImage *)imageForViewer;
// object labels
- (NSString *)nibLabel: (NSString *)objectName;
// title to display in the inspector
- (NSString *)objectNameForInspectorTitle;
// names of inspectors for any given class...
- (NSString*) inspectorClassName;
- (NSString*) connectInspectorClassName;
- (NSString*) sizeInspectorClassName;
- (NSString*) helpInspectorClassName;
- (NSString*) classInspectorClassName;
// name of the editor for the current class.
- (NSString*) editorClassName;
// list of properties not compatible with IB.
- (NSArray*) ibIncompatibleProperties;
@end
#endif

104
GormLib/IBPalette.h Normal file
View file

@ -0,0 +1,104 @@
/* IBInspector.h
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef INCLUDED_IBPALETTE_H
#define INCLUDED_IBPALETTE_H
#include <Foundation/NSMapTable.h>
#include <Foundation/NSObject.h>
// forward references
@class NSString;
@class NSImage;
@class NSWindow;
@class NSView;
/*
* Pasteboard types used for DnD when views are dragged out of a palette
* window into another window in Gorm (or, in the case of IBWindowPboardType
* onto the desktop).
*/
extern NSString *IBCellPboardType;
extern NSString *IBMenuPboardType;
extern NSString *IBMenuCellPboardType;
extern NSString *IBObjectPboardType;
extern NSString *IBViewPboardType;
extern NSString *IBWindowPboardType;
extern NSString *IBFormatterPboardType;
/*
* Pasteboard types used for DnD from images or sounds tab
* to views or inspector's textfield
* onto the desktop).
* NOTE: These are specific to Gorm... */
extern NSString *GormImagePboardType;
extern NSString *GormSoundPboardType;
@interface IBPalette : NSObject
{
NSWindow *window;
NSImage *icon;
}
/*
* For internal use only - these class methods return the information
* associated with a particular view.
*/
+ (id) objectForView: (NSView*)aView;
+ (NSString*) typeForView: (NSView*)aView;
/**
* Associate a particular object and DnD type with a view - so that
* Gorm knows to initiate a DnD session with the specified object
* and type rather than an archived copy of the view itsself and
* the default type (IBViewPboardType).
*/
- (void) associateObject: (id)anObject
type: (NSString*)aType
with: (NSView*)aView;
/**
* Releases all the instance variables apart from the window (which is
* presumed to release itsself when closed) and removes self as an observer
* of notifications before destroying self.
*/
- (void) dealloc;
/**
* Method called by Gorm when a new palette has been created and its nib
* (if any) has been loaded. Any palette initialisation should be done here.
*/
- (void) finishInstantiate;
/**
* Return the icon representing the palette.
*/
- (NSImage*) paletteIcon;
/**
* Return the window containing the views that may be dragged from the
* palette.
*/
- (NSWindow*) originalWindow;
@end
#endif

View file

@ -1,9 +1,9 @@
/* IBPalette.m
*
* Copyright (C) 1999 Free Software Foundation, Inc.
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Richard Frith-Macdonald <richard@brainstrom.co.uk>
* Date: 1999
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
@ -22,7 +22,9 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "Gorm.h"
#include <InterfaceBuilder/IBPalette.h>
#include <Foundation/Foundation.h>
#include <AppKit/AppKit.h>
NSString *IBCellPboardType = @"IBCellPboardType";
NSString *IBMenuPboardType = @"IBMenuPboardType";

44
GormLib/IBViewAdditions.h Normal file
View file

@ -0,0 +1,44 @@
/* IBViewAdditions.h
*
* Copyright (C) 1999 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 1999
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef INCLUDED_IBVIEWADDITIONS_H
#define INCLUDED_IBVIEWADDITIONS_H
#include <InterfaceBuilder/IBDefines.h>
#include <Foundation/NSGeometry.h>
#include <AppKit/NSView.h>
// forward references
@class NSColor;
@interface NSView (ViewAdditions)
- (BOOL) acceptsColor: (NSColor*)color atPoint: (NSPoint)point;
- (BOOL) allowsAltDragging;
- (void) depositColor: (NSColor*)color atPoint: (NSPoint)point;
- (NSSize) maximumSizeFromKnobPosition: (IBKnobPosition)knobPosition;
- (NSSize) minimumSizeFromKnobPosition: (IBKnobPosition)position;
- (void) placeView: (NSRect)newFrame;
@end
#endif

View file

@ -0,0 +1,38 @@
/* IBObjectProtocol.h
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef INCLUDED_INTERFACEBUILDER_H
#define INCLUDED_INTERFACEBUIDLER_H
#include <InterfaceBuilder/IBApplicationAdditions.h>
#include <InterfaceBuilder/IBConnectors.h>
#include <InterfaceBuilder/IBDefines.h>
#include <InterfaceBuilder/IBDocuments.h>
#include <InterfaceBuilder/IBEditors.h>
#include <InterfaceBuilder/IBInspector.h>
#include <InterfaceBuilder/IBObjectAdditions.h>
#include <InterfaceBuilder/IBPalette.h>
#include <InterfaceBuilder/IBViewAdditions.h>
#endif

11
GormLib/README Normal file
View file

@ -0,0 +1,11 @@
GormLib is a clone of the InterfaceBuilder framework.
GormLib's primary purpose is to allow the creation of custom palettes and
inspectors outside of Gorm. This will also facilitate extension of Gorm
since it will allow outside applications to have an interface with which they
can interact with the running Gorm application.
You must install this library before you can build Gorm.
Thanks, Gregory John Casamento

View file

@ -1,3 +1,28 @@
/* GormPrivate.h
*
* Copyright (C) 1999, 2003 Free Software Foundation, Inc.
*
* Author: Richard Frith-Macdonald <richard@brainstrom.co.uk>
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 1999, 2003
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef INCLUDED_GormPrivate_h
#define INCLUDED_GormPrivate_h
@ -5,7 +30,7 @@
@class GormInspectorsManager;
@class GormPalettesManager;
#include "Gorm.h"
#include <InterfaceBuilder/InterfaceBuilder.h>
#include "GormFilesOwner.h"
#include "GormDocument.h"
#include "GormInspectorsManager.h"
@ -78,11 +103,6 @@ extern NSString *GormToggleGuidelineNotification;
@interface GormNSMenuTemplate : NSMenuTemplate
@end
// custom class support
@interface NSObject (GormCustomClassAdditions)
+ (BOOL) canSubstituteForClass: (Class)aClass;
@end
@interface GormClassProxy : NSObject
{
NSString *name;

View file

@ -1,6 +1,6 @@
/** <title>GormCustomClassInspector</title>
/** <title>GormSoundInspector</title>
<abstract>allow user to select custom classes</abstract>
<abstract>allow user to inspect sound files in Gorm</abstract>
Copyright (C) 2002 Free Software Foundation, Inc.
Author: Gregory John Casamento <greg_casamento@yahoo.com>
@ -27,7 +27,7 @@
#define INCLUDED_GormSoundInspector_h
#include <AppKit/AppKit.h>
#include "Gorm.h"
#include <InterfaceBuilder/InterfaceBuilder.h>
@class GormClassManager;

View file

@ -32,7 +32,6 @@
#include "GormClassManager.h"
#include "GormDocument.h"
#include "GormPrivate.h"
#include "Gorm.h"
@implementation GormSoundInspector
+ (void) initialize

View file

@ -1,490 +0,0 @@
/* GormTableViewEditor.m - Editor for matrices.
*
* Copyright (C) 2002 Free Software Foundation, Inc.
*
* Author: Pierre-Yves Rivaille <pyrivail@ens-lyon.fr>
* Date: 2002
*
* This file is part of GNUstep.
*
* This program 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 program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "GormPrivate.h"
NSString *IBTableColumnPboardType = @"IBTableColumnPboardType";
static NSCell *_editedCell;
static NSCell *_currentHeaderCell;
static NSText *_textObject;
static int _oldAlignment;
static NSColor *_oldColor;
@implementation NSTableView (GormObjectAdditions)
- (NSString*) editorClassName
{
return @"GormTableViewEditor";
}
@end
@implementation GormTableViewEditor
/*
* Decide whether an editor can accept data from the pasteboard.
*/
- (BOOL) acceptsTypeFromArray: (NSArray*)types
{
// FIXME
return NO;
}
/*
* Activate an editor - inserts it into the view hierarchy or whatever is
* needed for the editor to be able to provide its functionality.
* This method should be called by the document when an editor is created
* or opened. It should be safe to call repeatedly.
*/
- (BOOL) activate
{
NSLog(@"activate");
if (tableView)
{
[tableView setAllowsColumnResizing: YES];
[tableView setAllowsColumnSelection: YES];
[tableView setAllowsMultipleSelection: NO];
[tableView setAllowsEmptySelection: YES];
[tableView setAllowsColumnReordering: YES];
[tableView setGormDelegate: self];
}
return YES;
}
- (id) initWithObject: (id)anObject
inDocument: (id/*<IBDocuments>*/)aDocument
{
self = [super init];
document = aDocument;
[self changeObject: anObject];
return self;
}
/*
* Close an editor - this destroys the editor. In this method the editor
* should tell its document that it has been closed, so that the document
* can remove all its references to the editor.
*/
- (void) close
{
NSLog(@"close");
if (tableView)
{
[self closeSubeditors];
[self deactivate];
tableView = nil;
}
else
{
NSLog(@"tableView = nil");
}
}
/*
* Close subeditors of this editor.
*/
- (void) closeSubeditors
{
}
/*
* Deactivate an editor - removes it from the view hierarchy so that objects
* can be archived without including the editor.
* This method should be called automatically by the 'close' method.
* It should be safe to call repeatedly.
*/
- (void) deactivate
{
if (tableView)
{
[tableView setBackgroundColor: [NSColor controlBackgroundColor]];
if ([tableView selectedColumn] != -1)
{
[tableView deselectColumn: [tableView selectedColumn]];
}
[tableView setAllowsColumnResizing:
[tableView gormAllowsColumnResizing]];
[tableView setAllowsColumnSelection:
[tableView gormAllowsColumnSelection]];
[tableView setAllowsMultipleSelection:
[tableView gormAllowsMultipleSelection]];
[tableView setAllowsEmptySelection:
[tableView gormAllowsEmptySelection]];
[tableView setAllowsColumnReordering:
[tableView gormAllowsColumnReordering]];
[tableView setGormDelegate: nil];
[tableView setNeedsDisplay: YES];
}
NSLog(@"deactivate");
selected = nil;
}
/*
* This method deletes all the objects in the current selection in the editor.
*/
- (void) deleteSelection
{
NSLog(@"deleteSelection");
if (selected == nil)
{
NSLog(@"no column to delete");
}
if ([tableView numberOfColumns] <= 1)
{
NSLog(@"can't delete last column");
}
else
{
NSLog(@"FIXME: remove the tableColumn from toplevel"); // FIXME
[tableView removeTableColumn: selected];
[tableView deselectAll: self];
selected = nil;
}
}
/*
* This method places the current selection from the editor on the pasteboard.
*/
- (void) copySelection
{
NSLog(@"copySelection");
if ([[[self selection] objectAtIndex: 0]
isKindOf: [NSTableColumn class]])
{
[document copyObjects: [self selection]
type: IBTableColumnPboardType
toPasteboard: [NSPasteboard generalPasteboard]];
}
else
{
NSLog(@"no paste");
}
}
/*
* This method is used to add the contents of the pasteboard to the current
* selection of objects within the editor.
*/
- (void) pasteInSelection
{
NSArray *objects;
NSLog(@"pasteInSelection");
objects = [document pasteType: IBTableColumnPboardType
fromPasteboard: [NSPasteboard generalPasteboard]
parent: nil];
if (objects == nil)
return;
if ([objects count] == 0)
return;
if ([objects count] > 1)
{
NSLog(@"warning strange behaviour : GormTableViewEditor pasteInSelection");
}
else if ([[objects objectAtIndex: 0] isKindOf: [NSTableColumn class]]
== NO)
{
NSLog(@"invalid data in IBTableColumnPboardType");
return;
}
[tableView addTableColumn: [objects objectAtIndex: 0]];
}
/*
* This method returns the document that owns the object that the editor edits.
*/
- (id /*<IBDocuments>*/) document
{
return document;
}
/*
* This method returns the object that the editor is editing.
*/
- (id) editedObject
{
return tableView;
}
/*
* This method is used to draw or remove markup that identifies selected
* objects within the object being edited.
*/
- (void) makeSelectionVisible: (BOOL)flag
{
NSLog(@"makeSelectionVisible");
// FIXME
}
/*
* This method is used to open an editor for an object within the object
* currently being edited.
*/
- (id<IBEditors>) openSubeditorForObject: (id)anObject
{
// FIXME
return nil;
}
/*
* This method is used to ensure that the editor is visible on screen.
*/
- (void) orderFront
{
// FIXME
}
/*
* FIXME - I don't think we use this.
*/
- (void) resetObject: (id)anObject
{
// FIXME
}
/*
* This method changes the current selection to those objects in the array.
*/
- (void) selectObjects: (NSArray*)anArray
{
id obj = [anArray lastObject];
[self makeSelectionVisible: NO];
selected = obj;
[document setSelectionFromEditor: self];
[self makeSelectionVisible: YES];
// FIXME
}
/*
* FIXME - I don't think we use this.
*/
- (void) validateEditing
{
// FIXME
}
/*
* When an editor resigns the selection ownership, all editors are asked if
* they want selection ownership, and the first one to return YES gets made
* into the current selection owner.
*/
- (BOOL) wantsSelection
{
return NO;
}
/*
* This returns the window in which the editor is drawn.
*/
- (NSWindow*) window
{
return nil;
}
- (void) mouseDown:(NSEvent*)theEvent
{
id hitView =
[[tableView enclosingScrollView]
hitTest:
[[[tableView enclosingScrollView] superview]
convertPoint: [theEvent locationInWindow]
fromView: nil]];
if (hitView == [tableView headerView])
{
if ([theEvent clickCount] == 2)
{
[self editHeader: hitView
withEvent: theEvent];
}
else
{
[hitView mouseDown: theEvent];
}
}
else if ([hitView isKindOf: [NSScroller class]])
{
[hitView mouseDown: theEvent];
}
else if (hitView == tableView)
{
if ([tableView selectedColumn] != -1)
{
[tableView deselectColumn: [tableView selectedColumn]];
}
}
}
- (void) changeObject: (id)anObject
{
if (tableView != nil)
{
if ([tableView selectedColumn] != -1)
{
[tableView deselectColumn: [tableView selectedColumn]];
}
[tableView setBackgroundColor: [NSColor controlBackgroundColor]];
}
ASSIGN(tableView, anObject);
[tableView setBackgroundColor: [NSColor whiteColor]];
[tableView setNeedsDisplay: YES];
[self selectObjects: [NSArray arrayWithObject: tableView]];
[self activate];
}
- (void) tableViewSelectionDidChange: (id) tv
{
if ([tableView selectedColumn] != -1)
{
selected = [[tableView tableColumns]
objectAtIndex: [tableView selectedColumn]];
[self selectObjects:
[NSArray arrayWithObject: selected]];
}
else
{
[self selectObjects:
[NSArray arrayWithObject: tableView]];
}
}
- (void) outlineViewSelectionDidChange: (id) tv
{
if ([tableView selectedColumn] != -1)
{
selected = [[tableView tableColumns]
objectAtIndex: [tableView selectedColumn]];
[self selectObjects:
[NSArray arrayWithObject: selected]];
}
else
{
selected = nil;
[self selectObjects:
[NSArray arrayWithObject: tableView]];
}
}
- (void) editHeader: (NSTableHeaderView*) th
withEvent: (NSEvent *) theEvent
{
NSText *t;
NSTableColumn *tc;
NSRect drawingRect;
unsigned length = 0;
int columnIndex = [th columnAtPoint:
[th convertPoint:[theEvent locationInWindow]
fromView: nil]];
if (columnIndex == NSNotFound)
return;
_textObject = nil;
[[th tableView] scrollColumnToVisible: columnIndex];
t = [[th window] fieldEditor: YES forObject: self];
if ([t superview] != nil)
{
if ([t resignFirstResponder] == NO)
{
return;
}
}
// Prepare the cell
tc = [[tableView tableColumns] objectAtIndex: columnIndex];
// NB: need to be released when no longer used
_editedCell = [[tc headerCell] copy];
_currentHeaderCell = [tc headerCell];
[_editedCell setStringValue: [[tc headerCell] stringValue]];
[_editedCell setEditable: YES];
[_editedCell setAlignment: NSLeftTextAlignment];
[_editedCell setTextColor: [NSColor blackColor]];
[_editedCell setBackgroundColor: [NSColor whiteColor]];
_textObject = [_editedCell setUpFieldEditorAttributes: t];
drawingRect = [th headerRectOfColumn: columnIndex];
[_editedCell editWithFrame: drawingRect
inView: th
editor: _textObject
delegate: self
event: theEvent];
return;
}
- (void) textDidEndEditing: (NSNotification *)aNotification
{
[_editedCell endEditing: _textObject];
[_currentHeaderCell setStringValue: [[_textObject text] copy]];
RELEASE(_editedCell);
}
- (NSArray*) selection
{
if (tableView == nil)
return [NSArray array];
else if (selected == nil)
return [NSArray arrayWithObject: tableView];
else
return [NSArray arrayWithObject: selected];
}
- (unsigned) selectionCount
{
return 1;
}
- (void) drawSelection
{
}
@end

View file

@ -23,6 +23,7 @@
*/
#include <Foundation/Foundation.h>
#include <AppKit/AppKit.h>
#include <InterfaceBuilder/InterfaceBuilder.h>
#include "../../GormPrivate.h"
#include "GormNSMenu.h"

View file

@ -23,7 +23,7 @@
*/
#include <Foundation/Foundation.h>
#include <AppKit/AppKit.h>
#include "../../Gorm.h"
#include <InterfaceBuilder/IBPalette.h>
#include "../../GormCustomView.h"
// @class GormPopUpNSMenu;

View file

@ -108,5 +108,4 @@ static id _sharedDelegate = nil;
self = [super initWithCoder: aCoder];
return self;
}
@end

View file

@ -383,7 +383,4 @@ static id _sharedDataSource = nil;
{
return _gormAllowsColumnSelection;
}
@end

View file

@ -215,6 +215,4 @@ static id _sharedDataSource = nil;
return _gormAllowsColumnSelection;
}
@end

View file

@ -23,7 +23,7 @@
*/
#include <Foundation/Foundation.h>
#include <AppKit/AppKit.h>
#include "../../Gorm.h"
#include <InterfaceBuilder/InterfaceBuilder.h>
#include "GormNSBrowser.h"
#include "GormNSTableView.h"
#include "GormNSOutlineView.h"

View file

@ -23,7 +23,7 @@
*/
#include <Foundation/Foundation.h>
#include <AppKit/AppKit.h>
#include "../../Gorm.h"
#include <InterfaceBuilder/IBPalette.h>
#include "../../GormPrivate.h"

2
TODO
View file

@ -21,5 +21,7 @@ table which seem intersting:
* Use custom view as container. MOSX allows the user to create views
without windows so that the developer doesn't need to create a "dummy"
window to hold them. (fabien)
* Add Feature to automatically add actions to FirstResponder.
--
Gregory John Casamento