adium-1.4 3146:aa035c692d84: Made user icon cache clearing more ...
commits at adium.im
commits at adium.im
Thu Oct 28 05:18:36 UTC 2010
details: http://hg.adium.im/adium-1.4/rev/aa035c692d84
revision: 3146:aa035c692d84
author: Evan Schoenberg
date: Wed Oct 27 23:02:52 2010 -0500
Made user icon cache clearing more aggressive, including clearing a metacontact's contained contacts when we're asked to flush. This decreases the chance of unneeded icon data hanging out in the cache.
Subject: adium-1.4 3147:fcd2987ad403: When a group is collapsed, clear the icon and listproxy data that is no longer needed. This is particularly noticeable when a huge group like a Twitter account's group is present
details: http://hg.adium.im/adium-1.4/rev/fcd2987ad403
revision: 3147:fcd2987ad403
author: Evan Schoenberg
date: Wed Oct 27 23:21:27 2010 -0500
When a group is collapsed, clear the icon and listproxy data that is no longer needed. This is particularly noticeable when a huge group like a Twitter account's group is present
Subject: adium-1.4 3148:fd8580a8d4b9: Clear the caches when visibility goes to NO for objects
details: http://hg.adium.im/adium-1.4/rev/fd8580a8d4b9
revision: 3148:fd8580a8d4b9
author: Evan Schoenberg
date: Wed Oct 27 23:45:04 2010 -0500
Clear the caches when visibility goes to NO for objects
Subject: adium-1.4 3149:c48b7a39bb4e: Added +[AIProxyListObject existingProxyListObjectForListObject:inListObject:]
details: http://hg.adium.im/adium-1.4/rev/c48b7a39bb4e
revision: 3149:c48b7a39bb4e
author: Evan Schoenberg
date: Wed Oct 27 23:45:25 2010 -0500
Added +[AIProxyListObject existingProxyListObjectForListObject:inListObject:]
Subject: adium-1.4 3150:df642138c4c8: When clearing out cached data when a group is collapsed, use the visibleContainedObjects and existingProxyListObjectForListObject: to reduce the number of calls needed
details: http://hg.adium.im/adium-1.4/rev/df642138c4c8
revision: 3150:df642138c4c8
author: Evan Schoenberg
date: Wed Oct 27 23:46:10 2010 -0500
When clearing out cached data when a group is collapsed, use the visibleContainedObjects and existingProxyListObjectForListObject: to reduce the number of calls needed
Subject: adium-1.4 3151:27d6dfcbae3c: Tweak the aggressiveness of cache clearing; my previous was too far removed from the previous behavior to be comfortable, and it could create an feedback loop
details: http://hg.adium.im/adium-1.4/rev/27d6dfcbae3c
revision: 3151:27d6dfcbae3c
author: Evan Schoenberg
date: Wed Oct 27 23:47:14 2010 -0500
Tweak the aggressiveness of cache clearing; my previous was too far removed from the previous behavior to be comfortable, and it could create an feedback loop
Subject: adium-1.4 3152:34f41280ba95: When removing a proxy object, be tolerant of nil
details: http://hg.adium.im/adium-1.4/rev/34f41280ba95
revision: 3152:34f41280ba95
author: Evan Schoenberg
date: Wed Oct 27 23:47:32 2010 -0500
When removing a proxy object, be tolerant of nil
Subject: adium-1.4 3153:d03d36d7cecb: Fix a potential garabage value usage and a leak of data sent in Bonjour file transfers
details: http://hg.adium.im/adium-1.4/rev/d03d36d7cecb
revision: 3153:d03d36d7cecb
author: Evan Schoenberg
date: Wed Oct 27 23:48:06 2010 -0500
Fix a potential garabage value usage and a leak of data sent in Bonjour file transfers
Subject: adium-1.4 3154:49190c163b12: Fixed a few problems with Dutch localization nib spacing
details: http://hg.adium.im/adium-1.4/rev/49190c163b12
revision: 3154:49190c163b12
author: Evan Schoenberg
date: Thu Oct 28 00:18:28 2010 -0500
Fixed a few problems with Dutch localization nib spacing
diffs (truncated from 4118 to 1000 lines):
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/AIAbstractListController.m
--- a/Frameworks/Adium Framework/Source/AIAbstractListController.m Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AIAbstractListController.m Thu Oct 28 00:18:28 2010 -0500
@@ -34,6 +34,7 @@
#import <Adium/AIContactList.h>
#import <Adium/AIListOutlineView.h>
#import <Adium/AIMenuControllerProtocol.h>
+#import <Adium/AIUserIcons.h>
#import <Adium/AIService.h>
#import <AIUtilities/AIAutoScrollView.h>
#import <AIUtilities/AIColorAdditions.h>
@@ -679,7 +680,18 @@
- (void)outlineView:(NSOutlineView *)outlineView setExpandState:(BOOL)state ofItem:(AIProxyListObject *)item
{
/* XXX Should note the combination of item and item's parent for expansion tracking */
- [(id<AIContainingObject>)(item.listObject) setExpanded:state];
+ id<AIContainingObject> containingObject = item.listObject;
+ [containingObject setExpanded:state];
+
+ if (!state) {
+ /* If the item is collapsed, clear cached data which was being used while it was displayed */
+ for (AIListObject *listObject in (containingObject.visibleContainedObjects)) {
+ [AIUserIcons flushCacheForObject:listObject];
+
+ [listObject removeProxyObject:[AIProxyListObject existingProxyListObjectForListObject:listObject
+ inListObject:containingObject]];
+ }
+ }
}
- (BOOL)outlineView:(NSOutlineView *)outlineView expandStateOfItem:(AIProxyListObject *)item
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/AICachedUserIconSource.m
--- a/Frameworks/Adium Framework/Source/AICachedUserIconSource.m Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AICachedUserIconSource.m Thu Oct 28 00:18:28 2010 -0500
@@ -14,6 +14,14 @@
@implementation AICachedUserIconSource
++ (AICachedUserIconSource *)sharedCachedUserIconSourceInstance
+{
+ if (!sharedCachedUserIconSourceInstance)
+ sharedCachedUserIconSourceInstance = [[self alloc] init];
+
+ return sharedCachedUserIconSourceInstance;
+}
+
/*!
* @brief Retrieve the path at which to cache an AIListObject's image
*/
@@ -49,7 +57,8 @@
error:NULL];
}
- [AIUserIcons userIconSource:sharedCachedUserIconSourceInstance didChangeForObject:inObject];
+ [AIUserIcons userIconSource:[self sharedCachedUserIconSourceInstance]
+ didChangeForObject:inObject];
return success;
}
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/AIListGroup.m
--- a/Frameworks/Adium Framework/Source/AIListGroup.m Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AIListGroup.m Thu Oct 28 00:18:28 2010 -0500
@@ -21,6 +21,8 @@
#import <Adium/AIContactList.h>
#import <Adium/AIListContact.h>
#import <Adium/AIContactHidingController.h>
+#import <Adium/AIProxyListObject.h>
+#import <Adium/AIUserIcons.h>
#define PREF_GROUP_CONTACT_LIST_DISPLAY @"Contact List Display"
@@ -99,13 +101,27 @@
- (void) rebuildVisibleCache
{
- [_visibleObjects removeAllObjects];
+ NSMutableArray *oldVisibleObjects = _visibleObjects;
+
+ _visibleObjects = [[NSMutableArray alloc] init];
for (AIListObject *obj in self)
{
if ([[AIContactHidingController sharedController] visibilityOfListObject:obj inContainer:self])
[_visibleObjects addObject:obj];
}
+
[self didModifyProperties:[NSSet setWithObjects:@"VisibleObjectCount", nil] silent:NO];
+
+ /* Obtain the array of only objects which were previously visible but now are not */
+ [oldVisibleObjects removeObjectsInArray:_visibleObjects];
+
+ for (AIListObject *obj in oldVisibleObjects) {
+ /* For each object which was previously visible but now is not, it's cache clearing time. */
+ [obj removeProxyObject:[AIProxyListObject existingProxyListObjectForListObject:obj inListObject:self]];
+ [AIUserIcons flushCacheForObject:obj];
+ }
+
+ [oldVisibleObjects release];
}
- (NSSet *)updateListObject:(AIListObject *)inObject keys:(NSSet *)inModifiedKeys silent:(BOOL)silent
@@ -138,6 +154,11 @@
[adium.contactController sortListObject:inObject];
modifiedProperties = [NSSet setWithObjects:@"VisibleObjectCount", nil];
+
+ if (!shouldBeVisible) {
+ [inObject removeProxyObject:[AIProxyListObject existingProxyListObjectForListObject:inObject inListObject:self]];
+ [AIUserIcons flushCacheForObject:inObject];
+ }
}
}
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/AIProxyListObject.h
--- a/Frameworks/Adium Framework/Source/AIProxyListObject.h Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AIProxyListObject.h Thu Oct 28 00:18:28 2010 -0500
@@ -38,6 +38,9 @@
+ (AIProxyListObject *)proxyListObjectForListObject:(ESObjectWithProperties *)inListObject
inListObject:(ESObjectWithProperties<AIContainingObject> *)containingObject;
++ (AIProxyListObject *)existingProxyListObjectForListObject:(ESObjectWithProperties *)inListObject
+ inListObject:(ESObjectWithProperties <AIContainingObject>*)inContainingObject;
+
/*!
* @biref Called by ESObjectWithProperties to release its proxy object.
*
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/AIProxyListObject.m
--- a/Frameworks/Adium Framework/Source/AIProxyListObject.m Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AIProxyListObject.m Thu Oct 28 00:18:28 2010 -0500
@@ -26,6 +26,16 @@
proxyDict = [[NSMutableDictionary alloc] init];
}
++ (AIProxyListObject *)existingProxyListObjectForListObject:(ESObjectWithProperties *)inListObject
+ inListObject:(ESObjectWithProperties <AIContainingObject>*)inContainingObject
+{
+ NSString *key = (inContainingObject ?
+ [NSString stringWithFormat:@"%@-%@", inListObject.internalObjectID, inContainingObject.internalObjectID] :
+ inListObject.internalObjectID);
+
+ return [proxyDict objectForKey:key];
+}
+
+ (AIProxyListObject *)proxyListObjectForListObject:(ESObjectWithProperties *)inListObject
inListObject:(ESObjectWithProperties <AIContainingObject>*)inContainingObject
{
@@ -74,9 +84,9 @@
[proxyDict removeObjectForKey:proxyObject.key];
}
-
- (void)dealloc
{
+ AILogWithSignature(@"%@", self);
self.listObject = nil;
self.key = nil;
self.cachedDisplayName = nil;
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/AIUserIcons.m
--- a/Frameworks/Adium Framework/Source/AIUserIcons.m Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AIUserIcons.m Thu Oct 28 00:18:28 2010 -0500
@@ -47,6 +47,8 @@
@interface AIUserIcons ()
+ (void)updateAllIcons;
+ (void)updateUserIconForObject:(AIListObject *)inObject;
++ (void)flushCacheForObjectOnly:(AIListObject *)inObject;
++ (void)flushCacheForObjectAndParentOnly:(AIListObject *)inObject;
@end
@implementation AIUserIcons
@@ -169,26 +171,40 @@
#ifdef AIUSERICON_DEBUG
AILogWithSignature(@"%@ provided icon for %@", inSource, inObject);
#endif
- [self flushCacheForObject:inObject];
+ [inUserIcon retain];
+ [self flushCacheForObjectAndParentOnly:inObject];
[iconCache setObject:inUserIcon forKey:internalObjectID];
[iconCacheOwners setObject:inSource forKey:internalObjectID];
+ [inUserIcon release];
- } else if (!wasAsynchronous || ([self userIconSourceForObject:inObject] == inSource)) {
- [self flushCacheForObject:inObject];
+ } else {
+ id <AIUserIconSource> source = [self userIconSourceForObject:inObject];
+ if (!wasAsynchronous || (source == inSource)) {
+ /* Either this was a synchronous lookup (we must take action now to prevent an infinite loop of re-lookup)
+ * OR
+ * this same source is handling the icon for the object, so its new lack an icon is an important change.
+ */
+ if (source) {
+ /* We previously had an icon but no longer have one; need to flush.
+ */
+ [self flushCacheForObjectAndParentOnly:inObject];
+ }
+
+#ifdef AIUSERICON_DEBUG
+ AILogWithSignature(@"Source %@ got nothing for %@; current source is %@", inSource, inObject, [self userIconSourceForObject:inObject]);
+#endif
+
+ [iconCache setObject:[NSNull null] forKey:internalObjectID];
+ [iconCacheOwners removeObjectForKey:internalObjectID];
+ } else {
#ifdef AIUSERICON_DEBUG
- AILogWithSignature(@"Source %@ got nothing for %@; current source is %@", inSource, inObject, [self userIconSourceForObject:inObject]);
+ AILogWithSignature(@"Source %@: Ignoring information on %@ for %@", inSource, inUserIcon, inObject);
#endif
-
- [iconCache setObject:[NSNull null] forKey:internalObjectID];
- [iconCacheOwners removeObjectForKey:internalObjectID];
- } else {
-#ifdef AIUSERICON_DEBUG
- AILogWithSignature(@"Source %@: Ignoring information on %@ for %@", inSource, inUserIcon, inObject);
-#endif
+ }
}
-
+
if (!isQueryingIconSources) {
/* We determined a user icon when we weren't in the middle of an update;
* this means an asynchronous icon lookup was completed.
@@ -197,7 +213,19 @@
*/
}
- [self notifyOfChangedIconForObject:inObject];
+ /* Wait until the next run loop if this was a synchronous lookup;
+ * if a metacontact's investigation of its icon by querying contained contacts
+ * led to a contact's icon being determined, it is necessary to wait for it to receive the return value and
+ * update the cache (by calling +[AIUserIcons setActualUserIcon:andSource:forObject:]) so that we don't notify
+ * prematurely. Notifying now would lead to a potential race condition in which the wrong icon could be flickered
+ * onto the display or an infinite loop could occur.
+ */
+ if (wasAsynchronous)
+ [self notifyOfChangedIconForObject:inObject];
+ else
+ [self performSelector:@selector(notifyOfChangedIconForObject:)
+ withObject:inObject
+ afterDelay:0];
}
/*!
@@ -331,6 +359,9 @@
if (!userIcon) {
[self updateUserIconForObject:inObject];
userIcon = [iconCache objectForKey:internalObjectID];
+#ifdef AIUSERICON_DEBUG
+ AILogWithSignature(@"%@ (Got icon? %i)",inObject, (userIcon!=nil));
+#endif
if (!userIcon) {
[iconCache setObject:[NSNull null] forKey:internalObjectID];
[iconCacheOwners removeObjectForKey:internalObjectID];
@@ -354,7 +385,8 @@
if (userIcon && inSource) {
NSString *internalObjectID = inObject.internalObjectID;
- [self flushCacheForObject:inObject];
+ [userIcon retain];
+ [self flushCacheForObjectOnly:inObject];
#ifdef AIUSERICON_DEBUG
AILogWithSignature(@"%@ is using %@", inObject, inSource);
@@ -364,6 +396,7 @@
forKey:internalObjectID];
[iconCacheOwners setObject:inSource
forKey:internalObjectID];
+ [userIcon release];
}
}
@@ -388,9 +421,20 @@
flipImage:YES
proportionally:YES
allowAnimation:YES];
- if (userIcon && cache) [listIconCache setObject:userIcon forKey:inObject.internalObjectID];
+#ifdef AIUSERICON_DEBUG
+ AILogWithSignature(@"%@ regenerated (cache? %i; listIconCache was %@)",inObject, cache, listIconCache);
+#endif
+
+ if (cache) {
+ if (userIcon)
+ [listIconCache setObject:userIcon forKey:inObject.internalObjectID];
+ else
+ [listIconCache setObject:[NSNull null] forKey:inObject.internalObjectID];
+ }
}
+ if ((id)userIcon == (id)[NSNull null]) userIcon = nil;
+
return userIcon;
}
@@ -409,10 +453,19 @@
//Render the icon if it's not cached
if (!userIcon) {
userIcon = [[inObject userIcon] imageByScalingForMenuItem];
- if (userIcon) [menuIconCache setObject:userIcon
- forKey:inObject.internalObjectID];
+ if (userIcon) {
+ [menuIconCache setObject:userIcon
+ forKey:inObject.internalObjectID];
+ } else {
+ [menuIconCache setObject:[NSNull null] forKey:inObject.internalObjectID];
+ }
+#ifdef AIUSERICON_DEBUG
+ AILogWithSignature(@"%@",inObject);
+#endif
}
+ if ((id)userIcon == (id)[NSNull null]) userIcon = nil;
+
if(!userIcon)
userIcon = [AIServiceIcons serviceIconForObject:inObject
type:AIServiceIconSmall
@@ -428,6 +481,9 @@
*/
+ (void)flushListUserIconCache
{
+#ifdef AIUSERICON_DEBUG
+ AILogWithSignature(@"");
+#endif
[listIconCache removeAllObjects];
}
@@ -443,6 +499,25 @@
}
}
++ (void)flushCacheForObjectOnly:(AIListObject *)inObject
+{
+ NSString *internalObjectID = inObject.internalObjectID;
+ [iconCache removeObjectForKey:internalObjectID];
+ [iconCacheOwners removeObjectForKey:internalObjectID];
+
+ [listIconCache removeObjectForKey:internalObjectID];
+ [menuIconCache removeObjectForKey:internalObjectID];
+}
+
++ (void)flushCacheForObjectAndParentOnly:(AIListObject *)inObject
+{
+ [self flushCacheForObjectOnly:inObject];
+
+ AIListContact *parentContact = [(AIListContact *)inObject parentContact];
+ if (parentContact != inObject)
+ [self flushCacheForObjectOnly:parentContact];
+}
+
/*!
* @brief Clear the cache for a specific object
*/
@@ -451,19 +526,28 @@
#ifdef AIUSERICON_DEBUG
AILogWithSignature(@"%@",inObject);
#endif
+ if ([inObject isKindOfClass:[AIMetaContact class]]) {
+ /* If a metacontact is cleared, the contained contacts should be, too cleared;
+ * one or more of their icons may no longer be needed depending on what the new preferredContact is
+ * for the metaContact. */
- NSString *internalObjectID = inObject.internalObjectID;
- [iconCache removeObjectForKey:internalObjectID];
- [iconCacheOwners removeObjectForKey:internalObjectID];
+ for (AIListObject *containedObject in [(AIMetaContact *)inObject containedObjects]) {
+ [self flushCacheForObjectOnly:containedObject];
+ }
+
+ [self flushCacheForObjectOnly:inObject];
- [listIconCache removeObjectForKey:internalObjectID];
- [menuIconCache removeObjectForKey:internalObjectID];
-
- /* If a contact within a metacontact is cleared, the metacontact itself should also be cleared. */
- if ([inObject isKindOfClass:[AIListContact class]]) {
+ } else if ([inObject isKindOfClass:[AIListContact class]]) {
+ /* If a contact within a metacontact is cleared, the metacontact itself should also be cleared, as
+ * it may be depending upon this contact.This will clear us, too.
+ *
+ * If we're not in a metacontact, parentContact returns self. */
+
AIListContact *parentContact = [(AIListContact *)inObject parentContact];
if (parentContact != inObject) {
[self flushCacheForObject:parentContact];
+ } else {
+ [self flushCacheForObjectOnly:inObject];
}
}
}
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/ESObjectWithProperties.m
--- a/Frameworks/Adium Framework/Source/ESObjectWithProperties.m Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/ESObjectWithProperties.m Thu Oct 28 00:18:28 2010 -0500
@@ -333,7 +333,10 @@
*/
- (void)removeProxyObject:(id)proxyObject
{
- [proxyObjects removeObject:proxyObject];
+ if (proxyObject) {
+ [AIProxyListObject releaseProxyObject:proxyObject];
+ [proxyObjects removeObject:proxyObject];
+ }
}
@end
diff -r 43baccb79d94 -r 49190c163b12 Plugins/Bonjour/libezv/Classes/EKEzvOutgoingFileTransfer.m
--- a/Plugins/Bonjour/libezv/Classes/EKEzvOutgoingFileTransfer.m Tue Oct 26 22:16:09 2010 -0500
+++ b/Plugins/Bonjour/libezv/Classes/EKEzvOutgoingFileTransfer.m Thu Oct 28 00:18:28 2010 -0500
@@ -451,7 +451,7 @@
offset += nameLength;
unsigned long long newSize;
if ([self isDirectory]) {
- newSize = [singleSize unsignedLongLongValue];
+ newSize = (singleSize ? [singleSize unsignedLongLongValue] : 0);
} else {
newSize = [self size];
}
@@ -477,7 +477,7 @@
data = [(NSString *)[urlData valueForKey:path] retain];
[urlData removeObjectForKey:path];
}
- return data;
+ return [data autorelease];
}
- (NSString *)posixFlagsForPath:(NSString *)filePath
diff -r 43baccb79d94 -r 49190c163b12 Resources/nl.lproj/DualWindowMessageAdvanced.nib/designable.nib
--- a/Resources/nl.lproj/DualWindowMessageAdvanced.nib/designable.nib Tue Oct 26 22:16:09 2010 -0500
+++ b/Resources/nl.lproj/DualWindowMessageAdvanced.nib/designable.nib Thu Oct 28 00:18:28 2010 -0500
@@ -2,21 +2,24 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1050</int>
- <string key="IBDocument.SystemVersion">10B504</string>
- <string key="IBDocument.InterfaceBuilderVersion">732</string>
- <string key="IBDocument.AppKitVersion">1038.22</string>
- <string key="IBDocument.HIToolboxVersion">457.00</string>
+ <string key="IBDocument.SystemVersion">10F569</string>
+ <string key="IBDocument.InterfaceBuilderVersion">804</string>
+ <string key="IBDocument.AppKitVersion">1038.29</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string key="NS.object.0">732</string>
+ <string key="NS.object.0">804</string>
</object>
<array class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <integer value="144"/>
+ <integer value="6"/>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</array>
- <dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
+ <integer value="1" key="NS.object.0"/>
+ </object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="749913828">
<object class="NSCustomObject" id="458879311">
<string key="NSClassName">ESDualWindowMessageAdvancedPreferences</string>
@@ -34,7 +37,7 @@
<object class="NSButton" id="501551425">
<reference key="NSNextResponder" ref="684276185"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{0, 116}, {160, 18}}</string>
+ <string key="NSFrame">{{2, 156}, {160, 18}}</string>
<reference key="NSSuperview" ref="684276185"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="170696536">
@@ -65,7 +68,7 @@
<object class="NSBox" id="102668372">
<reference key="NSNextResponder" ref="684276185"/>
<int key="NSvFlags">266</int>
- <string key="NSFrame">{{3, 137}, {325, 5}}</string>
+ <string key="NSFrame">{{5, 177}, {325, 5}}</string>
<reference key="NSSuperview" ref="684276185"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
@@ -99,7 +102,7 @@
<object class="NSTextField" id="931381967">
<reference key="NSNextResponder" ref="684276185"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{0, 139}, {344, 14}}</string>
+ <string key="NSFrame">{{2, 179}, {344, 14}}</string>
<reference key="NSSuperview" ref="684276185"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="802721229">
@@ -118,7 +121,7 @@
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes>
+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="487518786">
@@ -135,7 +138,7 @@
<object class="NSBox" id="615511167">
<reference key="NSNextResponder" ref="684276185"/>
<int key="NSvFlags">266</int>
- <string key="NSFrame">{{3, 74}, {325, 5}}</string>
+ <string key="NSFrame">{{5, 114}, {325, 5}}</string>
<reference key="NSSuperview" ref="684276185"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
@@ -157,7 +160,7 @@
<object class="NSTextField" id="439440325">
<reference key="NSNextResponder" ref="684276185"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{0, 76}, {344, 14}}</string>
+ <string key="NSFrame">{{2, 116}, {344, 14}}</string>
<reference key="NSSuperview" ref="684276185"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="325319321">
@@ -173,7 +176,7 @@
<object class="NSPopUpButton" id="869969110">
<reference key="NSNextResponder" ref="684276185"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{158, 5}, {163, 22}}</string>
+ <string key="NSFrame">{{160, 45}, {163, 22}}</string>
<reference key="NSSuperview" ref="684276185"/>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="367737096">
@@ -227,7 +230,7 @@
<object class="NSTextField" id="1016349117">
<reference key="NSNextResponder" ref="684276185"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{0, 10}, {156, 14}}</string>
+ <string key="NSFrame">{{2, 50}, {156, 14}}</string>
<reference key="NSSuperview" ref="684276185"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="801960573">
@@ -243,7 +246,7 @@
<object class="NSButton" id="695598467">
<reference key="NSNextResponder" ref="684276185"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{0, 52}, {304, 18}}</string>
+ <string key="NSFrame">{{2, 92}, {304, 18}}</string>
<reference key="NSSuperview" ref="684276185"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="1048614015">
@@ -262,32 +265,10 @@
<int key="NSPeriodicInterval">25</int>
</object>
</object>
- <object class="NSButton" id="907132751">
- <reference key="NSNextResponder" ref="684276185"/>
- <int key="NSvFlags">268</int>
- <string key="NSFrame">{{0, 96}, {261, 18}}</string>
- <reference key="NSSuperview" ref="684276185"/>
- <bool key="NSEnabled">YES</bool>
- <object class="NSButtonCell" key="NSCell" id="407180442">
- <int key="NSCellFlags">67239424</int>
- <int key="NSCellFlags2">131072</int>
- <string key="NSContents">Toon aantal niet-gelezen berichten in tabs</string>
- <reference key="NSSupport" ref="26"/>
- <reference key="NSControlView" ref="907132751"/>
- <int key="NSButtonFlags">1211912703</int>
- <int key="NSButtonFlags2">2</int>
- <reference key="NSNormalImage" ref="426498367"/>
- <reference key="NSAlternateImage" ref="214029560"/>
- <string key="NSAlternateContents"/>
- <string key="NSKeyEquivalent"/>
- <int key="NSPeriodicDelay">200</int>
- <int key="NSPeriodicInterval">25</int>
- </object>
- </object>
<object class="NSButton" id="71452218">
<reference key="NSNextResponder" ref="684276185"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{0, 32}, {313, 18}}</string>
+ <string key="NSFrame">{{2, 72}, {313, 18}}</string>
<reference key="NSSuperview" ref="684276185"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="377567175">
@@ -500,7 +481,7 @@
<object class="NSButton" id="187211061">
<reference key="NSNextResponder" ref="732100562"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{16, 88}, {136, 18}}</string>
+ <string key="NSFrame">{{19, 88}, {136, 18}}</string>
<reference key="NSSuperview" ref="732100562"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="357689999">
@@ -522,7 +503,7 @@
<object class="NSTextField" id="496435950">
<reference key="NSNextResponder" ref="732100562"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{0, 68}, {151, 14}}</string>
+ <string key="NSFrame">{{3, 68}, {151, 14}}</string>
<reference key="NSSuperview" ref="732100562"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="618144508">
@@ -538,7 +519,7 @@
<object class="NSTextField" id="856616330">
<reference key="NSNextResponder" ref="732100562"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{0, 46}, {151, 14}}</string>
+ <string key="NSFrame">{{3, 46}, {151, 14}}</string>
<reference key="NSSuperview" ref="732100562"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="92956597">
@@ -551,6 +532,28 @@
<reference key="NSTextColor" ref="487518786"/>
</object>
</object>
+ <object class="NSButton" id="1018222351">
+ <reference key="NSNextResponder" ref="732100562"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{19, 15}, {261, 18}}</string>
+ <reference key="NSSuperview" ref="732100562"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="404558100">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">131072</int>
+ <string key="NSContents">Toon aantal niet-gelezen berichten in tabs</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="1018222351"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">2</int>
+ <reference key="NSNormalImage" ref="426498367"/>
+ <reference key="NSAlternateImage" ref="214029560"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
</array>
<string key="NSFrame">{{10, 33}, {315, 107}}</string>
<reference key="NSSuperview" ref="933941904"/>
@@ -568,7 +571,7 @@
<object class="NSButton" id="979997882">
<reference key="NSNextResponder" ref="935875275"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{14, 2}, {286, 18}}</string>
+ <string key="NSFrame">{{34, 3}, {286, 18}}</string>
<reference key="NSSuperview" ref="935875275"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="823630721">
@@ -587,6 +590,82 @@
<int key="NSPeriodicInterval">25</int>
</object>
</object>
+ <object class="NSButton" id="151575702">
+ <reference key="NSNextResponder" ref="935875275"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{19, 89}, {136, 18}}</string>
+ <reference key="NSSuperview" ref="935875275"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="669352452">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">131072</int>
+ <string key="NSContents">Ander formaat naam:</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="151575702"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">2</int>
+ <reference key="NSNormalImage" ref="426498367"/>
+ <reference key="NSAlternateImage" ref="214029560"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSTextField" id="1037461074">
+ <reference key="NSNextResponder" ref="935875275"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{3, 69}, {151, 14}}</string>
+ <reference key="NSSuperview" ref="935875275"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="601465">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">71303168</int>
+ <string key="NSContents">Opmaak tijdmarkering:</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="1037461074"/>
+ <reference key="NSBackgroundColor" ref="123382552"/>
+ <reference key="NSTextColor" ref="487518786"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="75016505">
+ <reference key="NSNextResponder" ref="935875275"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{3, 47}, {151, 14}}</string>
+ <reference key="NSSuperview" ref="935875275"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="976256069">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">71303168</int>
+ <string key="NSContents">Minimum lettergrootte:</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="75016505"/>
+ <reference key="NSBackgroundColor" ref="123382552"/>
+ <reference key="NSTextColor" ref="487518786"/>
+ </object>
+ </object>
+ <object class="NSButton" id="907132751">
+ <reference key="NSNextResponder" ref="935875275"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{19, 23}, {261, 18}}</string>
+ <reference key="NSSuperview" ref="935875275"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="407180442">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">131072</int>
+ <string key="NSContents">Toon aantal niet-gelezen berichten in tabs</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="907132751"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">2</int>
+ <reference key="NSNormalImage" ref="426498367"/>
+ <reference key="NSAlternateImage" ref="214029560"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
</array>
<string key="NSFrame">{{10, 33}, {315, 107}}</string>
</object>
@@ -825,6 +904,22 @@
</object>
<int key="connectionID">210</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">changePreference:</string>
+ <reference key="source" ref="458879311"/>
+ <reference key="destination" ref="151575702"/>
+ </object>
+ <int key="connectionID">234</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">changePreference:</string>
+ <reference key="source" ref="458879311"/>
+ <reference key="destination" ref="1018222351"/>
+ </object>
+ <int key="connectionID">237</int>
+ </object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
@@ -856,20 +951,19 @@
<int key="objectID">6</int>
<reference key="object" ref="684276185"/>
<array class="NSMutableArray" key="children">
- <reference ref="501551425"/>
- <reference ref="102668372"/>
- <reference ref="931381967"/>
- <reference ref="615511167"/>
- <reference ref="439440325"/>
- <reference ref="869969110"/>
- <reference ref="1016349117"/>
- <reference ref="695598467"/>
- <reference ref="907132751"/>
- <reference ref="71452218"/>
<reference ref="933941904"/>
<reference ref="321287921"/>
<reference ref="848760528"/>
<reference ref="605835708"/>
+ <reference ref="71452218"/>
+ <reference ref="695598467"/>
+ <reference ref="1016349117"/>
+ <reference ref="869969110"/>
+ <reference ref="439440325"/>
+ <reference ref="615511167"/>
+ <reference ref="931381967"/>
+ <reference ref="102668372"/>
+ <reference ref="501551425"/>
</array>
<reference key="parent" ref="0"/>
<string key="objectName">Messages</string>
@@ -957,14 +1051,6 @@
<reference key="parent" ref="684276185"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">95</int>
- <reference key="object" ref="907132751"/>
- <array class="NSMutableArray" key="children">
- <reference ref="407180442"/>
- </array>
- <reference key="parent" ref="684276185"/>
- </object>
- <object class="IBObjectRecord">
<int key="objectID">119</int>
<reference key="object" ref="71452218"/>
<array class="NSMutableArray" key="children">
@@ -993,9 +1079,10 @@
<int key="objectID">144</int>
<reference key="object" ref="732100562"/>
<array class="NSMutableArray" key="children">
+ <reference ref="187211061"/>
+ <reference ref="496435950"/>
<reference ref="856616330"/>
- <reference ref="496435950"/>
- <reference ref="187211061"/>
+ <reference ref="1018222351"/>
</array>
<reference key="parent" ref="347716867"/>
</object>
@@ -1011,19 +1098,15 @@
<int key="objectID">143</int>
<reference key="object" ref="935875275"/>
<array class="NSMutableArray" key="children">
+ <reference ref="151575702"/>
+ <reference ref="1037461074"/>
+ <reference ref="75016505"/>
+ <reference ref="907132751"/>
<reference ref="979997882"/>
</array>
<reference key="parent" ref="715450966"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">207</int>
- <reference key="object" ref="979997882"/>
- <array class="NSMutableArray" key="children">
- <reference ref="823630721"/>
- </array>
- <reference key="parent" ref="935875275"/>
- </object>
- <object class="IBObjectRecord">
<int key="objectID">167</int>
<reference key="object" ref="321287921"/>
<array class="NSMutableArray" key="children">
@@ -1081,21 +1164,11 @@
<reference key="parent" ref="695598467"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">219</int>
- <reference key="object" ref="407180442"/>
- <reference key="parent" ref="907132751"/>
- </object>
- <object class="IBObjectRecord">
<int key="objectID">220</int>
<reference key="object" ref="377567175"/>
<reference key="parent" ref="71452218"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">221</int>
- <reference key="object" ref="823630721"/>
- <reference key="parent" ref="979997882"/>
- </object>
- <object class="IBObjectRecord">
<int key="objectID">223</int>
<reference key="object" ref="81862121"/>
<array class="NSMutableArray" key="children">
@@ -1228,6 +1301,84 @@
<reference key="object" ref="92956597"/>
<reference key="parent" ref="856616330"/>
</object>
+ <object class="IBObjectRecord">
+ <int key="objectID">228</int>
+ <reference key="object" ref="151575702"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="669352452"/>
+ </array>
+ <reference key="parent" ref="935875275"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">229</int>
+ <reference key="object" ref="1037461074"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="601465"/>
+ </array>
+ <reference key="parent" ref="935875275"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">230</int>
+ <reference key="object" ref="75016505"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="976256069"/>
+ </array>
+ <reference key="parent" ref="935875275"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">231</int>
+ <reference key="object" ref="976256069"/>
+ <reference key="parent" ref="75016505"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">232</int>
+ <reference key="object" ref="601465"/>
+ <reference key="parent" ref="1037461074"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">233</int>
+ <reference key="object" ref="669352452"/>
+ <reference key="parent" ref="151575702"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">207</int>
+ <reference key="object" ref="979997882"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="823630721"/>
+ </array>
+ <reference key="parent" ref="935875275"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">221</int>
+ <reference key="object" ref="823630721"/>
+ <reference key="parent" ref="979997882"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">95</int>
+ <reference key="object" ref="907132751"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="407180442"/>
+ </array>
+ <reference key="parent" ref="935875275"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">219</int>
+ <reference key="object" ref="407180442"/>
+ <reference key="parent" ref="907132751"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">235</int>
+ <reference key="object" ref="1018222351"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="404558100"/>
+ </array>
+ <reference key="parent" ref="732100562"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">236</int>
+ <reference key="object" ref="404558100"/>
+ <reference key="parent" ref="1018222351"/>
+ </object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@@ -1235,6 +1386,9 @@
<boolean value="YES" key="-3.ImportedFromIB2"/>
<string key="119.CustomClassName">AILocalizationButton</string>
<string key="119.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform" key="119.IBViewBoundsToFrameTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAwkAAAA</bytes>
+ </object>
<boolean value="YES" key="119.ImportedFromIB2"/>
<string key="140.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="140.ImportedFromIB2"/>
@@ -1247,6 +1401,9 @@
<string key="144.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="144.ImportedFromIB2"/>
<string key="166.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform" key="166.IBViewBoundsToFrameTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBgAAAwtAAAA</bytes>
+ </object>
<boolean value="YES" key="166.ImportedFromIB2"/>
<string key="167.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="167.ImportedFromIB2"/>
@@ -1255,8 +1412,14 @@
<string key="169.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="169.ImportedFromIB2"/>
<string key="170.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform" key="170.IBViewBoundsToFrameTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAwqAAAA</bytes>
+ </object>
<boolean value="YES" key="170.ImportedFromIB2"/>
<string key="171.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform" key="171.IBViewBoundsToFrameTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABAQAAAwmgAAA</bytes>
+ </object>
<boolean value="YES" key="171.ImportedFromIB2"/>
<string key="175.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="175.ImportedFromIB2"/>
@@ -1277,6 +1440,9 @@
<string key="185.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="185.ImportedFromIB2"/>
<string key="207.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform" key="207.IBViewBoundsToFrameTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBYAAAwZAAAA</bytes>
+ </object>
<boolean value="YES" key="207.ImportedFromIB2"/>
<string key="213.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="214.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1293,44 +1459,95 @@
<string key="225.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="226.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="227.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="228.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform" key="228.IBViewBoundsToFrameTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBIAAAwtIAAA</bytes>
+ </object>
+ <boolean value="YES" key="228.ImportedFromIB2"/>
+ <string key="229.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform" key="229.IBViewBoundsToFrameTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAADAwAAAwqIAAA</bytes>
+ </object>
+ <boolean value="YES" key="229.ImportedFromIB2"/>
+ <string key="230.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform" key="230.IBViewBoundsToFrameTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAADAwAAAwmwAAA</bytes>
+ </object>
+ <boolean value="YES" key="230.ImportedFromIB2"/>
+ <string key="231.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="232.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="233.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
More information about the commits
mailing list