mirror of
https://github.com/gnustep/apps-gorm.git
synced 2025-02-24 03:51:22 +00:00
Nib changes to properly generate oids and names, encoding of info.nib and changes to properly encode classes.nib.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@23205 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
2128d1bc13
commit
5f803300ed
5 changed files with 58 additions and 14 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
||||||
|
2006-08-05 08:46-EDT Gregory John Casamento <greg_casamento@yahoo.com>
|
||||||
|
|
||||||
|
* GormCore/GormClassManager.m: Fixes to encode classes.nib file
|
||||||
|
properly.
|
||||||
|
* GormCore/GormFilePrefsManager.m: Added code to encode a dummy
|
||||||
|
info.nib for nib saving.
|
||||||
|
* GormCore/GormFilesOwner.m: Code to encode this as a NSCustomObject
|
||||||
|
in encodeWithCoder:
|
||||||
|
* GormCore/GormNibWrapperBuilder.m: in
|
||||||
|
-[NSIBObjectData initWithDocument:] added code to pull the names
|
||||||
|
and generate OIDS for the .nib properly.
|
||||||
|
|
||||||
2006-08-01 00:12-EDT Gregory John Casamento <greg_casamento@yahoo.com>
|
2006-08-01 00:12-EDT Gregory John Casamento <greg_casamento@yahoo.com>
|
||||||
|
|
||||||
* GormCore/GNUmakefile: Add GormNibWrapperBuilder.m
|
* GormCore/GNUmakefile: Add GormNibWrapperBuilder.m
|
||||||
|
|
|
@ -1297,10 +1297,11 @@
|
||||||
[actionDict setObject: @"id" forKey: actionName];
|
[actionDict setObject: @"id" forKey: actionName];
|
||||||
}
|
}
|
||||||
|
|
||||||
[newInfo setObject: @"ObjC" forKey: @"LANGUAGE"];
|
|
||||||
[newInfo setObject: actionDict forKey: @"ACTIONS"];
|
[newInfo setObject: actionDict forKey: @"ACTIONS"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[newInfo setObject: @"ObjC" forKey: @"LANGUAGE"];
|
||||||
|
|
||||||
[classes addObject: newInfo];
|
[classes addObject: newInfo];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -185,10 +185,10 @@ NSString *formatVersion(int version)
|
||||||
[[(GormDocument *)[(id<IB>)NSApp activeDocument] window] frame];
|
[[(GormDocument *)[(id<IB>)NSApp activeDocument] window] frame];
|
||||||
NSRect screenRect = [[NSScreen mainScreen] frame];
|
NSRect screenRect = [[NSScreen mainScreen] frame];
|
||||||
NSString *stringRect = [NSString stringWithFormat: @"%d %d %d %d %d %d %d %d",
|
NSString *stringRect = [NSString stringWithFormat: @"%d %d %d %d %d %d %d %d",
|
||||||
docLocation.origin.x, docLocation.origin.y,
|
(int)docLocation.origin.x, (int)docLocation.origin.y,
|
||||||
docLocation.size.width, docLocation.size.height,
|
(int)docLocation.size.width, (int)docLocation.size.height,
|
||||||
screenRect.origin.x, screenRect.origin.y,
|
(int)screenRect.origin.x, (int)screenRect.origin.y,
|
||||||
screenRect.size.width, screenRect.size.height];
|
(int)screenRect.size.width, (int)screenRect.size.height];
|
||||||
|
|
||||||
// upon saving, update to the latest.
|
// upon saving, update to the latest.
|
||||||
version = [GormFilePrefsManager currentVersion];
|
version = [GormFilePrefsManager currentVersion];
|
||||||
|
|
|
@ -76,10 +76,24 @@
|
||||||
ASSIGN(className, aName);
|
ASSIGN(className, aName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void) encodeWithCoder: (NSCoder *)coder
|
||||||
|
{
|
||||||
|
if([coder allowsKeyedCoding])
|
||||||
|
{
|
||||||
|
[coder encodeObject: className forKey: @"NSClassName"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (id) initWithCoder: (NSCoder *)coder
|
||||||
|
{
|
||||||
|
[NSException raise: NSInvalidArgumentException
|
||||||
|
format: @"Keyed coding not implemented for %@.",
|
||||||
|
NSStringFromClass([self class])];
|
||||||
|
return nil; // never reached, but keeps gcc happy.
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation GormFilesOwnerInspector
|
@implementation GormFilesOwnerInspector
|
||||||
|
|
||||||
- (int) browser: (NSBrowser*)sender numberOfRowsInColumn: (int)column
|
- (int) browser: (NSBrowser*)sender numberOfRowsInColumn: (int)column
|
||||||
{
|
{
|
||||||
return [classes count];
|
return [classes count];
|
||||||
|
@ -255,6 +269,4 @@
|
||||||
}
|
}
|
||||||
[object setClassName: title];
|
[object setClassName: title];
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
{
|
{
|
||||||
if((self = [self init]) != nil)
|
if((self = [self init]) != nil)
|
||||||
{
|
{
|
||||||
NSMutableArray *windowTemplates = [NSMutableArray array];
|
|
||||||
NSArray *cons = [document connections];
|
NSArray *cons = [document connections];
|
||||||
NSDictionary *customClasses = [[document classManager] customClassMap];
|
NSDictionary *customClasses = [[document classManager] customClassMap];
|
||||||
NSArray *keys = [customClasses allKeys];
|
NSArray *keys = [customClasses allKeys];
|
||||||
|
@ -56,9 +55,9 @@
|
||||||
|
|
||||||
// Create the container for the .nib file...
|
// Create the container for the .nib file...
|
||||||
ASSIGN(_root, owner);
|
ASSIGN(_root, owner);
|
||||||
// NSMapInsert(_objects, owner, nil);
|
NSMapInsert(_names, owner, @"File's Owner");
|
||||||
[_topLevelObjects addObjectsFromArray: [[document topLevelObjects] allObjects]];
|
[_topLevelObjects addObjectsFromArray: [[document topLevelObjects] allObjects]];
|
||||||
[_visibleWindows addObjectsFromArray: windowTemplates];
|
[_visibleWindows addObjectsFromArray: [[document visibleWindows] allObjects]];
|
||||||
|
|
||||||
// fill in objects and connections....
|
// fill in objects and connections....
|
||||||
while((o = [en nextObject]) != nil)
|
while((o = [en nextObject]) != nil)
|
||||||
|
@ -67,7 +66,17 @@
|
||||||
{
|
{
|
||||||
id src = [o source];
|
id src = [o source];
|
||||||
id dst = [o destination];
|
id dst = [o destination];
|
||||||
NSString *name = [document nameForObject: src];
|
NSString *name = nil;
|
||||||
|
|
||||||
|
//
|
||||||
|
if(src != nil)
|
||||||
|
{
|
||||||
|
name = [document nameForObject: src];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if([name isEqual: @"NSOwner"])
|
if([name isEqual: @"NSOwner"])
|
||||||
{
|
{
|
||||||
|
@ -90,6 +99,9 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set the next oid...
|
||||||
|
_nextOid = oid;
|
||||||
|
|
||||||
// custom classes...
|
// custom classes...
|
||||||
en = [keys objectEnumerator];
|
en = [keys objectEnumerator];
|
||||||
while((o = [en nextObject]) != nil)
|
while((o = [en nextObject]) != nil)
|
||||||
|
@ -237,7 +249,11 @@
|
||||||
id replacementObject = NSMapGet(_objectMap,object);
|
id replacementObject = NSMapGet(_objectMap,object);
|
||||||
id o = object;
|
id o = object;
|
||||||
|
|
||||||
if(replacementObject != nil)
|
if([o isKindOfClass: [GormFirstResponder class]])
|
||||||
|
{
|
||||||
|
o = nil;
|
||||||
|
}
|
||||||
|
else if(replacementObject != nil)
|
||||||
{
|
{
|
||||||
o = replacementObject;
|
o = replacementObject;
|
||||||
}
|
}
|
||||||
|
@ -270,7 +286,7 @@
|
||||||
/*
|
/*
|
||||||
* Set up archiving...
|
* Set up archiving...
|
||||||
*/
|
*/
|
||||||
archiverData = [NSMutableData dataWithCapacity: 0];
|
archiverData = [NSMutableData dataWithCapacity: 10240];
|
||||||
archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData: archiverData];
|
archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData: archiverData];
|
||||||
[archiver setDelegate: self];
|
[archiver setDelegate: self];
|
||||||
|
|
||||||
|
@ -281,6 +297,8 @@
|
||||||
forClass: [GormObjectProxy class]];
|
forClass: [GormObjectProxy class]];
|
||||||
[archiver setClassName: @"NSCustomView"
|
[archiver setClassName: @"NSCustomView"
|
||||||
forClass: [GormCustomView class]];
|
forClass: [GormCustomView class]];
|
||||||
|
[archiver setClassName: @"NSCustomObject"
|
||||||
|
forClass: [GormFilesOwner class]];
|
||||||
|
|
||||||
|
|
||||||
while((subClassName = [en nextObject]) != nil)
|
while((subClassName = [en nextObject]) != nil)
|
||||||
|
@ -297,6 +315,7 @@
|
||||||
[self _replaceObjectsWithTemplates: archiver];
|
[self _replaceObjectsWithTemplates: archiver];
|
||||||
[archiver setOutputFormat: NSPropertyListXMLFormat_v1_0]; // force XML output for now....
|
[archiver setOutputFormat: NSPropertyListXMLFormat_v1_0]; // force XML output for now....
|
||||||
[archiver encodeObject: _container forKey: @"IB.objectdata"];
|
[archiver encodeObject: _container forKey: @"IB.objectdata"];
|
||||||
|
[archiver finishEncoding];
|
||||||
RELEASE(archiver); // We're done with the archiver here..
|
RELEASE(archiver); // We're done with the archiver here..
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue