aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AppKit/GTMUILocalizerAndLayoutTweaker.m41
-rw-r--r--AppKit/GTMUILocalizerAndLayoutTweakerTest.m24
-rw-r--r--AppKit/GTMUILocalizerAndLayoutTweakerTest4.xib1504
-rw-r--r--AppKit/GTMUILocalizerTest.h2
-rw-r--r--AppKit/GTMUILocalizerTest.m9
-rw-r--r--AppKit/GTMUILocalizerTestWindow.xib692
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-0.tiffbin29342 -> 29350 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-1.tiffbin25084 -> 25452 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-2.tiffbin25580 -> 25574 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-0.10_4_SDK.tiffbin0 -> 29136 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-0.tiffbin0 -> 30114 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-1.10_4_SDK.tiffbin0 -> 39946 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-1.tiffbin0 -> 40706 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-2.10_4_SDK.tiffbin0 -> 27478 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-2.tiffbin0 -> 28468 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerWindow3State.gtmUTState304
-rw-r--r--AppKit/TestData/Resources/English.lproj/Localizable.strings1
-rw-r--r--GTM.xcodeproj/project.pbxproj32
-rw-r--r--ReleaseNotes.txt9
-rw-r--r--UnitTesting/GTMAppKit+UnitTesting.m20
-rw-r--r--UnitTesting/GTMNSObject+UnitTesting.h32
-rw-r--r--UnitTesting/GTMNSObject+UnitTesting.m83
22 files changed, 2691 insertions, 62 deletions
diff --git a/AppKit/GTMUILocalizerAndLayoutTweaker.m b/AppKit/GTMUILocalizerAndLayoutTweaker.m
index b8c6499..91c6ffc 100644
--- a/AppKit/GTMUILocalizerAndLayoutTweaker.m
+++ b/AppKit/GTMUILocalizerAndLayoutTweaker.m
@@ -26,7 +26,7 @@
static NSSize SizeToFit(NSView *view, NSPoint offset);
// Compare function for -[NSArray sortedArrayUsingFunction:context:]
static NSInteger CompareFrameX(id view1, id view2, void *context);
-// Check if the view is anchored on the right (fixed right, flexable left).
+// Check if the view is anchored on the right (fixed right, flexible left).
static BOOL IsRightAnchored(NSView *view);
@interface GTMUILocalizerAndLayoutTweaker (PrivateMethods)
@@ -122,9 +122,13 @@ static BOOL IsRightAnchored(NSView *view);
NSMutableArray *rightAlignedSubViews = nil;
NSMutableArray *rightAlignedSubViewDeltas = nil;
if ([subviews count] > 1) {
- // Do they share left edges (within a pixel)
- if (fabs(NSMinX([[subviews objectAtIndex:0] frame]) -
- NSMinX([[subviews objectAtIndex:1] frame])) > 1.0) {
+ // Check if the frames are in a row by seeing if when they are left aligned
+ // they overlap. If they don't overlap in this case, it means they are
+ // probably stacked instead.
+ NSRect rect1 = [[subviews objectAtIndex:0] frame];
+ NSRect rect2 = [[subviews objectAtIndex:1] frame];
+ rect1.origin.x = rect2.origin.x = 0;
+ if (NSIntersectsRect(rect1, rect2)) {
// No, so walk them x order moving them along so they don't overlap.
sumMode = YES;
subviews = [subviews sortedArrayUsingFunction:CompareFrameX context:NULL];
@@ -259,7 +263,6 @@ static NSSize SizeToFit(NSView *view, NSPoint offset) {
// to what is in them as they are for users to enter things so honor their
// current size.
} else {
-
// Genericaly fire a sizeToFit if it has one.
if ([view respondsToSelector:@selector(sizeToFit)]) {
[view performSelector:@selector(sizeToFit)];
@@ -267,19 +270,23 @@ static NSSize SizeToFit(NSView *view, NSPoint offset) {
newFrame = fitFrame;
}
- // -[NSButton sizeToFit] gives much worse results than IB's Size to Fit
- // option. This is the amount of padding IB adds over a sizeToFit,
- // empirically determined.
- // TODO: We need to check the type of button before doing this.
if ([view isKindOfClass:[NSButton class]]) {
- const float kExtraPaddingAmount = 12;
- // Width is tricky, new buttons in IB are 96 wide, Carbon seems to have
- // defaulted to 70, Cocoa seems to like 82. But we go with 96 since
- // that's what IB is doing these days.
- const float kMinButtonWidth = 96;
- newFrame.size.width = NSWidth(newFrame) + kExtraPaddingAmount;
- if (NSWidth(newFrame) < kMinButtonWidth) {
- newFrame.size.width = kMinButtonWidth;
+ NSButton *button = (NSButton *)view;
+ // -[NSButton sizeToFit] gives much worse results than IB's Size to Fit
+ // option for standard push buttons.
+ if (([button bezelStyle] == NSRoundedBezelStyle) &&
+ ([[button cell] controlSize] == NSRegularControlSize)) {
+ // This is the amount of padding IB adds over a sizeToFit, empirically
+ // determined.
+ const CGFloat kExtraPaddingAmount = 12.0;
+ // Width is tricky, new buttons in IB are 96 wide, Carbon seems to have
+ // defaulted to 70, Cocoa seems to like 82. But we go with 96 since
+ // that's what IB is doing these days.
+ const CGFloat kMinButtonWidth = (CGFloat)96.0;
+ newFrame.size.width = NSWidth(newFrame) + kExtraPaddingAmount;
+ if (NSWidth(newFrame) < kMinButtonWidth) {
+ newFrame.size.width = kMinButtonWidth;
+ }
}
}
}
diff --git a/AppKit/GTMUILocalizerAndLayoutTweakerTest.m b/AppKit/GTMUILocalizerAndLayoutTweakerTest.m
index e6320d5..dc75cd0 100644
--- a/AppKit/GTMUILocalizerAndLayoutTweakerTest.m
+++ b/AppKit/GTMUILocalizerAndLayoutTweakerTest.m
@@ -27,6 +27,7 @@ static NSUInteger gTestPass = 0;
@end
@implementation GTMUILocalizerAndLayoutTweakerTest
+
- (void)testWindowLocalization {
// Test with nib 1
for (gTestPass = 0; gTestPass < 3; ++gTestPass) {
@@ -100,6 +101,29 @@ static NSUInteger gTestPass = 0;
}
}
+- (void)testButtonStyleLocalizations {
+ // Since we special case standard push buttons, test all button types.
+
+ // This also tests the vertical vs. horizontal layout code on widthbox, if
+ // you look at the xib in IB, turn on the bounds rectagle display, and you'll
+ // see how IB's left alignment is a visual alignment, it doesn't actually
+ // align the bounds of the views.
+
+ for (gTestPass = 0; gTestPass < 3; ++gTestPass) {
+ GTMUILocalizerAndLayoutTweakerTestWindowController *controller =
+ [[GTMUILocalizerAndLayoutTweakerTestWindowController alloc]
+ initWithWindowNibName:@"GTMUILocalizerAndLayoutTweakerTest4"];
+ NSWindow *window = [controller window];
+ STAssertNotNil(window, @"Pass %ld", (long)gTestPass);
+ NSString *imageName =
+ [NSString stringWithFormat:@"GTMUILocalizerAndLayoutTweakerTest4-%ld",
+ (long)gTestPass];
+ GTMAssertObjectImageEqualToImageNamed(window, imageName,
+ @"Pass %ld", (long)gTestPass);
+ [controller release];
+ }
+}
+
@end
@implementation GTMUILocalizerAndLayoutTweakerTestWindowController
diff --git a/AppKit/GTMUILocalizerAndLayoutTweakerTest4.xib b/AppKit/GTMUILocalizerAndLayoutTweakerTest4.xib
new file mode 100644
index 0000000..f4dc23a
--- /dev/null
+++ b/AppKit/GTMUILocalizerAndLayoutTweakerTest4.xib
@@ -0,0 +1,1504 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
+ <data>
+ <int key="IBDocument.SystemTarget">1050</int>
+ <string key="IBDocument.SystemVersion">9L30</string>
+ <string key="IBDocument.InterfaceBuilderVersion">677</string>
+ <string key="IBDocument.AppKitVersion">949.54</string>
+ <string key="IBDocument.HIToolboxVersion">353.00</string>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="189"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilderKit</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomObject" id="1001">
+ <string key="NSClassName">GTMUILocalizerAndLayoutTweakerTestWindowController</string>
+ </object>
+ <object class="NSCustomObject" id="1003">
+ <string key="NSClassName">FirstResponder</string>
+ </object>
+ <object class="NSCustomObject" id="1004">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSWindowTemplate" id="1005">
+ <int key="NSWindowStyleMask">15</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{71, 158}, {734, 294}}</string>
+ <int key="NSWTFlags">536870912</int>
+ <string key="NSWindowTitle">Window</string>
+ <string key="NSWindowClass">NSWindow</string>
+ <nil key="NSViewClass"/>
+ <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
+ <object class="NSView" key="NSWindowView" id="1006">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomView" id="186508408">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSButton" id="282236995">
+ <reference key="NSNextResponder" ref="186508408"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{18, 39}, {96, 18}}</string>
+ <reference key="NSSuperview" ref="186508408"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="915137544">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">W:4:12</string>
+ <object class="NSFont" key="NSSupport" id="396891173">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">1.300000e+01</double>
+ <int key="NSfFlags">1044</int>
+ </object>
+ <reference key="NSControlView" ref="282236995"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <object class="NSCustomResource" key="NSNormalImage" id="356175074">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSSwitch</string>
+ </object>
+ <object class="NSButtonImageSource" key="NSAlternateImage" id="644707509">
+ <string key="NSImageName">NSSwitch</string>
+ </object>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSButton" id="926864482">
+ <reference key="NSNextResponder" ref="186508408"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 146}, {96, 19}}</string>
+ <reference key="NSSuperview" ref="186508408"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="30129164">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">W:4:12</string>
+ <object class="NSFont" key="NSSupport">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">1.200000e+01</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <reference key="NSControlView" ref="926864482"/>
+ <int key="NSButtonFlags">-2038152961</int>
+ <int key="NSButtonFlags2">164</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="901343433">
+ <reference key="NSNextResponder" ref="186508408"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 121}, {96, 19}}</string>
+ <reference key="NSSuperview" ref="186508408"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="726270594">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">W:4:12</string>
+ <object class="NSFont" key="NSSupport" id="29">
+ <string key="NSName">LucidaGrande-Bold</string>
+ <double key="NSSize">1.200000e+01</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <reference key="NSControlView" ref="901343433"/>
+ <int key="NSButtonFlags">-1232846593</int>
+ <int key="NSButtonFlags2">173</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="718453267">
+ <reference key="NSNextResponder" ref="186508408"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 62}, {96, 25}}</string>
+ <reference key="NSSuperview" ref="186508408"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="768260201">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="718453267"/>
+ <int key="NSButtonFlags">-2038152961</int>
+ <int key="NSButtonFlags2">163</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="428327311">
+ <reference key="NSNextResponder" ref="186508408"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{18, 18}, {96, 18}}</string>
+ <reference key="NSSuperview" ref="186508408"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="931469600">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="428327311"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <object class="NSCustomResource" key="NSNormalImage" id="946414658">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSRadioButton</string>
+ </object>
+ <object class="NSButtonImageSource" key="NSAlternateImage" id="520966901">
+ <string key="NSImageName">NSRadioButton</string>
+ </object>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSButton" id="690891717">
+ <reference key="NSNextResponder" ref="186508408"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{19, 89}, {96, 27}}</string>
+ <reference key="NSSuperview" ref="186508408"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="370980038">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="690891717"/>
+ <int key="NSButtonFlags">-2033434369</int>
+ <int key="NSButtonFlags2">160</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="976354130">
+ <reference key="NSNextResponder" ref="186508408"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 172}, {96, 23}}</string>
+ <reference key="NSSuperview" ref="186508408"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="122843690">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="976354130"/>
+ <int key="NSButtonFlags">-2033434369</int>
+ <int key="NSButtonFlags2">162</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="766045322">
+ <reference key="NSNextResponder" ref="186508408"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{14, 196}, {96, 32}}</string>
+ <reference key="NSSuperview" ref="186508408"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="937754903">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="766045322"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">129</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrame">{{0, 50}, {136, 244}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <string key="NSClassName">GTMWidthBasedTweaker</string>
+ </object>
+ <object class="NSCustomView" id="845619860">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSButton" id="367073018">
+ <reference key="NSNextResponder" ref="845619860"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 62}, {96, 25}}</string>
+ <reference key="NSSuperview" ref="845619860"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="548617494">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134348800</int>
+ <string key="NSContents">W:4:12</string>
+ <object class="NSFont" key="NSSupport" id="26">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">1.100000e+01</double>
+ <int key="NSfFlags">3100</int>
+ </object>
+ <reference key="NSControlView" ref="367073018"/>
+ <int key="NSButtonFlags">-2038152961</int>
+ <int key="NSButtonFlags2">163</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="878016587">
+ <reference key="NSNextResponder" ref="845619860"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{15, 200}, {96, 28}}</string>
+ <reference key="NSSuperview" ref="845619860"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="273592344">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134348800</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="878016587"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">129</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSButton" id="884127310">
+ <reference key="NSNextResponder" ref="845619860"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 98}, {96, 18}}</string>
+ <reference key="NSSuperview" ref="845619860"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="888888012">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134348800</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="884127310"/>
+ <int key="NSButtonFlags">-2033434369</int>
+ <int key="NSButtonFlags2">160</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="487675374">
+ <reference key="NSNextResponder" ref="845619860"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 123}, {96, 17}}</string>
+ <reference key="NSSuperview" ref="845619860"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="320493531">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134348800</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="29"/>
+ <reference key="NSControlView" ref="487675374"/>
+ <int key="NSButtonFlags">-1232846593</int>
+ <int key="NSButtonFlags2">173</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="406151598">
+ <reference key="NSNextResponder" ref="845619860"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 39}, {96, 18}}</string>
+ <reference key="NSSuperview" ref="845619860"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="640662364">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">131072</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="406151598"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <reference key="NSNormalImage" ref="356175074"/>
+ <reference key="NSAlternateImage" ref="644707509"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSButton" id="522534662">
+ <reference key="NSNextResponder" ref="845619860"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 148}, {96, 17}}</string>
+ <reference key="NSSuperview" ref="845619860"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="693160776">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134348800</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="522534662"/>
+ <int key="NSButtonFlags">-2038152961</int>
+ <int key="NSButtonFlags2">164</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="905113063">
+ <reference key="NSNextResponder" ref="845619860"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 172}, {96, 23}}</string>
+ <reference key="NSSuperview" ref="845619860"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="130877018">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134348800</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="905113063"/>
+ <int key="NSButtonFlags">-2033434369</int>
+ <int key="NSButtonFlags2">162</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="8663780">
+ <reference key="NSNextResponder" ref="845619860"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{18, 18}, {96, 18}}</string>
+ <reference key="NSSuperview" ref="845619860"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="54593915">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">131072</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="8663780"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <reference key="NSNormalImage" ref="946414658"/>
+ <reference key="NSAlternateImage" ref="520966901"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrame">{{242, 50}, {137, 244}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <string key="NSClassName">GTMWidthBasedTweaker</string>
+ </object>
+ <object class="NSCustomView" id="305521052">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSButton" id="1060251717">
+ <reference key="NSNextResponder" ref="305521052"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 170}, {96, 23}}</string>
+ <reference key="NSSuperview" ref="305521052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="25568552">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134479872</int>
+ <string key="NSContents">W:4:12</string>
+ <object class="NSFont" key="NSSupport" id="22">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">9.000000e+00</double>
+ <int key="NSfFlags">3614</int>
+ </object>
+ <reference key="NSControlView" ref="1060251717"/>
+ <int key="NSButtonFlags">-2033434369</int>
+ <int key="NSButtonFlags2">162</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="487957489">
+ <reference key="NSNextResponder" ref="305521052"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 121}, {96, 17}}</string>
+ <reference key="NSSuperview" ref="305521052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="487051093">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134479872</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="487957489"/>
+ <int key="NSButtonFlags">-1232846593</int>
+ <int key="NSButtonFlags2">173</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="440594617">
+ <reference key="NSNextResponder" ref="305521052"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{16, 37}, {96, 18}}</string>
+ <reference key="NSSuperview" ref="305521052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="577127578">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">262144</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="440594617"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <reference key="NSNormalImage" ref="356175074"/>
+ <reference key="NSAlternateImage" ref="644707509"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSButton" id="969909786">
+ <reference key="NSNextResponder" ref="305521052"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 60}, {96, 25}}</string>
+ <reference key="NSSuperview" ref="305521052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="930680615">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134479872</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="969909786"/>
+ <int key="NSButtonFlags">-2038152961</int>
+ <int key="NSButtonFlags2">163</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="71893445">
+ <reference key="NSNextResponder" ref="305521052"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{19, 210}, {96, 16}}</string>
+ <reference key="NSSuperview" ref="305521052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="495713873">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134479872</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="71893445"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">129</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSButton" id="401241950">
+ <reference key="NSNextResponder" ref="305521052"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 146}, {96, 17}}</string>
+ <reference key="NSSuperview" ref="305521052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="449798413">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134479872</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="401241950"/>
+ <int key="NSButtonFlags">-2038152961</int>
+ <int key="NSButtonFlags2">164</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="159119224">
+ <reference key="NSNextResponder" ref="305521052"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{19, 96}, {96, 18}}</string>
+ <reference key="NSSuperview" ref="305521052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="162457844">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134479872</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="159119224"/>
+ <int key="NSButtonFlags">-2033434369</int>
+ <int key="NSButtonFlags2">160</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="917362581">
+ <reference key="NSNextResponder" ref="305521052"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{16, 16}, {96, 18}}</string>
+ <reference key="NSSuperview" ref="305521052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="482221767">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">262144</int>
+ <string key="NSContents">W:4:12</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="917362581"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <reference key="NSNormalImage" ref="946414658"/>
+ <reference key="NSAlternateImage" ref="520966901"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrame">{{475, 48}, {141, 246}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <string key="NSClassName">GTMWidthBasedTweaker</string>
+ </object>
+ </object>
+ <string key="NSFrameSize">{734, 294}</string>
+ <reference key="NSSuperview"/>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
+ <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+ </object>
+ <object class="NSCustomObject" id="431527667">
+ <string key="NSClassName">GTMUILocalizerAndLayoutTweaker</string>
+ </object>
+ <object class="NSCustomObject" id="730292222">
+ <string key="NSClassName">GTMUILocalizerAndLayoutTweakerTestLocalizer</string>
+ </object>
+ <object class="NSButton" id="870318376">
+ <nil key="NSNextResponder"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrameSize">{154, 17}</string>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="576384409">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134348800</int>
+ <string key="NSContents">Recessed Button</string>
+ <reference key="NSSupport" ref="29"/>
+ <reference key="NSControlView" ref="870318376"/>
+ <int key="NSButtonFlags">-1232846593</int>
+ <int key="NSButtonFlags2">173</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="587069052">
+ <nil key="NSNextResponder"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrameSize">{154, 17}</string>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="246372967">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134348800</int>
+ <string key="NSContents">Recessed Button</string>
+ <reference key="NSSupport" ref="29"/>
+ <reference key="NSControlView" ref="587069052"/>
+ <int key="NSButtonFlags">-1232846593</int>
+ <int key="NSButtonFlags2">173</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">localizer_</string>
+ <reference key="source" ref="431527667"/>
+ <reference key="destination" ref="730292222"/>
+ </object>
+ <int key="connectionID">118</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">window</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="1005"/>
+ </object>
+ <int key="connectionID">119</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">uiObject_</string>
+ <reference key="source" ref="431527667"/>
+ <reference key="destination" ref="1005"/>
+ </object>
+ <int key="connectionID">193</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <object class="NSArray" key="object" id="1002">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="1001"/>
+ <reference key="parent" ref="1002"/>
+ <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="1003"/>
+ <reference key="parent" ref="1002"/>
+ <string key="objectName">First Responder</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-3</int>
+ <reference key="object" ref="1004"/>
+ <reference key="parent" ref="1002"/>
+ <string key="objectName">Application</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="1005"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1006"/>
+ </object>
+ <reference key="parent" ref="1002"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="1006"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="186508408"/>
+ <reference ref="845619860"/>
+ <reference ref="305521052"/>
+ </object>
+ <reference key="parent" ref="1005"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">35</int>
+ <reference key="object" ref="431527667"/>
+ <reference key="parent" ref="1002"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">117</int>
+ <reference key="object" ref="730292222"/>
+ <reference key="parent" ref="1002"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">188</int>
+ <reference key="object" ref="186508408"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="282236995"/>
+ <reference ref="926864482"/>
+ <reference ref="901343433"/>
+ <reference ref="718453267"/>
+ <reference ref="428327311"/>
+ <reference ref="690891717"/>
+ <reference ref="976354130"/>
+ <reference ref="766045322"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">176</int>
+ <reference key="object" ref="282236995"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="915137544"/>
+ </object>
+ <reference key="parent" ref="186508408"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">177</int>
+ <reference key="object" ref="915137544"/>
+ <reference key="parent" ref="282236995"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">124</int>
+ <reference key="object" ref="926864482"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="30129164"/>
+ </object>
+ <reference key="parent" ref="186508408"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">125</int>
+ <reference key="object" ref="30129164"/>
+ <reference key="parent" ref="926864482"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">128</int>
+ <reference key="object" ref="901343433"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="726270594"/>
+ </object>
+ <reference key="parent" ref="186508408"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">129</int>
+ <reference key="object" ref="726270594"/>
+ <reference key="parent" ref="901343433"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">136</int>
+ <reference key="object" ref="718453267"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="768260201"/>
+ </object>
+ <reference key="parent" ref="186508408"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">137</int>
+ <reference key="object" ref="768260201"/>
+ <reference key="parent" ref="718453267"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">182</int>
+ <reference key="object" ref="428327311"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="931469600"/>
+ </object>
+ <reference key="parent" ref="186508408"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">187</int>
+ <reference key="object" ref="931469600"/>
+ <reference key="parent" ref="428327311"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">132</int>
+ <reference key="object" ref="690891717"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="370980038"/>
+ </object>
+ <reference key="parent" ref="186508408"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">133</int>
+ <reference key="object" ref="370980038"/>
+ <reference key="parent" ref="690891717"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">120</int>
+ <reference key="object" ref="976354130"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="122843690"/>
+ </object>
+ <reference key="parent" ref="186508408"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">121</int>
+ <reference key="object" ref="122843690"/>
+ <reference key="parent" ref="976354130"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">189</int>
+ <reference key="object" ref="845619860"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="367073018"/>
+ <reference ref="884127310"/>
+ <reference ref="487675374"/>
+ <reference ref="406151598"/>
+ <reference ref="522534662"/>
+ <reference ref="905113063"/>
+ <reference ref="8663780"/>
+ <reference ref="878016587"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">157</int>
+ <reference key="object" ref="367073018"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="548617494"/>
+ </object>
+ <reference key="parent" ref="845619860"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">158</int>
+ <reference key="object" ref="548617494"/>
+ <reference key="parent" ref="367073018"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">152</int>
+ <reference key="object" ref="878016587"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="273592344"/>
+ </object>
+ <reference key="parent" ref="845619860"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">163</int>
+ <reference key="object" ref="273592344"/>
+ <reference key="parent" ref="878016587"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">156</int>
+ <reference key="object" ref="884127310"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="888888012"/>
+ </object>
+ <reference key="parent" ref="845619860"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">159</int>
+ <reference key="object" ref="888888012"/>
+ <reference key="parent" ref="884127310"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">155</int>
+ <reference key="object" ref="487675374"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="320493531"/>
+ </object>
+ <reference key="parent" ref="845619860"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">160</int>
+ <reference key="object" ref="320493531"/>
+ <reference key="parent" ref="487675374"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">178</int>
+ <reference key="object" ref="406151598"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="640662364"/>
+ </object>
+ <reference key="parent" ref="845619860"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">179</int>
+ <reference key="object" ref="640662364"/>
+ <reference key="parent" ref="406151598"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">154</int>
+ <reference key="object" ref="522534662"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="693160776"/>
+ </object>
+ <reference key="parent" ref="845619860"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">161</int>
+ <reference key="object" ref="693160776"/>
+ <reference key="parent" ref="522534662"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">153</int>
+ <reference key="object" ref="905113063"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="130877018"/>
+ </object>
+ <reference key="parent" ref="845619860"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">162</int>
+ <reference key="object" ref="130877018"/>
+ <reference key="parent" ref="905113063"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">183</int>
+ <reference key="object" ref="8663780"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="54593915"/>
+ </object>
+ <reference key="parent" ref="845619860"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">186</int>
+ <reference key="object" ref="54593915"/>
+ <reference key="parent" ref="8663780"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">190</int>
+ <reference key="object" ref="305521052"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1060251717"/>
+ <reference ref="487957489"/>
+ <reference ref="440594617"/>
+ <reference ref="969909786"/>
+ <reference ref="401241950"/>
+ <reference ref="159119224"/>
+ <reference ref="917362581"/>
+ <reference ref="71893445"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">165</int>
+ <reference key="object" ref="1060251717"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="25568552"/>
+ </object>
+ <reference key="parent" ref="305521052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">174</int>
+ <reference key="object" ref="25568552"/>
+ <reference key="parent" ref="1060251717"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">167</int>
+ <reference key="object" ref="487957489"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="487051093"/>
+ </object>
+ <reference key="parent" ref="305521052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">172</int>
+ <reference key="object" ref="487051093"/>
+ <reference key="parent" ref="487957489"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">180</int>
+ <reference key="object" ref="440594617"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="577127578"/>
+ </object>
+ <reference key="parent" ref="305521052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">181</int>
+ <reference key="object" ref="577127578"/>
+ <reference key="parent" ref="440594617"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">169</int>
+ <reference key="object" ref="969909786"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="930680615"/>
+ </object>
+ <reference key="parent" ref="305521052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">170</int>
+ <reference key="object" ref="930680615"/>
+ <reference key="parent" ref="969909786"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">164</int>
+ <reference key="object" ref="71893445"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="495713873"/>
+ </object>
+ <reference key="parent" ref="305521052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">175</int>
+ <reference key="object" ref="495713873"/>
+ <reference key="parent" ref="71893445"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">166</int>
+ <reference key="object" ref="401241950"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="449798413"/>
+ </object>
+ <reference key="parent" ref="305521052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">173</int>
+ <reference key="object" ref="449798413"/>
+ <reference key="parent" ref="401241950"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">168</int>
+ <reference key="object" ref="159119224"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="162457844"/>
+ </object>
+ <reference key="parent" ref="305521052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">171</int>
+ <reference key="object" ref="162457844"/>
+ <reference key="parent" ref="159119224"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">184</int>
+ <reference key="object" ref="917362581"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="482221767"/>
+ </object>
+ <reference key="parent" ref="305521052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">185</int>
+ <reference key="object" ref="482221767"/>
+ <reference key="parent" ref="917362581"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">191</int>
+ <reference key="object" ref="766045322"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="937754903"/>
+ </object>
+ <reference key="parent" ref="186508408"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">192</int>
+ <reference key="object" ref="937754903"/>
+ <reference key="parent" ref="766045322"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">210</int>
+ <reference key="object" ref="870318376"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="576384409"/>
+ </object>
+ <reference key="parent" ref="1002"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">211</int>
+ <reference key="object" ref="576384409"/>
+ <reference key="parent" ref="870318376"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">212</int>
+ <reference key="object" ref="587069052"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="246372967"/>
+ </object>
+ <reference key="parent" ref="1002"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">213</int>
+ <reference key="object" ref="246372967"/>
+ <reference key="parent" ref="587069052"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.IBPluginDependency</string>
+ <string>-2.IBPluginDependency</string>
+ <string>-3.IBPluginDependency</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>1.IBViewEditorWindowController.showingBoundsRectangles</string>
+ <string>1.IBWindowTemplateEditedContentRect</string>
+ <string>1.NSWindowTemplate.visibleAtLaunch</string>
+ <string>1.WindowOrigin</string>
+ <string>1.editorWindowContentRectSynchronizationRect</string>
+ <string>117.IBPluginDependency</string>
+ <string>120.IBPluginDependency</string>
+ <string>121.IBPluginDependency</string>
+ <string>124.IBPluginDependency</string>
+ <string>125.IBPluginDependency</string>
+ <string>128.IBPluginDependency</string>
+ <string>129.IBPluginDependency</string>
+ <string>132.IBPluginDependency</string>
+ <string>133.IBPluginDependency</string>
+ <string>136.IBPluginDependency</string>
+ <string>137.IBPluginDependency</string>
+ <string>152.IBPluginDependency</string>
+ <string>153.IBPluginDependency</string>
+ <string>154.IBPluginDependency</string>
+ <string>155.IBPluginDependency</string>
+ <string>156.IBPluginDependency</string>
+ <string>157.IBPluginDependency</string>
+ <string>158.IBPluginDependency</string>
+ <string>159.IBPluginDependency</string>
+ <string>160.IBPluginDependency</string>
+ <string>161.IBPluginDependency</string>
+ <string>162.IBPluginDependency</string>
+ <string>163.IBPluginDependency</string>
+ <string>164.IBPluginDependency</string>
+ <string>165.IBPluginDependency</string>
+ <string>166.IBPluginDependency</string>
+ <string>167.IBPluginDependency</string>
+ <string>168.IBPluginDependency</string>
+ <string>169.IBPluginDependency</string>
+ <string>170.IBPluginDependency</string>
+ <string>171.IBPluginDependency</string>
+ <string>172.IBPluginDependency</string>
+ <string>173.IBPluginDependency</string>
+ <string>174.IBPluginDependency</string>
+ <string>175.IBPluginDependency</string>
+ <string>176.IBPluginDependency</string>
+ <string>177.IBPluginDependency</string>
+ <string>178.IBPluginDependency</string>
+ <string>179.IBPluginDependency</string>
+ <string>180.IBPluginDependency</string>
+ <string>181.IBPluginDependency</string>
+ <string>182.IBPluginDependency</string>
+ <string>183.IBPluginDependency</string>
+ <string>184.IBPluginDependency</string>
+ <string>185.IBPluginDependency</string>
+ <string>186.IBPluginDependency</string>
+ <string>187.IBPluginDependency</string>
+ <string>191.IBPluginDependency</string>
+ <string>192.IBPluginDependency</string>
+ <string>2.IBPluginDependency</string>
+ <string>210.IBPluginDependency</string>
+ <string>211.IBPluginDependency</string>
+ <string>212.IBPluginDependency</string>
+ <string>213.IBPluginDependency</string>
+ <string>35.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilderKit</string>
+ <string>com.apple.InterfaceBuilderKit</string>
+ <string>{{636, 862}, {734, 294}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="NO" id="6"/>
+ <string>{{636, 862}, {734, 294}}</string>
+ <reference ref="6"/>
+ <string>{196, 240}</string>
+ <string>{{202, 428}, {480, 270}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">213</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">GTMUILocalizer</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>otherObjectToLocalize_</string>
+ <string>owner_</string>
+ <string>yetAnotherObjectToLocalize_</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AppKit/GTMUILocalizer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">GTMUILocalizerAndLayoutTweaker</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>localizerOwner_</string>
+ <string>localizer_</string>
+ <string>uiObject_</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>GTMUILocalizer</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="606537230">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AppKit/GTMUILocalizerAndLayoutTweaker.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">GTMUILocalizerAndLayoutTweakerTestLocalizer</string>
+ <string key="superclassName">GTMUILocalizer</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="969035251">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AppKit/GTMUILocalizerAndLayoutTweakerTest.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">GTMUILocalizerAndLayoutTweakerTestWindowController</string>
+ <string key="superclassName">NSWindowController</string>
+ <reference key="sourceIdentifier" ref="969035251"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">GTMWidthBasedTweaker</string>
+ <string key="superclassName">NSView</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>viewToResize_</string>
+ <string>viewToSlideAndResize_</string>
+ <string>viewToSlide_</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>NSView</string>
+ <string>NSView</string>
+ </object>
+ </object>
+ <reference key="sourceIdentifier" ref="606537230"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="925048441">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">UnitTesting/GTMAppKit+UnitTesting.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSButton</string>
+ <reference key="sourceIdentifier" ref="925048441"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSCell</string>
+ <reference key="sourceIdentifier" ref="925048441"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSControl</string>
+ <reference key="sourceIdentifier" ref="925048441"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSMenu</string>
+ <reference key="sourceIdentifier" ref="925048441"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AppKit/GTMCarbonEvent.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AppKit/GTMDelegatingTableColumn.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Foundation/GTMHTTPServer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Foundation/GTMNSAppleEventDescriptor+Foundation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Foundation/GTMNSObject+KeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">UnitTesting/GTMCALayer+UnitTesting.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">UnitTesting/GTMNSObject+BindingUnitTesting.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">UnitTesting/GTMNSObject+UnitTesting.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="39542122">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AppKit/GTMTheme.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <reference key="sourceIdentifier" ref="925048441"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <reference key="sourceIdentifier" ref="39542122"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <reference key="sourceIdentifier" ref="925048441"/>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../GTM.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ </data>
+</archive>
diff --git a/AppKit/GTMUILocalizerTest.h b/AppKit/GTMUILocalizerTest.h
index c3d1f36..d2019bb 100644
--- a/AppKit/GTMUILocalizerTest.h
+++ b/AppKit/GTMUILocalizerTest.h
@@ -21,9 +21,11 @@
@interface GTMUILocalizerTestWindowController : NSWindowController {
IBOutlet NSWindow *otherWindow_;
+ IBOutlet NSWindow *anotherWindow_;
IBOutlet NSMenu *otherMenu_;
}
- (NSWindow *)otherWindow;
+- (NSWindow *)anotherWindow;
- (NSMenu *)otherMenu;
@end
diff --git a/AppKit/GTMUILocalizerTest.m b/AppKit/GTMUILocalizerTest.m
index fb92b52..d0830ce 100644
--- a/AppKit/GTMUILocalizerTest.m
+++ b/AppKit/GTMUILocalizerTest.m
@@ -40,6 +40,11 @@
[localizer localizeObject:window recursively:YES];
GTMAssertObjectStateEqualToStateNamed(window,
@"GTMUILocalizerWindow2State", nil);
+ window = [controller anotherWindow];
+ STAssertNotNil(window, nil);
+ [localizer localizeObject:window recursively:YES];
+ GTMAssertObjectStateEqualToStateNamed(window,
+ @"GTMUILocalizerWindow3State", nil);
NSMenu *menu = [controller otherMenu];
STAssertNotNil(menu, nil);
[localizer localizeObject:menu recursively:YES];
@@ -79,6 +84,10 @@
return otherWindow_;
}
+- (NSWindow *)anotherWindow {
+ return anotherWindow_;
+}
+
- (NSMenu *)otherMenu {
return otherMenu_;
}
diff --git a/AppKit/GTMUILocalizerTestWindow.xib b/AppKit/GTMUILocalizerTestWindow.xib
index 8c41c40..79a4245 100644
--- a/AppKit/GTMUILocalizerTestWindow.xib
+++ b/AppKit/GTMUILocalizerTestWindow.xib
@@ -2,14 +2,15 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">1050</int>
- <string key="IBDocument.SystemVersion">9J61</string>
+ <string key="IBDocument.SystemVersion">9L30</string>
<string key="IBDocument.InterfaceBuilderVersion">677</string>
- <string key="IBDocument.AppKitVersion">949.46</string>
+ <string key="IBDocument.AppKitVersion">949.54</string>
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="52"/>
<integer value="2"/>
- <integer value="23"/>
+ <integer value="22"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -486,7 +487,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<reference key="NSSelectedCell" ref="232253570"/>
<reference key="NSBackgroundColor" ref="1000162704"/>
- <object class="NSColor" key="NSCellBackgroundColor">
+ <object class="NSColor" key="NSCellBackgroundColor" id="695371698">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
@@ -534,6 +535,445 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSCustomObject" id="92471218">
<string key="NSClassName">GTMUILocalizer</string>
</object>
+ <object class="NSWindowTemplate" id="158765462">
+ <int key="NSWindowStyleMask">15</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{196, 240}, {480, 270}}</string>
+ <int key="NSWTFlags">603979776</int>
+ <string key="NSWindowTitle">^WindowTest</string>
+ <string key="NSWindowClass">NSWindow</string>
+ <nil key="NSViewClass"/>
+ <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
+ <object class="NSView" key="NSWindowView" id="405137086">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSBox" id="735149545">
+ <reference key="NSNextResponder" ref="405137086"/>
+ <int key="NSvFlags">36</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSView" id="866377256">
+ <reference key="NSNextResponder" ref="735149545"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSButton" id="459731495">
+ <reference key="NSNextResponder" ref="866377256"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{12, 38}, {100, 32}}</string>
+ <reference key="NSSuperview" ref="866377256"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="168106569">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">^Button1</string>
+ <reference key="NSSupport" ref="168773824"/>
+ <reference key="NSControlView" ref="459731495"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">129</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSButton" id="668934682">
+ <reference key="NSNextResponder" ref="866377256"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{12, 6}, {100, 32}}</string>
+ <reference key="NSSuperview" ref="866377256"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="1004837764">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">^Button2</string>
+ <reference key="NSSupport" ref="168773824"/>
+ <reference key="NSControlView" ref="668934682"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">129</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrame">{{1, 1}, {124, 76}}</string>
+ <reference key="NSSuperview" ref="735149545"/>
+ </object>
+ </object>
+ <string key="NSFrame">{{32, 158}, {126, 92}}</string>
+ <reference key="NSSuperview" ref="405137086"/>
+ <string key="NSOffsets">{0, 0}</string>
+ <object class="NSTextFieldCell" key="NSTitleCell">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">^Box</string>
+ <object class="NSFont" key="NSSupport">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">1.100000e+01</double>
+ <int key="NSfFlags">3100</int>
+ </object>
+ <object class="NSColor" key="NSBackgroundColor">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">textBackgroundColor</string>
+ <reference key="NSColor" ref="695371698"/>
+ </object>
+ <object class="NSColor" key="NSTextColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+ </object>
+ </object>
+ <reference key="NSContentView" ref="866377256"/>
+ <int key="NSBorderType">1</int>
+ <int key="NSBoxType">0</int>
+ <int key="NSTitlePosition">2</int>
+ <bool key="NSTransparent">NO</bool>
+ </object>
+ <object class="NSScrollView" id="846591189">
+ <reference key="NSNextResponder" ref="405137086"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSClipView" id="864274176">
+ <reference key="NSNextResponder" ref="846591189"/>
+ <int key="NSvFlags">2304</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomView" id="1048920215">
+ <reference key="NSNextResponder" ref="864274176"/>
+ <int key="NSvFlags">274</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSTextField" id="771041486">
+ <reference key="NSNextResponder" ref="1048920215"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 20}, {72, 17}}</string>
+ <reference key="NSSuperview" ref="1048920215"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="138037384">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents">^Label2</string>
+ <reference key="NSSupport" ref="168773824"/>
+ <reference key="NSControlView" ref="771041486"/>
+ <reference key="NSBackgroundColor" ref="1000162704"/>
+ <reference key="NSTextColor" ref="50010148"/>
+ </object>
+ </object>
+ <object class="NSMatrix" id="44026604">
+ <reference key="NSNextResponder" ref="1048920215"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 45}, {87, 38}}</string>
+ <reference key="NSSuperview" ref="1048920215"/>
+ <bool key="NSEnabled">YES</bool>
+ <int key="NSNumRows">2</int>
+ <int key="NSNumCols">1</int>
+ <object class="NSMutableArray" key="NSCells">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSButtonCell" id="370153045">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">^Radio 1</string>
+ <reference key="NSSupport" ref="168773824"/>
+ <int key="NSTag">1</int>
+ <reference key="NSControlView" ref="44026604"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">128</int>
+ <reference key="NSAlternateImage" ref="182487189"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ <object class="NSButtonCell" id="54210161">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">^Radio 2</string>
+ <reference key="NSSupport" ref="168773824"/>
+ <reference key="NSControlView" ref="44026604"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">128</int>
+ <object class="NSImage" key="NSNormalImage">
+ <int key="NSImageFlags">549453824</int>
+ <string key="NSSize">{18, 18}</string>
+ <object class="NSMutableArray" key="NSReps">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="8"/>
+ <object class="NSBitmapImageRep">
+ <object class="NSData" key="NSTIFFRepresentation">
+ <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
+IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
+dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
+AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
+0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
+7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
+3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
+AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
+6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
+/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
+YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
+AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
+AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
+AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB
+AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw
+cGwCAAAAbW50clJHQiBYWVogB9YABAADABMALAASYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAPbWAAEAAAAA0y1hcHBs2U706y3Sst1fqit5+wYbUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA
+AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAA
+BOwAAAY+ZGVzYwAACywAAABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA
+AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA
+AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1
+cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD
+AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH
+SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF
+hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8
+vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt
+7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq
+Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo
+aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e
+n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX
+2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW
+FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O
+Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6
+ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt
+rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA
+AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA
+AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl
+A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq
+DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU
+HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8
+MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v
+UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/
+eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj
+rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn
+5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh
+AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK
+CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY
+GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95
+MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S
+UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2
+d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV
+pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK
+0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf//
+AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw
+BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA
+FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H
+LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh
+Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ
+h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp
+svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb
+1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX
+8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE
+AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg
+QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
+ </object>
+ </object>
+ </object>
+ </object>
+ <reference key="NSColor" ref="1027339248"/>
+ </object>
+ <reference key="NSAlternateImage" ref="182487189"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <string key="NSCellSize">{87, 18}</string>
+ <string key="NSIntercellSpacing">{4, 2}</string>
+ <int key="NSMatrixFlags">1151868928</int>
+ <string key="NSCellClass">NSActionCell</string>
+ <object class="NSButtonCell" key="NSProtoCell" id="773257705">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">Radio</string>
+ <reference key="NSSupport" ref="168773824"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">128</int>
+ <object class="NSImage" key="NSNormalImage">
+ <int key="NSImageFlags">549453824</int>
+ <string key="NSSize">{18, 18}</string>
+ <object class="NSMutableArray" key="NSReps">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="8"/>
+ <object class="NSBitmapImageRep">
+ <object class="NSData" key="NSTIFFRepresentation">
+ <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
+IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
+dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
+AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
+0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
+7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
+3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
+AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
+6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
+/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
+YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
+AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
+AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
+AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB
+AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
+ </object>
+ </object>
+ </object>
+ </object>
+ <reference key="NSColor" ref="1027339248"/>
+ </object>
+ <reference key="NSAlternateImage" ref="182487189"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ <reference key="NSSelectedCell" ref="370153045"/>
+ <reference key="NSBackgroundColor" ref="1000162704"/>
+ <reference key="NSCellBackgroundColor" ref="695371698"/>
+ <reference key="NSFont" ref="168773824"/>
+ </object>
+ <object class="NSTextField" id="213996513">
+ <reference key="NSNextResponder" ref="1048920215"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 91}, {74, 17}}</string>
+ <reference key="NSSuperview" ref="1048920215"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="279566570">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents">^Label1</string>
+ <reference key="NSSupport" ref="168773824"/>
+ <reference key="NSControlView" ref="213996513"/>
+ <reference key="NSBackgroundColor" ref="1000162704"/>
+ <reference key="NSTextColor" ref="50010148"/>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{127, 128}</string>
+ <reference key="NSSuperview" ref="864274176"/>
+ <string key="NSClassName">NSView</string>
+ </object>
+ </object>
+ <string key="NSFrame">{{1, 1}, {127, 128}}</string>
+ <reference key="NSSuperview" ref="846591189"/>
+ <reference key="NSNextKeyView" ref="1048920215"/>
+ <reference key="NSDocView" ref="1048920215"/>
+ <reference key="NSBGColor" ref="1000162704"/>
+ <int key="NScvFlags">4</int>
+ </object>
+ <object class="NSScroller" id="282042269">
+ <reference key="NSNextResponder" ref="846591189"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{128, 1}, {15, 128}}</string>
+ <reference key="NSSuperview" ref="846591189"/>
+ <reference key="NSTarget" ref="846591189"/>
+ <string key="NSAction">_doScroller:</string>
+ <double key="NSCurValue">1.000000e+00</double>
+ <double key="NSPercent">9.636363e-01</double>
+ </object>
+ <object class="NSScroller" id="383137617">
+ <reference key="NSNextResponder" ref="846591189"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{1, 129}, {127, 15}}</string>
+ <reference key="NSSuperview" ref="846591189"/>
+ <int key="NSsFlags">1</int>
+ <reference key="NSTarget" ref="846591189"/>
+ <string key="NSAction">_doScroller:</string>
+ <double key="NSPercent">5.060241e-01</double>
+ </object>
+ </object>
+ <string key="NSFrame">{{219, 101}, {144, 145}}</string>
+ <reference key="NSSuperview" ref="405137086"/>
+ <reference key="NSNextKeyView" ref="864274176"/>
+ <int key="NSsFlags">50</int>
+ <reference key="NSVScroller" ref="282042269"/>
+ <reference key="NSHScroller" ref="383137617"/>
+ <reference key="NSContentView" ref="864274176"/>
+ </object>
+ <object class="NSSplitView" id="161950549">
+ <reference key="NSNextResponder" ref="405137086"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSButton" id="485121564">
+ <reference key="NSNextResponder" ref="161950549"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrameSize">{106, 18}</string>
+ <reference key="NSSuperview" ref="161950549"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="62569003">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">^Checkbox 1</string>
+ <reference key="NSSupport" ref="168773824"/>
+ <reference key="NSControlView" ref="485121564"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <reference key="NSNormalImage" ref="437083559"/>
+ <reference key="NSAlternateImage" ref="634128218"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSButton" id="300872861">
+ <reference key="NSNextResponder" ref="161950549"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{0, 27}, {106, 18}}</string>
+ <reference key="NSSuperview" ref="161950549"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="241630681">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">^Checkbox 2</string>
+ <reference key="NSSupport" ref="168773824"/>
+ <reference key="NSControlView" ref="300872861"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <reference key="NSNormalImage" ref="437083559"/>
+ <reference key="NSAlternateImage" ref="634128218"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrame">{{42, 66}, {106, 45}}</string>
+ <reference key="NSSuperview" ref="405137086"/>
+ </object>
+ </object>
+ <string key="NSFrameSize">{480, 270}</string>
+ <reference key="NSSuperview"/>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {2560, 1578}}</string>
+ <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+ </object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
@@ -570,6 +1010,14 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<int key="connectionID">34</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">anotherWindow_</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="158765462"/>
+ </object>
+ <int key="connectionID">53</int>
+ </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@@ -845,6 +1293,188 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="object" ref="819072791"/>
<reference key="parent" ref="413705031"/>
</object>
+ <object class="IBObjectRecord">
+ <int key="objectID">51</int>
+ <reference key="object" ref="158765462"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="405137086"/>
+ </object>
+ <reference key="parent" ref="1002"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">52</int>
+ <reference key="object" ref="405137086"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="735149545"/>
+ <reference ref="846591189"/>
+ <reference ref="161950549"/>
+ </object>
+ <reference key="parent" ref="158765462"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">70</int>
+ <reference key="object" ref="735149545"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="459731495"/>
+ <reference ref="668934682"/>
+ </object>
+ <reference key="parent" ref="405137086"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">54</int>
+ <reference key="object" ref="459731495"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="168106569"/>
+ </object>
+ <reference key="parent" ref="735149545"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">57</int>
+ <reference key="object" ref="168106569"/>
+ <reference key="parent" ref="459731495"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">55</int>
+ <reference key="object" ref="668934682"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1004837764"/>
+ </object>
+ <reference key="parent" ref="735149545"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">56</int>
+ <reference key="object" ref="1004837764"/>
+ <reference key="parent" ref="668934682"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">72</int>
+ <reference key="object" ref="846591189"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="282042269"/>
+ <reference ref="383137617"/>
+ <reference ref="1048920215"/>
+ </object>
+ <reference key="parent" ref="405137086"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">73</int>
+ <reference key="object" ref="282042269"/>
+ <reference key="parent" ref="846591189"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">74</int>
+ <reference key="object" ref="383137617"/>
+ <reference key="parent" ref="846591189"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">71</int>
+ <reference key="object" ref="1048920215"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="213996513"/>
+ <reference ref="44026604"/>
+ <reference ref="771041486"/>
+ </object>
+ <reference key="parent" ref="846591189"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">62</int>
+ <reference key="object" ref="213996513"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="279566570"/>
+ </object>
+ <reference key="parent" ref="1048920215"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">58</int>
+ <reference key="object" ref="44026604"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="773257705"/>
+ <reference ref="54210161"/>
+ <reference ref="370153045"/>
+ </object>
+ <reference key="parent" ref="1048920215"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">63</int>
+ <reference key="object" ref="771041486"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="138037384"/>
+ </object>
+ <reference key="parent" ref="1048920215"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">68</int>
+ <reference key="object" ref="138037384"/>
+ <reference key="parent" ref="771041486"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">59</int>
+ <reference key="object" ref="773257705"/>
+ <reference key="parent" ref="44026604"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">60</int>
+ <reference key="object" ref="54210161"/>
+ <reference key="parent" ref="44026604"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">61</int>
+ <reference key="object" ref="370153045"/>
+ <reference key="parent" ref="44026604"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">69</int>
+ <reference key="object" ref="279566570"/>
+ <reference key="parent" ref="213996513"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">76</int>
+ <reference key="object" ref="161950549"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="485121564"/>
+ <reference ref="300872861"/>
+ </object>
+ <reference key="parent" ref="405137086"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">64</int>
+ <reference key="object" ref="485121564"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="62569003"/>
+ </object>
+ <reference key="parent" ref="161950549"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">67</int>
+ <reference key="object" ref="62569003"/>
+ <reference key="parent" ref="485121564"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">65</int>
+ <reference key="object" ref="300872861"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="241630681"/>
+ </object>
+ <reference key="parent" ref="161950549"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">66</int>
+ <reference key="object" ref="241630681"/>
+ <reference key="parent" ref="300872861"/>
+ </object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@@ -893,7 +1523,28 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>49.IBPluginDependency</string>
<string>5.IBPluginDependency</string>
<string>50.IBPluginDependency</string>
+ <string>51.IBEditorWindowLastContentRect</string>
+ <string>51.IBPluginDependency</string>
+ <string>51.IBWindowTemplateEditedContentRect</string>
+ <string>51.NSWindowTemplate.visibleAtLaunch</string>
+ <string>52.IBPluginDependency</string>
+ <string>54.IBPluginDependency</string>
+ <string>55.IBPluginDependency</string>
+ <string>56.IBPluginDependency</string>
+ <string>57.IBPluginDependency</string>
+ <string>58.IBPluginDependency</string>
+ <string>59.IBPluginDependency</string>
<string>6.IBPluginDependency</string>
+ <string>60.IBPluginDependency</string>
+ <string>61.IBPluginDependency</string>
+ <string>62.IBPluginDependency</string>
+ <string>63.IBPluginDependency</string>
+ <string>64.IBPluginDependency</string>
+ <string>65.IBPluginDependency</string>
+ <string>66.IBPluginDependency</string>
+ <string>67.IBPluginDependency</string>
+ <string>68.IBPluginDependency</string>
+ <string>69.IBPluginDependency</string>
<string>7.IBPluginDependency</string>
<string>8.IBPluginDependency</string>
<string>9.IBPluginDependency</string>
@@ -917,9 +1568,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{1808, 886}, {480, 270}}</string>
+ <string>{{1808, 479}, {480, 270}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{1808, 886}, {480, 270}}</string>
+ <string>{{1808, 479}, {480, 270}}</string>
<reference ref="6"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{126, 673}, {161, 23}}</string>
@@ -942,6 +1593,27 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{1226, 285}, {480, 270}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{1226, 285}, {480, 270}}</string>
+ <reference ref="6"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -968,7 +1640,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">50</int>
+ <int key="maxID">87</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -1003,11 +1675,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
+ <string>anotherWindow_</string>
<string>otherMenu_</string>
<string>otherWindow_</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
+ <string>NSWindow</string>
<string>NSMenu</string>
<string>NSWindow</string>
</object>
@@ -1037,6 +1711,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="sourceIdentifier" ref="485269976"/>
</object>
<object class="IBPartialClassDescription">
+ <string key="className">NSMatrix</string>
+ <reference key="sourceIdentifier" ref="485269976"/>
+ </object>
+ <object class="IBPartialClassDescription">
<string key="className">NSMenu</string>
<reference key="sourceIdentifier" ref="485269976"/>
</object>
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-0.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-0.tiff
index a0108e2..86814a3 100644
--- a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-0.tiff
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-0.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-1.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-1.tiff
index a9e1604..31a44ba 100644
--- a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-1.tiff
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-1.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-2.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-2.tiff
index 9e9adf7..b4c2375 100644
--- a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-2.tiff
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-2.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-0.10_4_SDK.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-0.10_4_SDK.tiff
new file mode 100644
index 0000000..62ff8a1
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-0.10_4_SDK.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-0.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-0.tiff
new file mode 100644
index 0000000..252ee9a
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-0.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-1.10_4_SDK.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-1.10_4_SDK.tiff
new file mode 100644
index 0000000..17748e5
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-1.10_4_SDK.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-1.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-1.tiff
new file mode 100644
index 0000000..2c1ddc7
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-1.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-2.10_4_SDK.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-2.10_4_SDK.tiff
new file mode 100644
index 0000000..294237a
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-2.10_4_SDK.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-2.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-2.tiff
new file mode 100644
index 0000000..b63ef59
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest4-2.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerWindow3State.gtmUTState b/AppKit/TestData/GTMUILocalizerWindow3State.gtmUTState
new file mode 100644
index 0000000..ed88b68
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerWindow3State.gtmUTState
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>$GTMArchive</key>
+ <string>GTMUnitTestingArchive</string>
+ <key>$GTMVersion</key>
+ <integer>1</integer>
+ <key>WindowContent</key>
+ <dict>
+ <key>ViewIsHidden</key>
+ <false/>
+ <key>ViewSubView 0</key>
+ <dict>
+ <key>BoxBorderType</key>
+ <integer>1</integer>
+ <key>BoxTitle</key>
+ <string>Localized Box</string>
+ <key>BoxTitlePosition</key>
+ <integer>2</integer>
+ <key>BoxType</key>
+ <integer>0</integer>
+ <key>ViewIsHidden</key>
+ <false/>
+ <key>ViewSubView 0</key>
+ <dict>
+ <key>ViewIsHidden</key>
+ <false/>
+ <key>ViewSubView 0</key>
+ <dict>
+ <key>ButtonAlternateTitle</key>
+ <string></string>
+ <key>ControlIsEnabled</key>
+ <true/>
+ <key>ControlSelectedCell</key>
+ <dict>
+ <key>CellState</key>
+ <integer>0</integer>
+ <key>CellTag</key>
+ <integer>0</integer>
+ <key>CellTitle</key>
+ <string>Localized Button</string>
+ <key>CellValue</key>
+ <string>0</string>
+ </dict>
+ <key>ControlTag</key>
+ <integer>0</integer>
+ <key>ControlType</key>
+ <string>NSButton</string>
+ <key>ControlValue</key>
+ <string>0</string>
+ <key>ViewIsHidden</key>
+ <false/>
+ </dict>
+ <key>ViewSubView 1</key>
+ <dict>
+ <key>ButtonAlternateTitle</key>
+ <string></string>
+ <key>ControlIsEnabled</key>
+ <true/>
+ <key>ControlSelectedCell</key>
+ <dict>
+ <key>CellState</key>
+ <integer>0</integer>
+ <key>CellTag</key>
+ <integer>0</integer>
+ <key>CellTitle</key>
+ <string>^Button2</string>
+ <key>CellValue</key>
+ <string>0</string>
+ </dict>
+ <key>ControlTag</key>
+ <integer>0</integer>
+ <key>ControlType</key>
+ <string>NSButton</string>
+ <key>ControlValue</key>
+ <string>0</string>
+ <key>ViewIsHidden</key>
+ <false/>
+ </dict>
+ </dict>
+ </dict>
+ <key>ViewSubView 1</key>
+ <dict>
+ <key>ViewIsHidden</key>
+ <false/>
+ <key>ViewSubView 0</key>
+ <dict>
+ <key>ViewIsHidden</key>
+ <false/>
+ <key>ViewSubView 0</key>
+ <dict>
+ <key>ViewIsHidden</key>
+ <false/>
+ <key>ViewSubView 0</key>
+ <dict>
+ <key>ControlIsEnabled</key>
+ <true/>
+ <key>ControlSelectedCell</key>
+ <dict>
+ <key>CellState</key>
+ <integer>0</integer>
+ <key>CellTag</key>
+ <integer>0</integer>
+ <key>CellTitle</key>
+ <string>Localized Label</string>
+ <key>CellValue</key>
+ <string>Localized Label</string>
+ </dict>
+ <key>ControlTag</key>
+ <integer>0</integer>
+ <key>ControlType</key>
+ <string>NSTextField</string>
+ <key>ControlValue</key>
+ <string>Localized Label</string>
+ <key>ViewIsHidden</key>
+ <false/>
+ </dict>
+ <key>ViewSubView 1</key>
+ <dict>
+ <key>ControlIsEnabled</key>
+ <true/>
+ <key>ControlSelectedCell</key>
+ <dict>
+ <key>CellState</key>
+ <integer>1</integer>
+ <key>CellTag</key>
+ <integer>1</integer>
+ <key>CellTitle</key>
+ <string>Localized Radio 1</string>
+ <key>CellValue</key>
+ <string>1</string>
+ </dict>
+ <key>ControlTag</key>
+ <integer>0</integer>
+ <key>ControlType</key>
+ <string>NSMatrix</string>
+ <key>ControlValue</key>
+ <string>1</string>
+ <key>MatrixAllowEmptySelection</key>
+ <false/>
+ <key>MatrixAutosizesCells</key>
+ <true/>
+ <key>MatrixCell 0</key>
+ <dict>
+ <key>CellState</key>
+ <integer>1</integer>
+ <key>CellTag</key>
+ <integer>1</integer>
+ <key>CellTitle</key>
+ <string>Localized Radio 1</string>
+ <key>CellValue</key>
+ <string>1</string>
+ </dict>
+ <key>MatrixCell 1</key>
+ <dict>
+ <key>CellState</key>
+ <integer>0</integer>
+ <key>CellTag</key>
+ <integer>0</integer>
+ <key>CellTitle</key>
+ <string>Localized Radio 2</string>
+ <key>CellValue</key>
+ <string>0</string>
+ </dict>
+ <key>MatrixCellPrototype</key>
+ <dict>
+ <key>CellState</key>
+ <integer>0</integer>
+ <key>CellTag</key>
+ <integer>0</integer>
+ <key>CellTitle</key>
+ <string>Radio</string>
+ <key>CellValue</key>
+ <string>0</string>
+ </dict>
+ <key>MatrixColumnCount</key>
+ <integer>1</integer>
+ <key>MatrixIntercellSpacing</key>
+ <string>{4, 2}</string>
+ <key>MatrixMode</key>
+ <integer>0</integer>
+ <key>MatrixRowCount</key>
+ <integer>2</integer>
+ <key>MatrixSelectionByRect</key>
+ <true/>
+ <key>ViewIsHidden</key>
+ <false/>
+ </dict>
+ <key>ViewSubView 2</key>
+ <dict>
+ <key>ControlIsEnabled</key>
+ <true/>
+ <key>ControlSelectedCell</key>
+ <dict>
+ <key>CellState</key>
+ <integer>0</integer>
+ <key>CellTag</key>
+ <integer>0</integer>
+ <key>CellTitle</key>
+ <string>^Label2</string>
+ <key>CellValue</key>
+ <string>^Label2</string>
+ </dict>
+ <key>ControlTag</key>
+ <integer>0</integer>
+ <key>ControlType</key>
+ <string>NSTextField</string>
+ <key>ControlValue</key>
+ <string>^Label2</string>
+ <key>ViewIsHidden</key>
+ <false/>
+ </dict>
+ </dict>
+ </dict>
+ <key>ViewSubView 1</key>
+ <dict>
+ <key>ControlIsEnabled</key>
+ <false/>
+ <key>ControlTag</key>
+ <integer>0</integer>
+ <key>ControlType</key>
+ <string>NSScroller</string>
+ <key>ViewIsHidden</key>
+ <false/>
+ </dict>
+ <key>ViewSubView 2</key>
+ <dict>
+ <key>ControlIsEnabled</key>
+ <false/>
+ <key>ControlTag</key>
+ <integer>0</integer>
+ <key>ControlType</key>
+ <string>NSScroller</string>
+ <key>ViewIsHidden</key>
+ <false/>
+ </dict>
+ </dict>
+ <key>ViewSubView 2</key>
+ <dict>
+ <key>ViewIsHidden</key>
+ <false/>
+ <key>ViewSubView 0</key>
+ <dict>
+ <key>ButtonAlternateTitle</key>
+ <string></string>
+ <key>ControlIsEnabled</key>
+ <true/>
+ <key>ControlSelectedCell</key>
+ <dict>
+ <key>CellState</key>
+ <integer>1</integer>
+ <key>CellTag</key>
+ <integer>0</integer>
+ <key>CellTitle</key>
+ <string>Localized Checkbox 1</string>
+ <key>CellValue</key>
+ <string>1</string>
+ </dict>
+ <key>ControlTag</key>
+ <integer>0</integer>
+ <key>ControlType</key>
+ <string>NSButton</string>
+ <key>ControlValue</key>
+ <string>1</string>
+ <key>ViewIsHidden</key>
+ <false/>
+ </dict>
+ <key>ViewSubView 1</key>
+ <dict>
+ <key>ButtonAlternateTitle</key>
+ <string></string>
+ <key>ControlIsEnabled</key>
+ <true/>
+ <key>ControlSelectedCell</key>
+ <dict>
+ <key>CellState</key>
+ <integer>1</integer>
+ <key>CellTag</key>
+ <integer>0</integer>
+ <key>CellTitle</key>
+ <string>Localized Checkbox 2</string>
+ <key>CellValue</key>
+ <string>1</string>
+ </dict>
+ <key>ControlTag</key>
+ <integer>0</integer>
+ <key>ControlType</key>
+ <string>NSButton</string>
+ <key>ControlValue</key>
+ <string>1</string>
+ <key>ViewIsHidden</key>
+ <false/>
+ </dict>
+ </dict>
+ </dict>
+ <key>WindowIsMain</key>
+ <false/>
+ <key>WindowIsVisible</key>
+ <false/>
+ <key>WindowTitle</key>
+ <string>Localized Window</string>
+</dict>
+</plist>
diff --git a/AppKit/TestData/Resources/English.lproj/Localizable.strings b/AppKit/TestData/Resources/English.lproj/Localizable.strings
index 4e6fabe..8228d3f 100644
--- a/AppKit/TestData/Resources/English.lproj/Localizable.strings
+++ b/AppKit/TestData/Resources/English.lproj/Localizable.strings
@@ -34,3 +34,4 @@
"Checkbox 2" = "Localized Checkbox 2";
"Radio 1" = "Localized Radio 1";
"Radio 2" = "Localized Radio 2";
+"Box" = "Localized Box";
diff --git a/GTM.xcodeproj/project.pbxproj b/GTM.xcodeproj/project.pbxproj
index ebf1b0c..f2cb27b 100644
--- a/GTM.xcodeproj/project.pbxproj
+++ b/GTM.xcodeproj/project.pbxproj
@@ -305,6 +305,14 @@
F4FC16041046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-1.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F4FC16001046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-1.tiff */; };
F4FC16051046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-2.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F4FC16011046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-2.tiff */; };
F4FC16061046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-3.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F4FC16021046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-3.tiff */; };
+ F4FC322D104EAA11000AB7BC /* GTMUILocalizerWindow3State.gtmUTState in Resources */ = {isa = PBXBuildFile; fileRef = F4FC322C104EAA11000AB7BC /* GTMUILocalizerWindow3State.gtmUTState */; };
+ F4FC324D104EBD70000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4FC324C104EBD70000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4.xib */; };
+ F4FC327D104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-0.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F4FC327A104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-0.tiff */; };
+ F4FC327E104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-1.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F4FC327B104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-1.tiff */; };
+ F4FC327F104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-2.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F4FC327C104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-2.tiff */; };
+ F4FC333D104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-0.10_4_SDK.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F4FC333A104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-0.10_4_SDK.tiff */; };
+ F4FC333E104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-1.10_4_SDK.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F4FC333B104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-1.10_4_SDK.tiff */; };
+ F4FC333F104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-2.10_4_SDK.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F4FC333C104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-2.10_4_SDK.tiff */; };
F4FF22780D9D4835003880AC /* GTMDebugSelectorValidation.h in Headers */ = {isa = PBXBuildFile; fileRef = F4FF22770D9D4835003880AC /* GTMDebugSelectorValidation.h */; settings = {ATTRIBUTES = (Public, ); }; };
F92B9FA80E2E64B900A2FE61 /* GTMLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = F98680AF0E2C15C300CEE8BF /* GTMLogger.h */; settings = {ATTRIBUTES = (Public, ); }; };
F92B9FA90E2E64BC00A2FE61 /* GTMLogger+ASL.h in Headers */ = {isa = PBXBuildFile; fileRef = F98681670E2C1E3A00CEE8BF /* GTMLogger+ASL.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -676,6 +684,14 @@
F4FC16001046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-1.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest3-1.tiff"; sourceTree = "<group>"; };
F4FC16011046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-2.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest3-2.tiff"; sourceTree = "<group>"; };
F4FC16021046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-3.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest3-3.tiff"; sourceTree = "<group>"; };
+ F4FC322C104EAA11000AB7BC /* GTMUILocalizerWindow3State.gtmUTState */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = GTMUILocalizerWindow3State.gtmUTState; sourceTree = "<group>"; };
+ F4FC324C104EBD70000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GTMUILocalizerAndLayoutTweakerTest4.xib; sourceTree = "<group>"; };
+ F4FC327A104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-0.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest4-0.tiff"; sourceTree = "<group>"; };
+ F4FC327B104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-1.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest4-1.tiff"; sourceTree = "<group>"; };
+ F4FC327C104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-2.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest4-2.tiff"; sourceTree = "<group>"; };
+ F4FC333A104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-0.10_4_SDK.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest4-0.10_4_SDK.tiff"; sourceTree = "<group>"; };
+ F4FC333B104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-1.10_4_SDK.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest4-1.10_4_SDK.tiff"; sourceTree = "<group>"; };
+ F4FC333C104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-2.10_4_SDK.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest4-2.10_4_SDK.tiff"; sourceTree = "<group>"; };
F4FF22770D9D4835003880AC /* GTMDebugSelectorValidation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMDebugSelectorValidation.h; sourceTree = "<group>"; };
F95803F60E2FB0760049A088 /* GTMLoggerRingBufferWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMLoggerRingBufferWriter.h; sourceTree = "<group>"; };
F95803F70E2FB0760049A088 /* GTMLoggerRingBufferWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTMLoggerRingBufferWriter.m; sourceTree = "<group>"; };
@@ -918,8 +934,15 @@
F4FC16001046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-1.tiff */,
F4FC16011046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-2.tiff */,
F4FC16021046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-3.tiff */,
+ F4FC327A104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-0.tiff */,
+ F4FC327B104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-1.tiff */,
+ F4FC327C104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-2.tiff */,
+ F4FC333A104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-0.10_4_SDK.tiff */,
+ F4FC333B104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-1.10_4_SDK.tiff */,
+ F4FC333C104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-2.10_4_SDK.tiff */,
8B409EC30F9530C200DF540E /* GTMUILocalizerWindow1State.gtmUTState */,
8B409EE80F95325000DF540E /* GTMUILocalizerWindow2State.gtmUTState */,
+ F4FC322C104EAA11000AB7BC /* GTMUILocalizerWindow3State.gtmUTState */,
8B409EF30F95331500DF540E /* GTMUILocalizerMenuState.gtmUTState */,
8B409F110F95352500DF540E /* GTMUILocalizerView2State.gtmUTState */,
8B409F120F95352500DF540E /* GTMUILocalizerView1State.gtmUTState */,
@@ -1001,6 +1024,7 @@
F42E2C83102B14B0004DF054 /* GTMUILocalizerAndLayoutTweakerTest1.xib */,
F42E2D07102B2283004DF054 /* GTMUILocalizerAndLayoutTweakerTest2.xib */,
F4FC15DC1046AD66000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3.xib */,
+ F4FC324C104EBD70000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4.xib */,
8B409E3E0F950DE900DF540E /* GTMUILocalizerTest.h */,
8B409BC50F94405A00DF540E /* GTMUILocalizerTest.m */,
8B409E8B0F952C2C00DF540E /* GTMUILocalizerTestWindow.xib */,
@@ -1583,6 +1607,14 @@
F4FC16041046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-1.tiff in Resources */,
F4FC16051046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-2.tiff in Resources */,
F4FC16061046B581000AB7BC /* GTMUILocalizerAndLayoutTweakerTest3-3.tiff in Resources */,
+ F4FC322D104EAA11000AB7BC /* GTMUILocalizerWindow3State.gtmUTState in Resources */,
+ F4FC324D104EBD70000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4.xib in Resources */,
+ F4FC327D104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-0.tiff in Resources */,
+ F4FC327E104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-1.tiff in Resources */,
+ F4FC327F104EC6D5000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-2.tiff in Resources */,
+ F4FC333D104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-0.10_4_SDK.tiff in Resources */,
+ F4FC333E104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-1.10_4_SDK.tiff in Resources */,
+ F4FC333F104EE94F000AB7BC /* GTMUILocalizerAndLayoutTweakerTest4-2.10_4_SDK.tiff in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt
index d2a30b1..e4da8c8 100644
--- a/ReleaseNotes.txt
+++ b/ReleaseNotes.txt
@@ -320,7 +320,14 @@ Changes since 1.5.1
KVO a little easier in some cases. To turn it on, set the "GTMDebugKVO"
environment variable to "1". It will output a lot of data about adding and
removing KVO observers, and when the values are actually changed.
-
+
+- Added better support for NSBox to GTMAppKit+UnitTesting. Previously we
+ didn't check any box specific attributes.
+
+- Updated how GTMNSObject+UnitTesting searches for files to include the Target
+ SDK from compile time. Also removed some of the formatting options so
+ try and make it simpler to follow.
+
Release 1.5.1
Changes since 1.5.0
diff --git a/UnitTesting/GTMAppKit+UnitTesting.m b/UnitTesting/GTMAppKit+UnitTesting.m
index e5e35e5..d5aa70d 100644
--- a/UnitTesting/GTMAppKit+UnitTesting.m
+++ b/UnitTesting/GTMAppKit+UnitTesting.m
@@ -360,6 +360,26 @@ GTM_METHOD_CHECK(NSObject, gtm_unitTestEncodeState:);
@end
+@implementation NSBox (GTMUnitTestingAdditions)
+
+// Encodes the state of an object in a manner suitable for comparing
+// against a master state file so we can determine whether the
+// object is in a suitable state.
+//
+// Arguments:
+// inCoder - the coder to encode our state into
+- (void)gtm_unitTestEncodeState:(NSCoder*)inCoder {
+ [super gtm_unitTestEncodeState:inCoder];
+
+ [inCoder encodeObject:[self title] forKey:@"BoxTitle"];
+ ENCODE_NSINTEGER(inCoder, [self titlePosition], @"BoxTitlePosition");
+ ENCODE_NSINTEGER(inCoder, [self boxType], @"BoxType");
+ ENCODE_NSINTEGER(inCoder, [self borderType], @"BoxBorderType");
+ // 10.5+ [inCoder encodeBool:[self isTransparent] forKey:@"BoxIsTransparent"];
+}
+
+@end
+
@implementation NSView (GTMUnitTestingAdditions)
// Returns an image containing a representation of the object
diff --git a/UnitTesting/GTMNSObject+UnitTesting.h b/UnitTesting/GTMNSObject+UnitTesting.h
index 37eae5b..4f11cc2 100644
--- a/UnitTesting/GTMNSObject+UnitTesting.h
+++ b/UnitTesting/GTMNSObject+UnitTesting.h
@@ -252,15 +252,20 @@ CGContextRef GTMCreateUnitTestBitmapContextOfSizeWithData(CGSize size,
// Find the path for a image by name in your bundle.
// Searches for the following:
-// "name.arch.OSVersionMajor.OSVersionMinor.OSVersionBugfix.extension"
-// "name.OSVersionMajor.OSVersionMinor.OSVersionBugfix.arch.extension"
-// "name.arch.OSVersionMajor.OSVersionMinor.extension"
+// "name.CompilerSDK.OSVersionMajor.OSVersionMinor.OSVersionBugFix.arch.extension"
+// "name.CompilerSDK.OSVersionMajor.OSVersionMinor.arch.extension"
+// "name.CompilerSDK.OSVersionMajor.arch.extension"
+// "name.CompilerSDK.arch.extension"
+// "name.CompilerSDK.OSVersionMajor.OSVersionMinor.OSVersionBugFix.extension"
+// "name.CompilerSDK.OSVersionMajor.OSVersionMinor.extension"
+// "name.CompilerSDK.OSVersionMajor.extension"
+// "name.CompilerSDK.extension"
+// "name.OSVersionMajor.OSVersionMinor.OSVersionBugFix.arch.extension"
// "name.OSVersionMajor.OSVersionMinor.arch.extension"
-// "name.arch.OSVersionMajor.extension"
// "name.OSVersionMajor.arch.extension"
// "name.arch.extension"
-// "name.OSVersionMajor.OSVersionMinor.OSVersionBugfix.extension"
-// "name.OSVersionMajor.OSVersionMinorextension"
+// "name.OSVersionMajor.OSVersionMinor.OSVersionBugFix.extension"
+// "name.OSVersionMajor.OSVersionMinor.extension"
// "name.OSVersionMajor.extension"
// "name.extension"
// Do not include the extension on your name.
@@ -344,14 +349,19 @@ CGContextRef GTMCreateUnitTestBitmapContextOfSizeWithData(CGSize size,
// Find the path for a state by name in your bundle.
// Searches for:
-// "name.arch.OSVersionMajor.OSVersionMinor.OSVersionBugfix.extension"
-// "name.OSVersionMajor.OSVersionMinor.OSVersionBugfix.arch.extension"
-// "name.arch.OSVersionMajor.OSVersionMinor.extension"
+// "name.CompilerSDK.OSVersionMajor.OSVersionMinor.OSVersionBugFix.arch.extension"
+// "name.CompilerSDK.OSVersionMajor.OSVersionMinor.arch.extension"
+// "name.CompilerSDK.OSVersionMajor.arch.extension"
+// "name.CompilerSDK.arch.extension"
+// "name.CompilerSDK.OSVersionMajor.OSVersionMinor.OSVersionBugFix.extension"
+// "name.CompilerSDK.OSVersionMajor.OSVersionMinor.extension"
+// "name.CompilerSDK.OSVersionMajor.extension"
+// "name.CompilerSDK.extension"
+// "name.OSVersionMajor.OSVersionMinor.OSVersionBugFix.arch.extension"
// "name.OSVersionMajor.OSVersionMinor.arch.extension"
-// "name.arch.OSVersionMajor.extension"
// "name.OSVersionMajor.arch.extension"
// "name.arch.extension"
-// "name.OSVersionMajor.OSVersionMinor.OSVersionBugfix.extension"
+// "name.OSVersionMajor.OSVersionMinor.OSVersionBugFix.extension"
// "name.OSVersionMajor.OSVersionMinor.extension"
// "name.OSVersionMajor.extension"
// "name.extension"
diff --git a/UnitTesting/GTMNSObject+UnitTesting.m b/UnitTesting/GTMNSObject+UnitTesting.m
index cc6a7ea..03a5e6a 100644
--- a/UnitTesting/GTMNSObject+UnitTesting.m
+++ b/UnitTesting/GTMNSObject+UnitTesting.m
@@ -480,18 +480,22 @@ static NSString *gGTMUnitTestSaveToDirectory = nil;
/// Find the path for a file named name.extension in your bundle.
// Searches for the following:
-// "name.extension",
-// "name.arch.extension",
-// "name.arch.OSVersionMajor.extension"
-// "name.arch.OSVersionMajor.OSVersionMinor.extension"
-// "name.arch.OSVersionMajor.OSVersionMinor.OSVersion.bugfix.extension"
-// "name.arch.OSVersionMajor.extension"
-// "name.OSVersionMajor.arch.extension"
+// "name.CompilerSDK.OSVersionMajor.OSVersionMinor.OSVersionBugFix.arch.extension"
+// "name.CompilerSDK.OSVersionMajor.OSVersionMinor.arch.extension"
+// "name.CompilerSDK.OSVersionMajor.arch.extension"
+// "name.CompilerSDK.arch.extension"
+// "name.CompilerSDK.OSVersionMajor.OSVersionMinor.OSVersionBugFix.extension"
+// "name.CompilerSDK.OSVersionMajor.OSVersionMinor.extension"
+// "name.CompilerSDK.OSVersionMajor.extension"
+// "name.CompilerSDK.extension"
+// "name.OSVersionMajor.OSVersionMinor.OSVersionBugFix.arch.extension"
// "name.OSVersionMajor.OSVersionMinor.arch.extension"
-// "name.OSVersionMajor.OSVersionMinor.OSVersion.bugfix.arch.extension"
-// "name.OSVersionMajor.extension"
+// "name.OSVersionMajor.arch.extension"
+// "name.arch.extension"
+// "name.OSVersionMajor.OSVersionMinor.OSVersionBugFix.extension"
// "name.OSVersionMajor.OSVersionMinor.extension"
-// "name.OSVersionMajor.OSVersionMinor.OSVersion.bugfix.extension"
+// "name.OSVersionMajor.extension"
+// "name.extension"
// Do not include the ".extension" extension on your name.
//
// Args:
@@ -519,27 +523,52 @@ static NSString *gGTMUnitTestSaveToDirectory = nil;
systemVersions[1] = [NSString stringWithFormat:@".%d.%d", major, minor];
systemVersions[2] = [NSString stringWithFormat:@".%d", major];
systemVersions[3] = @"";
- NSString *extensions[2];
- extensions[0]
+ // Architecture
+ NSString *architecture[2];
+ architecture[0]
= [NSString stringWithFormat:@".%@",
[GTMSystemVersion runtimeArchitecture]];
- extensions[1] = @"";
+ architecture[1] = @"";
+ // Compiler SDK
+#if GTM_MACOS_SDK
+ // Some times Apple changes how things work based on the SDK built against.
+ NSString *sdks[2];
+# if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+ sdks[0] = @".10_6_SDK";
+# elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
+ sdks[0] = @".10_5_SDK";
+# elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
+ sdks[0] = @".10_4_SDK";
+# elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
+ sdks[0] = @".10_3_SDK";
+# elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2
+ sdks[0] = @".10_2_SDK";
+# elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_1
+ sdks[0] = @".10_1_SDK";
+# else
+ sdks[0] = @".10_0_SDK";
+# endif
+ sdks[1] = @"";
+#else // !GTM_MACOS_SDK
+ // iPhone doesn't current support SDK specific images (hopefully it won't
+ // be needed.
+ NSString *sdks[] = { @"" };
+#endif // GTM_MACOS_SDK
- size_t i, j;
// Note that we are searching for the most exact match first.
- for (i = 0;
- !thePath && i < sizeof(extensions) / sizeof(*extensions);
+ for (size_t i = 0;
+ !thePath && i < sizeof(sdks) / sizeof(*sdks);
++i) {
- for (j = 0;
- !thePath && j < sizeof(systemVersions) / sizeof(*systemVersions);
+ for (size_t j = 0;
+ !thePath && j < sizeof(architecture) / sizeof(*architecture);
j++) {
- NSString *fullName = [NSString stringWithFormat:@"%@%@%@",
- name, extensions[i], systemVersions[j]];
- thePath = [myBundle pathForResource:fullName ofType:extension];
- if (thePath) break;
- fullName = [NSString stringWithFormat:@"%@%@%@",
- name, systemVersions[j], extensions[i]];
- thePath = [myBundle pathForResource:fullName ofType:extension];
+ for (size_t k = 0;
+ !thePath && k < sizeof(systemVersions) / sizeof(*systemVersions);
+ k++) {
+ NSString *fullName = [NSString stringWithFormat:@"%@%@%@%@",
+ name, sdks[i], systemVersions[k], architecture[j]];
+ thePath = [myBundle pathForResource:fullName ofType:extension];
+ }
}
}
@@ -553,8 +582,10 @@ static NSString *gGTMUnitTestSaveToDirectory = nil;
SInt32 major, minor, bugFix;
[GTMSystemVersion getMajor:&major minor:&minor bugFix:&bugFix];
+ // We don't include the CompilerSDK in here because it is not something that
+ // that is commonly needed.
NSString *fullName = [NSString stringWithFormat:@"%@.%@.%d.%d.%d",
- name, systemArchitecture, major, minor, bugFix];
+ name, major, minor, bugFix, systemArchitecture];
NSString *basePath = [[self class] gtm_getUnitTestSaveToDirectory];
return [[basePath stringByAppendingPathComponent:fullName]