mirror of
https://github.com/gnustep/apps-gorm.git
synced 2025-02-23 19:51:00 +00:00
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:
parent
ae0687d0fc
commit
dc86bbbd18
49 changed files with 1421 additions and 604 deletions
49
ChangeLog
49
ChangeLog
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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
47
Gorm.m
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
#include "Gorm.h"
|
||||
#include "GormPrivate.h"
|
||||
|
||||
@implementation GormClassEditor
|
||||
|
|
|
@ -25,8 +25,7 @@
|
|||
|
||||
#include "GormPrivate.h"
|
||||
#include "GormCustomView.h"
|
||||
|
||||
NSString *IBClassNameChangedNotification = @"IBClassNameChangedNotification";
|
||||
#include <InterfaceBuilder/IBEditors.h>
|
||||
|
||||
@interface GormClassManager (Private)
|
||||
- (NSMutableDictionary*) classInfoForClassName: (NSString*)className;
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#define INCLUDED_GormCustomClassInspector_h
|
||||
|
||||
#include <AppKit/AppKit.h>
|
||||
#include "Gorm.h"
|
||||
#include <InterfaceBuilder/IBInspector.h>
|
||||
|
||||
@class GormClassManager;
|
||||
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
#include "GormClassManager.h"
|
||||
#include "GormDocument.h"
|
||||
#include "GormPrivate.h"
|
||||
#include "Gorm.h"
|
||||
|
||||
@implementation GormCustomClassInspector
|
||||
+ (void) initialize
|
||||
|
|
|
@ -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;
|
||||
|
||||
/*
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include <AppKit/NSNibConnector.h>
|
||||
#include "GormPrivate.h"
|
||||
|
||||
@implementation GormFilesOwner
|
||||
|
|
|
@ -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
83
GormLib/GNUmakefile
Normal 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
|
30
GormLib/GNUmakefile.postamble
Normal file
30
GormLib/GNUmakefile.postamble
Normal 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
|
71
GormLib/GNUmakefile.preamble
Normal file
71
GormLib/GNUmakefile.preamble
Normal 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
|
||||
#
|
||||
|
||||
|
43
GormLib/IBApplicationAdditions.h
Normal file
43
GormLib/IBApplicationAdditions.h
Normal 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
|
34
GormLib/IBApplicationAdditions.m
Normal file
34
GormLib/IBApplicationAdditions.m
Normal 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
87
GormLib/IBConnectors.h
Normal 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
34
GormLib/IBConnectors.m
Normal 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
43
GormLib/IBDefines.h
Normal 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
87
GormLib/IBDocuments.h
Normal 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
30
GormLib/IBDocuments.m
Normal 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
155
GormLib/IBEditors.h
Normal 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
34
GormLib/IBEditors.m
Normal 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
116
GormLib/IBInspector.h
Normal 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
|
||||
|
|
@ -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
|
||||
|
34
GormLib/IBObjectAdditions.h
Normal file
34
GormLib/IBObjectAdditions.h
Normal 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
|
98
GormLib/IBObjectAdditions.m
Normal file
98
GormLib/IBObjectAdditions.m
Normal 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
|
||||
|
58
GormLib/IBObjectProtocol.h
Normal file
58
GormLib/IBObjectProtocol.h
Normal 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
104
GormLib/IBPalette.h
Normal 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
|
|
@ -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
44
GormLib/IBViewAdditions.h
Normal 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
|
38
GormLib/InterfaceBuilder.h
Normal file
38
GormLib/InterfaceBuilder.h
Normal 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
11
GormLib/README
Normal 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
|
||||
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
#include "GormClassManager.h"
|
||||
#include "GormDocument.h"
|
||||
#include "GormPrivate.h"
|
||||
#include "Gorm.h"
|
||||
|
||||
@implementation GormSoundInspector
|
||||
+ (void) initialize
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -23,6 +23,7 @@
|
|||
*/
|
||||
#include <Foundation/Foundation.h>
|
||||
#include <AppKit/AppKit.h>
|
||||
#include <InterfaceBuilder/InterfaceBuilder.h>
|
||||
#include "../../GormPrivate.h"
|
||||
#include "GormNSMenu.h"
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
*/
|
||||
#include <Foundation/Foundation.h>
|
||||
#include <AppKit/AppKit.h>
|
||||
#include "../../Gorm.h"
|
||||
#include <InterfaceBuilder/IBPalette.h>
|
||||
#include "../../GormCustomView.h"
|
||||
|
||||
// @class GormPopUpNSMenu;
|
||||
|
|
|
@ -108,5 +108,4 @@ static id _sharedDelegate = nil;
|
|||
self = [super initWithCoder: aCoder];
|
||||
return self;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -383,7 +383,4 @@ static id _sharedDataSource = nil;
|
|||
{
|
||||
return _gormAllowsColumnSelection;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@end
|
||||
|
|
|
@ -215,6 +215,4 @@ static id _sharedDataSource = nil;
|
|||
return _gormAllowsColumnSelection;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@end
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
*/
|
||||
#include <Foundation/Foundation.h>
|
||||
#include <AppKit/AppKit.h>
|
||||
#include "../../Gorm.h"
|
||||
#include <InterfaceBuilder/IBPalette.h>
|
||||
#include "../../GormPrivate.h"
|
||||
|
||||
|
||||
|
|
2
TODO
2
TODO
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue