From 45741ba6e9fe96b95331656399e95c8ca8d592e1 Mon Sep 17 00:00:00 2001 From: ovidiu Date: Wed, 14 Jan 1998 23:03:44 +0000 Subject: [PATCH] Fixed serios bug that affected establishing connections. Support for NSBox. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2697 72102866-910b-0410-8b05-ffd578937521 --- Model/GMAppKit.h | 3 ++ Model/GMAppKit.m | 83 +++++++++++++++++++++++++++++++++++--------- Model/IMConnectors.m | 8 +++-- 3 files changed, 76 insertions(+), 18 deletions(-) diff --git a/Model/GMAppKit.h b/Model/GMAppKit.h index f1c74c6bd..5fbdb0d76 100644 --- a/Model/GMAppKit.h +++ b/Model/GMAppKit.h @@ -32,6 +32,9 @@ @interface NSApplication (GMArchiverMethods) @end +@interface NSBox (GMArchiverMethods) +@end + @interface NSButton (GMArchiverMethods) @end diff --git a/Model/GMAppKit.m b/Model/GMAppKit.m index 10463dadf..cca287829 100644 --- a/Model/GMAppKit.m +++ b/Model/GMAppKit.m @@ -72,8 +72,10 @@ void __dummy_GMAppKit_functionForLinking() {} windows = [unarchiver decodeObjectWithName:@"windows"]; keyWindow = [unarchiver decodeObjectWithName:@"keyWindow"]; mainWindow = [unarchiver decodeObjectWithName:@"mainWindow"]; + anObject = [unarchiver decodeObjectWithName:@"delegate"]; - [self setDelegate:anObject]; + if (anObject) + [self setDelegate:anObject]; #if NeXT_GUI_LIBRARY mainMenu = [unarchiver decodeObjectWithName:@"mainMenu"]; @@ -105,12 +107,47 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSApplication class]; +// return [NSApplication class]; + return isa; } @end /* NSApplication (GMArchiverMethods) */ +@implementation NSBox (GMArchiverMethods) +- (void)encodeWithModelArchiver:(GMArchiver*)archiver +{ + [super encodeWithModelArchiver:archiver]; + + [archiver encodeInt:[self borderType] withName:@"borderType"]; + [archiver encodeInt:[self titlePosition] withName:@"titlePosition"]; + [archiver encodeString:[self title] withName:@"title"]; + [archiver encodeObject:[self titleFont] withName:@"titleFont"]; + [archiver encodeObject:[self contentView] withName:@"contentView"]; +} + +- (id)initWithModelUnarchiver:(GMUnarchiver*)unarchiver +{ + self = [super initWithModelUnarchiver:unarchiver]; + + [self setBorderType:[unarchiver decodeIntWithName:@"borderType"]]; + [self setTitlePosition:[unarchiver decodeIntWithName:@"titlePosition"]]; + [self setTitle:[unarchiver decodeStringWithName:@"title"]]; + [self setTitleFont:[unarchiver decodeObjectWithName:@"titleFont"]]; + [self setContentView:[unarchiver decodeObjectWithName:@"contentView"]]; + + return self; +} + +- (Class)classForModelArchiver +{ +// return [NSBox class]; + return isa; +} + +@end /* NSBox (GMArchiverMethods) */ + + @implementation NSButton (GMArchiverMethods) - (void)encodeWithModelArchiver:(GMArchiver*)archiver @@ -165,7 +202,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSButton class]; +// return [NSButton class]; + return isa; } @end /* NSButton (GMArchiverMethods) */ @@ -190,7 +228,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSCell class]; +// return [NSCell class]; + return isa; } @end /* NSCell (GMArchiverMethods) */ @@ -298,7 +337,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSColor class]; +// return [NSColor class]; + return isa; } @end /* NSColor (GMArchiverMethods) */ @@ -345,7 +385,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSControl class]; +// return [NSControl class]; + return isa; } @end /* NSControl (GMArchiverMethods) */ @@ -365,7 +406,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSCStringText class]; +// return [NSCStringText class]; + return isa; } @end /* NSCStringText (GMArchiverMethods) */ @@ -392,7 +434,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSFont class]; +// return [NSFont class]; + return isa; } @end /* NSFont (GMArchiverMethods) */ @@ -423,7 +466,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSImage class]; +// return [NSImage class]; + return isa; } @end /* NSImage (GMArchiverMethods) */ @@ -468,7 +512,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSMenuItem class]; +// return [NSMenuItem class]; + return isa; } @end /* NSMenuItem (GMArchiverMethods) */ @@ -523,7 +568,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSMenu class]; +// return [NSMenu class]; + return isa; } @end /* NSMenu (GMArchiverMethods) */ @@ -544,7 +590,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSPopUpButton class]; +// return [NSPopUpButton class]; + return isa; } @end /* NSPopUpButton (GMArchiverMethods) */ @@ -568,7 +615,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSResponder class]; +// return [NSResponder class]; + return isa; } @end /* NSResponder (GMArchiverMethods) */ @@ -631,7 +679,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSTextField class]; +// return [NSTextField class]; + return isa; } @end /* NSTextField (GMArchiverMethods) */ @@ -696,7 +745,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSView class]; +// return [NSView class]; + return isa; } @end /* NSView (GMArchiverMethods) */ @@ -777,7 +827,8 @@ void __dummy_GMAppKit_functionForLinking() {} - (Class)classForModelArchiver { - return [NSWindow class]; +// return [NSWindow class]; + return isa; } @end /* NSWindow (GMArchiverMethods) */ diff --git a/Model/IMConnectors.m b/Model/IMConnectors.m index 399fe1a13..85827450e 100644 --- a/Model/IMConnectors.m +++ b/Model/IMConnectors.m @@ -117,10 +117,14 @@ object_set_instance_variable (id anObject, { id _source = [source nibInstantiate]; id _destination = [destination nibInstantiate]; - NSString* setMethodName = [@"set" stringByAppendingString: - [label capitalizedString]]; + NSString* setMethodName = [[@"set" stringByAppendingString: + [label capitalizedString]] + stringByAppendingString:@":"]; SEL setSelector = NSSelectorFromString (setMethodName); +// NSLog (@"establish connection: source %@, destination %@, label %@", +// _source, _destination, label); + if (setSelector && [_source respondsToSelector:setSelector]) [_source performSelector:setSelector withObject:_destination]; else