40 BOOL _awakenCustomResources;
45 - (id)initWithContentsOfURL:(
CPURL)aURL
56 _awakenCustomResources = YES;
62 - (id)initWithContentsOfURL:(
CPURL)aURL loadDelegate:(
id)aLoadDelegate
70 _awakenCustomResources = YES;
72 _loadDelegate = aLoadDelegate;
80 if (![aName hasSuffix:
@".cib"])
81 aName = [aName stringByAppendingString:@".cib"];
92 - (id)initWithCibNamed:(
CPString)aName bundle:(
CPBundle)aBundle loadDelegate:(
id)aLoadDelegate
94 if (![aName hasSuffix:
@".cib"])
95 aName = [aName stringByAppendingString:@".cib"];
106 - (void)_setAwakenCustomResources:(BOOL)shouldAwakenCustomResources
108 _awakenCustomResources = shouldAwakenCustomResources;
111 - (BOOL)_awakenCustomResources
113 return _awakenCustomResources;
116 - (BOOL)instantiateCibWithExternalNameTable:(
CPDictionary)anExternalNameTable
118 var bundle = _bundle,
121 if (!bundle && owner)
124 var unarchiver = [[_CPCibKeyedUnarchiver alloc] initForReadingWithData:_data bundle:bundle awakenCustomResources:_awakenCustomResources],
125 replacementClasses = [anExternalNameTable
objectForKey:CPCibReplacementClasses];
127 if (replacementClasses)
130 keyEnumerator = [replacementClasses keyEnumerator];
132 while ((key = [keyEnumerator nextObject]) !== nil)
133 [unarchiver setClass:[replacementClasses objectForKey:key] forClassName:key];
136 [unarchiver setExternalObjectsForProxyIdentifiers:[anExternalNameTable
objectForKey:CPCibExternalObjects]];
138 var objectData = [unarchiver decodeObjectForKey:CPCibObjectDataKey];
140 if (!objectData || ![objectData isKindOfClass:[_CPCibObjectData
class]])
143 var topLevelObjects = [anExternalNameTable
objectForKey:CPCibTopLevelObjects];
145 [objectData instantiateWithOwner:owner topLevelObjects:topLevelObjects];
146 [objectData establishConnectionsWithOwner:owner topLevelObjects:topLevelObjects];
147 [objectData awakeWithOwner:owner topLevelObjects:topLevelObjects];
150 [objectData displayVisibleWindows];
155 - (BOOL)instantiateCibWithOwner:(
id)anOwner topLevelObjects:(CPArray)topLevelObjects
162 [nameTable setObject:anOwner forKey:CPCibOwner];
182 if ([_loadDelegate respondsToSelector:
@selector(cibDidFailToLoad:)])
183 [_loadDelegate cibDidFailToLoad:self];
190 if ([_loadDelegate respondsToSelector:
@selector(cibDidFinishLoading:)])
191 [_loadDelegate cibDidFinishLoading:self];
207 var base64 = [aCoder decodeObjectForKey:CPCibDataFileKey];
215 [aCoder encodeObject:[_data base64] forKey:CPCibDataFileKey];