Author: gcasa
Date: Wed Nov 25 06:57:39 2015
New Revision: 39200
URL: http://svn.gna.org/viewcvs/gnustep?rev=39200&view=rev
Log:
Gorm changes to make recent fix for issue with NSPanel/NSWindow more generic
Modified:
apps/gorm/branches/gorm_changes_for_nspanel/GormCore/GormWindowTemplate.m
apps/gorm/branches/gorm_changes_for_nspanel/Plugins/Nib/GormNibWrapperLoader.m
Modified:
apps/gorm/branches/gorm_changes_for_nspanel/GormCore/GormWindowTemplate.m
URL:
http://svn.gna.org/viewcvs/gnustep/apps/gorm/branches/gorm_changes_for_nspanel/GormCore/GormWindowTemplate.m?rev=39200&r1=39199&r2=39200&view=diff
==============================================================================
--- apps/gorm/branches/gorm_changes_for_nspanel/GormCore/GormWindowTemplate.m
(original)
+++ apps/gorm/branches/gorm_changes_for_nspanel/GormCore/GormWindowTemplate.m
Wed Nov 25 06:57:39 2015
@@ -25,6 +25,9 @@
#include "GormWindowTemplate.h"
#include "GormNSWindow.h"
#include "GormNSPanel.h"
+#include "GormPalettesManager.h"
+#include "GormClassManager.h"
+#include "GormProtocol.h"
// @class GormNSWindow;
// @class GormNSPanel;
@@ -41,6 +44,18 @@
@end
@implementation GormWindowTemplate
+/*
+- (id) initWithCoder: (NSCoder *)coder
+{
+ self = [super initWithCoder:coder];
+ if(self != nil)
+ {
+ RETAIN(_windowClass);
+ }
+ return self;
+}
+*/
+
- (id) nibInstantiate
{
id object = [super nibInstantiate];
@@ -54,12 +69,29 @@
- (Class) baseWindowClass
{
+ GormClassManager *classManager = [(id<Gorm>)NSApp classManager];
+ NSString *superClassName = [classManager nonCustomSuperClassOf:
_windowClass];
+ const char *superClassCstring = [superClassName UTF8String];
+ NSString *supClassName = [NSString stringWithUTF8String: superClassCstring];
+ GormPalettesManager *palettesManager = [(id<Gorm>)NSApp palettesManager];
+ NSDictionary *substituteClasses = [palettesManager substituteClasses];
+ NSString *substituteClass = [substituteClasses objectForKey: supClassName];
+ NSString *result = substituteClass;
+ /*
if([_windowClass isEqualToString:@"NSPanel"])
{
return [GormNSPanel class];
}
return [GormNSWindow class];
+ */
+
+ if(result == nil)
+ {
+ result = superClassName;
+ }
+
+ return NSClassFromString(result);
}
@end
Modified:
apps/gorm/branches/gorm_changes_for_nspanel/Plugins/Nib/GormNibWrapperLoader.m
URL:
http://svn.gna.org/viewcvs/gnustep/apps/gorm/branches/gorm_changes_for_nspanel/Plugins/Nib/GormNibWrapperLoader.m?rev=39200&r1=39199&r2=39200&view=diff
==============================================================================
---
apps/gorm/branches/gorm_changes_for_nspanel/Plugins/Nib/GormNibWrapperLoader.m
(original)
+++
apps/gorm/branches/gorm_changes_for_nspanel/Plugins/Nib/GormNibWrapperLoader.m
Wed Nov 25 06:57:39 2015
@@ -140,6 +140,7 @@
}
else
{
+
/*
* Create an unarchiver, and use it to unarchive the gorm file
while
* handling class replacement so that standard objects understood
@@ -183,6 +184,26 @@
}
else
{
+ //
+ // Add custom classes...
+ //
+ classesTable = [container classes];
+ classKeys = NSAllMapTableKeys(classesTable);
+ en = [classKeys objectEnumerator];
+ while((o = [en nextObject]) != nil)
+ {
+ NSString *name = [document nameForObject: o];
+ NSString *customClass = NSMapGet(classesTable, o);
+ if(name != nil && customClass != nil)
+ {
+ [classManager setCustomClass: customClass forName:
name];
+ }
+ else
+ {
+ NSLog(@"Name %@ or class %@ for object %@ is nil.",
name, customClass, o);
+ }
+ }
+
nibFilesOwner = [container objectForName: @"File's Owner"];
docFilesOwner = [document filesOwner];
@@ -245,25 +266,7 @@
}
}
- //
- // Add custom classes...
- //
- classesTable = [container classes];
- classKeys = NSAllMapTableKeys(classesTable);
- en = [classKeys objectEnumerator];
- while((o = [en nextObject]) != nil)
- {
- NSString *name = [document nameForObject: o];
- NSString *customClass = NSMapGet(classesTable, o);
- if(name != nil && customClass != nil)
- {
- [classManager setCustomClass: customClass forName:
name];
- }
- else
- {
- NSLog(@"Name %@ or class %@ for object %@ is nil.",
name, customClass, o);
- }
- }
+
//
// add connections...
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs