aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AppKit/GTMUILocalizer.h20
-rw-r--r--AppKit/GTMUILocalizer.m38
-rw-r--r--AppKit/GTMUILocalizerAndLayoutTweaker.h78
-rw-r--r--AppKit/GTMUILocalizerAndLayoutTweaker.m300
-rw-r--r--AppKit/GTMUILocalizerAndLayoutTweakerTest.h27
-rw-r--r--AppKit/GTMUILocalizerAndLayoutTweakerTest.m96
-rw-r--r--AppKit/GTMUILocalizerAndLayoutTweakerTest1.xib1742
-rw-r--r--AppKit/GTMUILocalizerAndLayoutTweakerTest2.xib862
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-0.tiffbin0 -> 29352 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-1.tiffbin0 -> 25054 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-2.tiffbin0 -> 25596 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest2-0.tiffbin0 -> 14672 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest2-1.tiffbin0 -> 11914 bytes
-rw-r--r--AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest2-2.tiffbin0 -> 11898 bytes
-rw-r--r--GTM.xcodeproj/project.pbxproj48
15 files changed, 3181 insertions, 30 deletions
diff --git a/AppKit/GTMUILocalizer.h b/AppKit/GTMUILocalizer.h
index b07b861..8ce00c6 100644
--- a/AppKit/GTMUILocalizer.h
+++ b/AppKit/GTMUILocalizer.h
@@ -6,9 +6,9 @@
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy
// of the License at
-//
+//
// http://www.apache.org/licenses/LICENSE-2.0
-//
+//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
@@ -25,12 +25,12 @@
// NSViewController or NSApplication. Using the bundle of the nib it will then
// localize any items in the NSWindowController's window and subviews, or the
// NSViewController's view and subviews or the NSApplication's main menu
-// and dockmenu at when awakeFromNib is called on the GTMUILocalizer instance.
-// You can optionally hook up otherObjectToLocalize_ and
+// and dockmenu at when awakeFromNib is called on the GTMUILocalizer instance.
+// You can optionally hook up otherObjectToLocalize_ and
// yetAnotherObjectToLocalize_ and those will also be localized. Strings in the
// nib that you want localized must start with ^ (shift-6). The strings will
-// be looked up in the Localizable.strings table without the caret as the
-// key.
+// be looked up in the Localizable.strings table without the caret as the
+// key.
// Things that will be localized are:
// - Titles and altTitles (for menus, buttons, windows, menuitems, tabViewItem)
// - stringValue (for labels)
@@ -38,15 +38,15 @@
// - accessibility help
// - accessibility description
// - menus
-//
+//
// As an example if I wanted to localize a button with the word "Print" on
// it, I would put it in a window controlled by a NSWindowController that was
// the owner of the nib. I would set it's title to be "^Print". I would then
// create an instance of GTMUILocalizer and set it's owner_ to be the owner
// of the nib.
-// In my Localizable.strings file in my fr.lproj directory for the bundle
+// In my Localizable.strings file in my fr.lproj directory for the bundle
// I would put "Print" = "Imprimer";
-// Then when my app launched in French I would get a button labeled
+// Then when my app launched in French I would get a button labeled
// "Imprimer". Note that GTMUILocalizer is only for strings, and doesn't
// resize, move or change text alignment on any of the things it modifies.
// If you absolutely need a caret at the beginning of the string
@@ -81,5 +81,5 @@
// If |string| is nil, you should return nil
- (NSString *)localizedStringForString:(NSString *)string;
// Allows subclasses to override how the bundle is picked up
-- (NSBundle *)bundleForOwner:(id)owner;
++ (NSBundle *)bundleForOwner:(id)owner;
@end
diff --git a/AppKit/GTMUILocalizer.m b/AppKit/GTMUILocalizer.m
index 9b78b4f..c79a72a 100644
--- a/AppKit/GTMUILocalizer.m
+++ b/AppKit/GTMUILocalizer.m
@@ -6,9 +6,9 @@
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy
// of the License at
-//
+//
// http://www.apache.org/licenses/LICENSE-2.0
-//
+//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
@@ -34,7 +34,7 @@
- (void)awakeFromNib {
if (owner_) {
- NSBundle *newBundle = [self bundleForOwner:owner_];
+ NSBundle *newBundle = [[self class] bundleForOwner:owner_];
bundle_ = [newBundle retain];
[self localizeObject:owner_ recursively:YES];
[self localizeObject:otherObjectToLocalize_ recursively:YES];
@@ -44,7 +44,7 @@
}
}
-- (NSBundle *)bundleForOwner:(id)owner {
++ (NSBundle *)bundleForOwner:(id)owner {
NSBundle *newBundle = nil;
if (owner) {
Class class = [NSWindowController class];
@@ -67,8 +67,8 @@
if (bundle_ && [string hasPrefix:@"^"]) {
NSString *notFoundValue = @"__GTM_NOT_FOUND__";
NSString *key = [string substringFromIndex:1];
- localized = [bundle_ localizedStringForKey:key
- value:notFoundValue
+ localized = [bundle_ localizedStringForKey:key
+ value:notFoundValue
table:nil];
if ([localized isEqualToString:notFoundValue]) {
localized = nil;
@@ -125,14 +125,14 @@
[view setToolTip:localizedToolTip];
}
}
-
+
// Then do accessibility stuff
NSArray *supportedAttrs = [view accessibilityAttributeNames];
if ([supportedAttrs containsObject:NSAccessibilityHelpAttribute]) {
- NSString *accessibilityHelp
+ NSString *accessibilityHelp
= [view accessibilityAttributeValue:NSAccessibilityHelpAttribute];
if (accessibilityHelp) {
- NSString *localizedAccessibilityHelp
+ NSString *localizedAccessibilityHelp
= [self localizedStringForString:accessibilityHelp];
if (localizedAccessibilityHelp) {
[view accessibilitySetValue:localizedAccessibilityHelp
@@ -140,12 +140,12 @@
}
}
}
-
+
if ([supportedAttrs containsObject:NSAccessibilityDescriptionAttribute]) {
- NSString *accessibilityDesc
+ NSString *accessibilityDesc
= [view accessibilityAttributeValue:NSAccessibilityDescriptionAttribute];
if (accessibilityDesc) {
- NSString *localizedAccessibilityDesc
+ NSString *localizedAccessibilityDesc
= [self localizedStringForString:accessibilityDesc];
if (localizedAccessibilityDesc) {
[view accessibilitySetValue:localizedAccessibilityDesc
@@ -153,7 +153,7 @@
}
}
}
-
+
// Must do the menu before the titles, or else this will screw up
// popup menus on us.
[self localizeMenu:[view menu] recursively:recursive];
@@ -164,7 +164,7 @@
[self localizeView:subview recursively:recursive];
}
}
-
+
// Then do titles
if ([view isKindOfClass:[NSTextField class]]) {
NSString *title = [(NSTextField *)view stringValue];
@@ -172,7 +172,7 @@
if (localizedTitle) {
[(NSTextField *)view setStringValue:localizedTitle];
}
- } else if ([view respondsToSelector:@selector(title)]
+ } else if ([view respondsToSelector:@selector(title)]
&& [view respondsToSelector:@selector(setTitle:)]) {
NSString *title = [view performSelector:@selector(title)];
if (title) {
@@ -181,13 +181,13 @@
[view performSelector:@selector(setTitle:) withObject:localizedTitle];
}
}
- if ([view respondsToSelector:@selector(alternateTitle)]
+ if ([view respondsToSelector:@selector(alternateTitle)]
&& [view respondsToSelector:@selector(setAlternateTitle:)]) {
title = [view performSelector:@selector(alternateTitle)];
if (title) {
NSString *localizedTitle = [self localizedStringForString:title];
if (localizedTitle) {
- [view performSelector:@selector(setAlternateTitle:)
+ [view performSelector:@selector(setAlternateTitle:)
withObject:localizedTitle];
}
}
@@ -208,7 +208,7 @@
}
}
}
-
+
// Do NSSearchField placeholders
if ([view isKindOfClass:[NSSearchField class]]) {
NSString *placeholder = [[(NSSearchField *)view cell] placeholderString];
@@ -256,7 +256,7 @@
[self localizeMenu:[menuItem submenu] recursively:recursive];
}
}
- }
+ }
}
- (void)localizeCell:(NSCell *)cell recursively:(BOOL)recursive {
diff --git a/AppKit/GTMUILocalizerAndLayoutTweaker.h b/AppKit/GTMUILocalizerAndLayoutTweaker.h
new file mode 100644
index 0000000..2d6e0a4
--- /dev/null
+++ b/AppKit/GTMUILocalizerAndLayoutTweaker.h
@@ -0,0 +1,78 @@
+//
+// GTMUILocalizerAndLayoutTweaker.h
+//
+// Copyright 2009 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy
+// of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+//
+
+#import <Cocoa/Cocoa.h>
+
+@class GTMUILocalizer;
+
+// This object will run a GTMUILocalizer on the given object, and then run
+// through the object's view heirarchy triggering any Tweakers to do their work.
+// (This "double duty" is needed so the work can be done in order during
+// awakeFromNib, if it was two objects, the order couldn't be guaranteed.)
+@interface GTMUILocalizerAndLayoutTweaker : NSObject {
+ @private
+ IBOutlet id uiObject_; // The window or view to process on awakeFromNib
+ IBOutlet GTMUILocalizer *localizer_; // If nil, one will be created
+ IBOutlet id localizerOwner_; // Set if you want the default GTMUILocalizer
+}
+- (void)applyLocalizer:(GTMUILocalizer *)localizer
+ tweakingUI:(id)uiObject;
+
+// This checks to see if |view| implements @selector(sizeToFit) and calls it.
+// It then checks the class of |view| and does some fixup for known issues
+// where sizeToFit doesn't product a view that meets UI guidelines.
+// Returns the amount the view changed in size.
++ (NSSize)sizeToFitView:(NSView *)view;
+@end
+
+// This is a Tweaker that will call sizeToFit on everything within it (that
+// supports it).
+//
+// If the items were all left aligned, they will stay as such and the box will
+// resize based on the largest change of any item within it. If they aren't
+// left aligned, they are assumed to be in a row, and it will slide everything
+// along as it lays them out to make sure they end up still spaced out and will
+// resize itself by the total change to the row.
+//
+// This Tweaker makes no attempt to deal with changes in an object height.
+//
+// This Tweaker makes no attempt to deal with its parent's width.
+@interface GTMWidthBasedTweaker : NSView {
+ @private
+ // This outlet is the view that should move by the same amount as this box
+ // grows and change its size by the inverse. i.e.-if a box of NSTextFields,
+ // they will stay next to the box of labels and resize so the two boxes
+ // continue to use the same total space.
+ IBOutlet NSView *viewToSlideAndResize_;
+ // This outlet is just like viewToSlideAndResize_ except the view is only
+ // slid (ie-its width is not adjusted). i.e.-lets something move along next
+ // to this box.
+ IBOutlet NSView *viewToSlide_;
+ // This outlet is just like viewToSlideAndResize_ except the view is only
+ // resized (ie-its position is not adjusted). i.e.-lets something above/below
+ // this box stay the same width. You can set this to be the window, in
+ // which case it is resized, but you need to make sure everything is setup
+ // to handle that, and using two Tweakers pointed at the window isn't likely
+ // to give the results you want.
+ IBOutlet id viewToResize_;
+
+ CGFloat widthChange_;
+}
+// Return the amount we changed our width by on last tweak.
+- (CGFloat)changedWidth;
+@end
diff --git a/AppKit/GTMUILocalizerAndLayoutTweaker.m b/AppKit/GTMUILocalizerAndLayoutTweaker.m
new file mode 100644
index 0000000..5ee8298
--- /dev/null
+++ b/AppKit/GTMUILocalizerAndLayoutTweaker.m
@@ -0,0 +1,300 @@
+//
+// GTMUILocalizerAndLayoutTweaker.m
+//
+// Copyright 2009 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy
+// of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+//
+
+#import "GTMDefines.h"
+#import "GTMUILocalizerAndLayoutTweaker.h"
+#import "GTMUILocalizer.h"
+
+// Helper that will try to do a SizeToFit on any UI items and do the special
+// case handling we also need to end up with a usable UI item. It also takes
+// an offset so we can slide the item if we need to.
+// Returns the change in the view's size.
+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).
+static BOOL IsRightAnchored(NSView *view);
+
+@interface GTMUILocalizerAndLayoutTweaker (PrivateMethods)
+// Recursively walk the UI triggering Tweakers.
+- (void)tweakView:(NSView *)view;
+@end
+
+@interface GTMWidthBasedTweaker (InternalMethods)
+// Does the actual work to size and adjust the views within this Tweaker. The
+// offset is the amount this view should shift as part of it's resize.
+// Returns change in this view's width.
+- (CGFloat)tweakLayoutWithOffset:(NSPoint)offset;
+@end
+
+@implementation GTMUILocalizerAndLayoutTweaker
+
+- (void)awakeFromNib {
+ if (uiObject_) {
+ GTMUILocalizer *localizer = localizer_;
+ if (!localizer) {
+ NSBundle *bundle = [GTMUILocalizer bundleForOwner:localizerOwner_];
+ localizer = [[[GTMUILocalizer alloc] initWithBundle:bundle] autorelease];
+ }
+ [self applyLocalizer:localizer tweakingUI:uiObject_];
+ }
+}
+
+- (void)applyLocalizer:(GTMUILocalizer *)localizer
+ tweakingUI:(id)uiObject {
+ // Localize first
+ [localizer localizeObject:uiObject recursively:YES];
+
+ // Figure out where we start
+ NSView *startView;
+ if ([uiObject isKindOfClass:[NSWindow class]]) {
+ startView = [(NSWindow *)uiObject contentView];
+ } else {
+ _GTMDevAssert([uiObject isKindOfClass:[NSView class]],
+ @"should have been a subclass of NSView");
+ startView = (NSView *)uiObject;
+ }
+
+ // And Tweak!
+ [self tweakView:startView];
+}
+
+- (void)tweakView:(NSView *)view {
+ // If its a alignment box, let it do its thing, otherwise, go find boxes
+ if ([view isKindOfClass:[GTMWidthBasedTweaker class]]) {
+ [(GTMWidthBasedTweaker *)view tweakLayoutWithOffset:NSZeroPoint];
+ } else {
+ NSArray *subviews = [view subviews];
+ NSView *subview = nil;
+ GTM_FOREACH_OBJECT(subview, subviews) {
+ [self tweakView:subview];
+ }
+ }
+}
+
++ (NSSize)sizeToFitView:(NSView *)view {
+ return SizeToFit(view, NSZeroPoint);
+}
+
+@end
+
+@implementation GTMWidthBasedTweaker
+
+- (CGFloat)changedWidth {
+ return widthChange_;
+}
+
+- (CGFloat)tweakLayoutWithOffset:(NSPoint)offset {
+ NSArray *subviews = [self subviews];
+ if (![subviews count]) {
+ widthChange_ = 0.0;
+ return widthChange_;
+ }
+
+ BOOL sumMode = NO;
+ 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) {
+ // No, so walk them x order moving them along so they don't overlap.
+ sumMode = YES;
+ subviews = [subviews sortedArrayUsingFunction:CompareFrameX context:NULL];
+ } else {
+ // Since they are vertical, any views pinned to the right will have to be
+ // shifted after we finish figuring out the final size.
+ rightAlignedSubViews = [NSMutableArray array];
+ rightAlignedSubViewDeltas = [NSMutableArray array];
+ }
+ }
+
+ // Size our subviews
+ NSView *subView;
+ CGFloat finalDelta = sumMode ? 0 : -CGFLOAT_MAX;
+ NSPoint subViewOffset = NSZeroPoint;
+ GTM_FOREACH_OBJECT(subView, subviews) {
+ if (sumMode) {
+ subViewOffset.x = finalDelta;
+ }
+ CGFloat delta = SizeToFit(subView, subViewOffset).width;
+ if (sumMode) {
+ finalDelta += delta;
+ } else {
+ if (delta > finalDelta) {
+ finalDelta = delta;
+ }
+ }
+ // Track the right anchored subviews size changes so we can update them
+ // once we know this view's size.
+ if (IsRightAnchored(subView)) {
+ [rightAlignedSubViews addObject:subView];
+ [rightAlignedSubViewDeltas addObject:[NSNumber numberWithDouble:delta]];
+ }
+ }
+
+ // Are we pinned to the right of our parent?
+ BOOL rightAnchored = IsRightAnchored(self);
+
+ // Adjust our size (turn off auto resize, because we just fixed up all the
+ // objects within us).
+ BOOL autoresizesSubviews = [self autoresizesSubviews];
+ if (autoresizesSubviews) {
+ [self setAutoresizesSubviews:NO];
+ }
+ NSRect selfFrame = [self frame];
+ selfFrame.size.width += finalDelta;
+ if (rightAnchored) {
+ // Right side is anchored, so we need to slide back to the left.
+ selfFrame.origin.x -= finalDelta;
+ }
+ selfFrame.origin.x += offset.x;
+ selfFrame.origin.y += offset.y;
+ [self setFrame:selfFrame];
+ if (autoresizesSubviews) {
+ [self setAutoresizesSubviews:autoresizesSubviews];
+ }
+
+ // Now spin over the list of right aligned view and their size changes
+ // fixing up their positions so they are still right aligned in our final
+ // view.
+ for (NSUInteger lp = 0; lp < [rightAlignedSubViews count]; ++lp) {
+ subView = [rightAlignedSubViews objectAtIndex:lp];
+ CGFloat delta = [[rightAlignedSubViewDeltas objectAtIndex:lp] doubleValue];
+ NSRect viewFrame = [subView frame];
+ viewFrame.origin.x += -delta + finalDelta;
+ [subView setFrame:viewFrame];
+ }
+
+ if (viewToSlideAndResize_) {
+ NSRect viewFrame = [viewToSlideAndResize_ frame];
+ if (!rightAnchored) {
+ // If our right wasn't anchored, this view slides (we push it right).
+ // (If our right was anchored, the assumption is the view is in front of
+ // us so its x shouldn't move.)
+ viewFrame.origin.x += finalDelta;
+ }
+ viewFrame.size.width -= finalDelta;
+ [viewToSlideAndResize_ setFrame:viewFrame];
+ }
+ if (viewToSlide_) {
+ NSRect viewFrame = [viewToSlide_ frame];
+ // Move the view the same direction we moved.
+ if (rightAnchored) {
+ viewFrame.origin.x -= finalDelta;
+ } else {
+ viewFrame.origin.x += finalDelta;
+ }
+ [viewToSlide_ setFrame:viewFrame];
+ }
+ if (viewToResize_) {
+ if ([viewToResize_ isKindOfClass:[NSWindow class]]) {
+ NSWindow *window = (NSWindow *)viewToResize_;
+ NSRect windowFrame = [window frame];
+ windowFrame.size.width += finalDelta;
+ [window setFrame:windowFrame display:YES];
+ // For some reason the content view is resizing, but not adjusting its
+ // origin, so correct it manually.
+ [[window contentView] setFrameOrigin:NSMakePoint(0, 0)];
+ // TODO: should we update min size?
+ } else {
+ NSRect viewFrame = [viewToResize_ frame];
+ viewFrame.size.width += finalDelta;
+ [viewToResize_ setFrame:viewFrame];
+ // TODO: should we check if this view is right anchored, and adjust its
+ // x position also?
+ }
+ }
+
+ widthChange_ = finalDelta;
+ return widthChange_;
+}
+
+@end
+
+#pragma mark -
+
+static NSSize SizeToFit(NSView *view, NSPoint offset) {
+
+ // If we've got one of us within us, recurse (for grids)
+ if ([view isKindOfClass:[GTMWidthBasedTweaker class]]) {
+ GTMWidthBasedTweaker *widthAlignmentBox = (GTMWidthBasedTweaker *)view;
+ return NSMakeSize([widthAlignmentBox tweakLayoutWithOffset:offset], 0);
+ }
+
+ NSRect oldFrame = [view frame];
+ NSRect fitFrame = oldFrame;
+ NSRect newFrame = oldFrame;
+
+ if ([view isKindOfClass:[NSTextField class]] &&
+ [(NSTextField *)view isEditable]) {
+ // Don't try to sizeToFit because edit fields really don't want to be sized
+ // 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)];
+ fitFrame = [view frame];
+ 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;
+ const float kMinButtonWidth = 70; // The default button size in IB.
+ newFrame.size.width = NSWidth(newFrame) + kExtraPaddingAmount;
+ if (NSWidth(newFrame) < kMinButtonWidth) {
+ newFrame.size.width = kMinButtonWidth;
+ }
+ }
+ }
+
+ // Apply the offset, and see if we need to change the frame (again).
+ newFrame.origin.x += offset.x;
+ newFrame.origin.y += offset.y;
+ if (!NSEqualRects(fitFrame, newFrame)) {
+ [view setFrame:newFrame];
+ }
+
+ // Return how much we changed size.
+ return NSMakeSize(NSWidth(newFrame) - NSWidth(oldFrame),
+ NSHeight(newFrame) - NSHeight(oldFrame));
+}
+
+static NSInteger CompareFrameX(id view1, id view2, void *context) {
+ CGFloat x1 = [view1 frame].origin.x;
+ CGFloat x2 = [view2 frame].origin.x;
+ if (x1 < x2)
+ return NSOrderedAscending;
+ else if (x1 > x2)
+ return NSOrderedDescending;
+ else
+ return NSOrderedSame;
+}
+
+static BOOL IsRightAnchored(NSView *view) {
+ NSUInteger autoresizing = [view autoresizingMask];
+ BOOL viewRightAnchored =
+ ((autoresizing & (NSViewMinXMargin | NSViewMaxXMargin)) == NSViewMinXMargin);
+ return viewRightAnchored;
+}
diff --git a/AppKit/GTMUILocalizerAndLayoutTweakerTest.h b/AppKit/GTMUILocalizerAndLayoutTweakerTest.h
new file mode 100644
index 0000000..9853007
--- /dev/null
+++ b/AppKit/GTMUILocalizerAndLayoutTweakerTest.h
@@ -0,0 +1,27 @@
+//
+// GTMUILocalizerAndLayoutTweakerTest.h
+//
+// Copyright 2009 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy
+// of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "GTMUILocalizer.h"
+
+@interface GTMUILocalizerAndLayoutTweakerTestWindowController : NSWindowController
+@end
+
+
+@interface GTMUILocalizerAndLayoutTweakerTestLocalizer : GTMUILocalizer
+@end
diff --git a/AppKit/GTMUILocalizerAndLayoutTweakerTest.m b/AppKit/GTMUILocalizerAndLayoutTweakerTest.m
new file mode 100644
index 0000000..10e83b1
--- /dev/null
+++ b/AppKit/GTMUILocalizerAndLayoutTweakerTest.m
@@ -0,0 +1,96 @@
+//
+// GTMUILocalizerAndLayoutTweakerTest.m
+//
+// Copyright 2009 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy
+// of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+//
+
+#import "GTMSenTestCase.h"
+#import "GTMUILocalizerAndLayoutTweakerTest.h"
+#import "GTMNSObject+UnitTesting.h"
+#import "GTMUILocalizer.h"
+
+static NSUInteger gTestPass = 0;
+
+@interface GTMUILocalizerAndLayoutTweakerTest : GTMTestCase
+@end
+
+@implementation GTMUILocalizerAndLayoutTweakerTest
+- (void)testWindowLocalization {
+ // Test with nib 1
+ for (gTestPass = 0; gTestPass < 3; ++gTestPass) {
+ GTMUILocalizerAndLayoutTweakerTestWindowController *controller =
+ [[GTMUILocalizerAndLayoutTweakerTestWindowController alloc]
+ initWithWindowNibName:@"GTMUILocalizerAndLayoutTweakerTest1"];
+ NSWindow *window = [controller window];
+ STAssertNotNil(window, @"Pass %ld", (long)gTestPass);
+ NSString *imageName =
+ [NSString stringWithFormat:@"GTMUILocalizerAndLayoutTweakerTest1-%ld",
+ (long)gTestPass];
+ GTMAssertObjectImageEqualToImageNamed(window, imageName,
+ @"Pass %ld", (long)gTestPass);
+ [controller release];
+ }
+ // Test with nib 2
+ for (gTestPass = 0; gTestPass < 3; ++gTestPass) {
+ GTMUILocalizerAndLayoutTweakerTestWindowController *controller =
+ [[GTMUILocalizerAndLayoutTweakerTestWindowController alloc]
+ initWithWindowNibName:@"GTMUILocalizerAndLayoutTweakerTest2"];
+ NSWindow *window = [controller window];
+ STAssertNotNil(window, @"Pass %ld", (long)gTestPass);
+ NSString *imageName =
+ [NSString stringWithFormat:@"GTMUILocalizerAndLayoutTweakerTest2-%ld",
+ (long)gTestPass];
+ GTMAssertObjectImageEqualToImageNamed(window, imageName,
+ @"Pass %ld", (long)gTestPass);
+ [controller release];
+ }
+}
+
+@end
+
+@implementation GTMUILocalizerAndLayoutTweakerTestWindowController
+@end
+
+@implementation GTMUILocalizerAndLayoutTweakerTestLocalizer
+
+- (NSString *)localizedStringForString:(NSString *)string {
+ // "[FRAGMENT]:[COUNT]:[COUNT]"
+ // String is split, fragment is repeated count times, and spaces are then
+ // trimmed. Gives us strings that don't change for the test, but easy to
+ // vary in size. Which count is used, is controled by |gTestPass| so we
+ // can use a nib more then once.
+ NSArray *parts = [string componentsSeparatedByString:@":"];
+ if ([parts count] > (gTestPass + 1)) {
+ NSString *fragment = [parts objectAtIndex:0];
+ NSInteger count = [[parts objectAtIndex:gTestPass + 1] intValue];
+ if (count) {
+ NSMutableString *result =
+ [NSMutableString stringWithCapacity:count * [fragment length]];
+ while (count--) {
+ [result appendString:fragment];
+ }
+ NSCharacterSet *ws = [NSCharacterSet whitespaceCharacterSet];
+ return [result stringByTrimmingCharactersInSet:ws];
+ }
+ }
+ return nil;
+}
+
+- (void)awakeFromNib {
+ // Stop the base one from logging or doing anything since we don't need it
+ // for this test.
+}
+
+@end
diff --git a/AppKit/GTMUILocalizerAndLayoutTweakerTest1.xib b/AppKit/GTMUILocalizerAndLayoutTweakerTest1.xib
new file mode 100644
index 0000000..db52b10
--- /dev/null
+++ b/AppKit/GTMUILocalizerAndLayoutTweakerTest1.xib
@@ -0,0 +1,1742 @@
+<?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">9J61</string>
+ <string key="IBDocument.InterfaceBuilderVersion">677</string>
+ <string key="IBDocument.AppKitVersion">949.46</string>
+ <string key="IBDocument.HIToolboxVersion">353.00</string>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="109"/>
+ </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, 48}, {532, 404}}</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="NSBox" id="13430988">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">266</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSView" id="180511442">
+ <reference key="NSNextResponder" ref="13430988"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSTextField" id="800844720">
+ <reference key="NSNextResponder" ref="180511442"/>
+ <int key="NSvFlags">266</int>
+ <string key="NSFrame">{{3, 45}, {349, 22}}</string>
+ <reference key="NSSuperview" ref="180511442"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="951606926">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents"/>
+ <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="800844720"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <object class="NSColor" key="NSBackgroundColor" id="763520216">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">textBackgroundColor</string>
+ <object class="NSColor" key="NSColor" id="644092534">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ </object>
+ <object class="NSColor" key="NSTextColor" id="843269795">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">textColor</string>
+ <object class="NSColor" key="NSColor" id="960820016">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MAA</bytes>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSTextField" id="745022904">
+ <reference key="NSNextResponder" ref="180511442"/>
+ <int key="NSvFlags">266</int>
+ <string key="NSFrame">{{3, 13}, {349, 22}}</string>
+ <reference key="NSSuperview" ref="180511442"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="810828168">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="745022904"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <reference key="NSBackgroundColor" ref="763520216"/>
+ <reference key="NSTextColor" ref="843269795"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="478979211">
+ <reference key="NSNextResponder" ref="180511442"/>
+ <int key="NSvFlags">266</int>
+ <string key="NSFrame">{{3, 77}, {349, 22}}</string>
+ <reference key="NSSuperview" ref="180511442"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="1044158630">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="478979211"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <reference key="NSBackgroundColor" ref="763520216"/>
+ <reference key="NSTextColor" ref="843269795"/>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{375, 109}</string>
+ <reference key="NSSuperview" ref="13430988"/>
+ </object>
+ </object>
+ <string key="NSFrame">{{158, 285}, {375, 109}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <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>
+ <reference key="NSBackgroundColor" ref="763520216"/>
+ <object class="NSColor" key="NSTextColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+ </object>
+ </object>
+ <reference key="NSContentView" ref="180511442"/>
+ <int key="NSBorderType">0</int>
+ <int key="NSBoxType">0</int>
+ <int key="NSTitlePosition">0</int>
+ <bool key="NSTransparent">NO</bool>
+ </object>
+ <object class="NSBox" id="588270165">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">10</int>
+ <string key="NSFrame">{{324, 173}, {188, 5}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <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>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSBackgroundColor" ref="763520216"/>
+ <object class="NSColor" key="NSTextColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+ </object>
+ </object>
+ <int key="NSBorderType">3</int>
+ <int key="NSBoxType">2</int>
+ <int key="NSTitlePosition">0</int>
+ <bool key="NSTransparent">NO</bool>
+ </object>
+ <object class="NSBox" id="814378125">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">10</int>
+ <string key="NSFrame">{{374, 98}, {138, 5}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <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>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSBackgroundColor" ref="763520216"/>
+ <object class="NSColor" key="NSTextColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+ </object>
+ </object>
+ <int key="NSBorderType">3</int>
+ <int key="NSBoxType">2</int>
+ <int key="NSTitlePosition">0</int>
+ <bool key="NSTransparent">NO</bool>
+ </object>
+ <object class="NSBox" id="876659295">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">10</int>
+ <string key="NSFrame">{{124, 38}, {388, 5}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <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>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSBackgroundColor" ref="763520216"/>
+ <object class="NSColor" key="NSTextColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+ </object>
+ </object>
+ <int key="NSBorderType">3</int>
+ <int key="NSBoxType">2</int>
+ <int key="NSTitlePosition">0</int>
+ <bool key="NSTransparent">NO</bool>
+ </object>
+ <object class="NSBox" id="751672940">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">10</int>
+ <string key="NSFrame">{{20, 235}, {327, 5}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <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>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSBackgroundColor" ref="763520216"/>
+ <object class="NSColor" key="NSTextColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+ </object>
+ </object>
+ <int key="NSBorderType">3</int>
+ <int key="NSBoxType">2</int>
+ <int key="NSTitlePosition">0</int>
+ <bool key="NSTransparent">NO</bool>
+ </object>
+ <object class="NSImageView" id="453085280">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableSet" key="NSDragTypes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="set.sortedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>Apple PDF pasteboard type</string>
+ <string>Apple PICT pasteboard type</string>
+ <string>Apple PNG pasteboard type</string>
+ <string>NSFilenamesPboardType</string>
+ <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
+ <string>NeXT TIFF v4.0 pasteboard type</string>
+ </object>
+ </object>
+ <string key="NSFrame">{{321, 77}, {48, 48}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSImageCell" key="NSCell" id="269363509">
+ <int key="NSCellFlags">130560</int>
+ <int key="NSCellFlags2">33554432</int>
+ <int key="NSAlign">0</int>
+ <int key="NSScale">0</int>
+ <int key="NSStyle">2</int>
+ <bool key="NSAnimates">NO</bool>
+ </object>
+ <bool key="NSEditable">YES</bool>
+ </object>
+ <object class="NSImageView" id="125766055">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">265</int>
+ <object class="NSMutableSet" key="NSDragTypes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="set.sortedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>Apple PDF pasteboard type</string>
+ <string>Apple PICT pasteboard type</string>
+ <string>Apple PNG pasteboard type</string>
+ <string>NSFilenamesPboardType</string>
+ <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
+ <string>NeXT TIFF v4.0 pasteboard type</string>
+ </object>
+ </object>
+ <string key="NSFrame">{{352, 213}, {48, 48}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSImageCell" key="NSCell" id="709523694">
+ <int key="NSCellFlags">130560</int>
+ <int key="NSCellFlags2">33554432</int>
+ <int key="NSAlign">0</int>
+ <int key="NSScale">0</int>
+ <int key="NSStyle">2</int>
+ <bool key="NSAnimates">NO</bool>
+ </object>
+ <bool key="NSEditable">YES</bool>
+ </object>
+ <object class="NSBox" id="359865555">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">12</int>
+ <string key="NSFrame">{{20, 201}, {275, 5}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <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>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSBackgroundColor" ref="763520216"/>
+ <object class="NSColor" key="NSTextColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+ </object>
+ </object>
+ <int key="NSBorderType">3</int>
+ <int key="NSBoxType">2</int>
+ <int key="NSTitlePosition">0</int>
+ <bool key="NSTransparent">NO</bool>
+ </object>
+ <object class="NSCustomView" id="496672244">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMatrix" id="122653364">
+ <reference key="NSNextResponder" ref="496672244"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 0}, {96, 38}}</string>
+ <reference key="NSSuperview" ref="496672244"/>
+ <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="404368211">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">mumble :5:1</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <int key="NSTag">1</int>
+ <reference key="NSControlView" ref="122653364"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">128</int>
+ <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 class="NSButtonCell" id="491468307">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">blah :8:1</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="122653364"/>
+ <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>
+ <integer value="0" id="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>
+ <object class="NSColor" key="NSColor" id="83689519">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwAA</bytes>
+ </object>
+ </object>
+ <reference key="NSAlternateImage" ref="520966901"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <string key="NSCellSize">{96, 18}</string>
+ <string key="NSIntercellSpacing">{4, 2}</string>
+ <int key="NSMatrixFlags">1151868928</int>
+ <string key="NSCellClass">NSActionCell</string>
+ <object class="NSButtonCell" key="NSProtoCell" id="538341112">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">Radio</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <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="83689519"/>
+ </object>
+ <reference key="NSAlternateImage" ref="520966901"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ <reference key="NSSelectedCell" ref="404368211"/>
+ <object class="NSColor" key="NSBackgroundColor" id="584893825">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlColor</string>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
+ </object>
+ </object>
+ <reference key="NSCellBackgroundColor" ref="644092534"/>
+ <reference key="NSFont" ref="396891173"/>
+ </object>
+ </object>
+ <string key="NSFrame">{{0, 20}, {116, 42}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <string key="NSClassName">GTMWidthBasedTweaker</string>
+ </object>
+ <object class="NSCustomView" id="583112334">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSButton" id="936710330">
+ <reference key="NSNextResponder" ref="583112334"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{14, 15}, {96, 32}}</string>
+ <reference key="NSSuperview" ref="583112334"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="183983727">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">w:10:2</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="936710330"/>
+ <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="NSCustomView" id="656888375">
+ <reference key="NSNextResponder" ref="583112334"/>
+ <int key="NSvFlags">292</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSTextField" id="290463544">
+ <reference key="NSNextResponder" ref="656888375"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 5}, {66, 17}}</string>
+ <reference key="NSSuperview" ref="656888375"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="612106675">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents">w:2:6</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="290463544"/>
+ <reference key="NSBackgroundColor" ref="584893825"/>
+ <object class="NSColor" key="NSTextColor" id="215232119">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlTextColor</string>
+ <reference key="NSColor" ref="960820016"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSTextField" id="406015244">
+ <reference key="NSNextResponder" ref="656888375"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 30}, {66, 17}}</string>
+ <reference key="NSSuperview" ref="656888375"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="535802230">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents">j:10:23</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="406015244"/>
+ <reference key="NSBackgroundColor" ref="584893825"/>
+ <reference key="NSTextColor" ref="215232119"/>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrame">{{112, 6}, {100, 54}}</string>
+ <reference key="NSSuperview" ref="583112334"/>
+ <string key="NSClassName">GTMWidthBasedTweaker</string>
+ </object>
+ <object class="NSButton" id="849868912">
+ <reference key="NSNextResponder" ref="583112334"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{214, 15}, {96, 32}}</string>
+ <reference key="NSSuperview" ref="583112334"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="547252370">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">z:7:10</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="849868912"/>
+ <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, 70}, {316, 63}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <string key="NSClassName">GTMWidthBasedTweaker</string>
+ </object>
+ <object class="NSCustomView" id="797989996">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSButton" id="900885236">
+ <reference key="NSNextResponder" ref="797989996"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{206, 1}, {96, 32}}</string>
+ <reference key="NSSuperview" ref="797989996"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="356842314">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">no:1:2</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="900885236"/>
+ <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="1049850645">
+ <reference key="NSNextResponder" ref="797989996"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{14, 1}, {96, 32}}</string>
+ <reference key="NSSuperview" ref="797989996"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="571145548">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">foo :4:1</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="1049850645"/>
+ <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="709832699">
+ <reference key="NSNextResponder" ref="797989996"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{103, 1}, {111, 32}}</string>
+ <reference key="NSSuperview" ref="797989996"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="976017799">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">foobar :2:1</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="709832699"/>
+ <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, 157}, {316, 38}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <string key="NSClassName">GTMWidthBasedTweaker</string>
+ </object>
+ <object class="NSCustomView" id="273331462">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">265</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSButton" id="718941270">
+ <reference key="NSNextResponder" ref="273331462"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{18, 24}, {91, 18}}</string>
+ <reference key="NSSuperview" ref="273331462"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="1051100744">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">i:26:4</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="718941270"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <object class="NSCustomResource" key="NSNormalImage" id="980015056">
+ <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="141065122">
+ <reference key="NSNextResponder" ref="273331462"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{18, 44}, {91, 18}}</string>
+ <reference key="NSSuperview" ref="273331462"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="959040643">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">y:25:2</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="141065122"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <reference key="NSNormalImage" ref="980015056"/>
+ <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="320146273">
+ <reference key="NSNextResponder" ref="273331462"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{18, 4}, {91, 18}}</string>
+ <reference key="NSSuperview" ref="273331462"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="473788937">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">M:17:7</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="320146273"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <reference key="NSNormalImage" ref="980015056"/>
+ <reference key="NSAlternateImage" ref="644707509"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrame">{{405, 203}, {127, 69}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <string key="NSClassName">GTMWidthBasedTweaker</string>
+ </object>
+ <object class="NSCustomView" id="450922667">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSTextField" id="32340604">
+ <reference key="NSNextResponder" ref="450922667"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 84}, {139, 17}}</string>
+ <reference key="NSSuperview" ref="450922667"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="1064530732">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents">ab:10:2</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="32340604"/>
+ <reference key="NSBackgroundColor" ref="584893825"/>
+ <reference key="NSTextColor" ref="215232119"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="499628444">
+ <reference key="NSNextResponder" ref="450922667"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 20}, {139, 17}}</string>
+ <reference key="NSSuperview" ref="450922667"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="200889835">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents">l:12:3</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="499628444"/>
+ <reference key="NSBackgroundColor" ref="584893825"/>
+ <reference key="NSTextColor" ref="215232119"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="236725617">
+ <reference key="NSNextResponder" ref="450922667"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 52}, {139, 17}}</string>
+ <reference key="NSSuperview" ref="450922667"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="65808262">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents">W:10:4</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="236725617"/>
+ <reference key="NSBackgroundColor" ref="584893825"/>
+ <reference key="NSTextColor" ref="215232119"/>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrame">{{0, 280}, {153, 121}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <string key="NSClassName">GTMWidthBasedTweaker</string>
+ </object>
+ </object>
+ <string key="NSFrameSize">{532, 404}</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>
+ <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">uiObject_</string>
+ <reference key="source" ref="431527667"/>
+ <reference key="destination" ref="1005"/>
+ </object>
+ <int key="connectionID">84</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">viewToSlideAndResize_</string>
+ <reference key="source" ref="496672244"/>
+ <reference key="destination" ref="876659295"/>
+ </object>
+ <int key="connectionID">104</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">viewToSlide_</string>
+ <reference key="source" ref="583112334"/>
+ <reference key="destination" ref="453085280"/>
+ </object>
+ <int key="connectionID">107</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">viewToSlideAndResize_</string>
+ <reference key="source" ref="583112334"/>
+ <reference key="destination" ref="814378125"/>
+ </object>
+ <int key="connectionID">108</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">viewToResize_</string>
+ <reference key="source" ref="797989996"/>
+ <reference key="destination" ref="359865555"/>
+ </object>
+ <int key="connectionID">110</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">viewToSlideAndResize_</string>
+ <reference key="source" ref="797989996"/>
+ <reference key="destination" ref="588270165"/>
+ </object>
+ <int key="connectionID">111</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">viewToSlide_</string>
+ <reference key="source" ref="273331462"/>
+ <reference key="destination" ref="125766055"/>
+ </object>
+ <int key="connectionID">113</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">viewToSlideAndResize_</string>
+ <reference key="source" ref="273331462"/>
+ <reference key="destination" ref="751672940"/>
+ </object>
+ <int key="connectionID">114</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">viewToSlideAndResize_</string>
+ <reference key="source" ref="450922667"/>
+ <reference key="destination" ref="13430988"/>
+ </object>
+ <int key="connectionID">116</int>
+ </object>
+ <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>
+ <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="450922667"/>
+ <reference ref="13430988"/>
+ <reference ref="751672940"/>
+ <reference ref="125766055"/>
+ <reference ref="273331462"/>
+ <reference ref="797989996"/>
+ <reference ref="359865555"/>
+ <reference ref="588270165"/>
+ <reference ref="583112334"/>
+ <reference ref="453085280"/>
+ <reference ref="814378125"/>
+ <reference ref="876659295"/>
+ <reference ref="496672244"/>
+ </object>
+ <reference key="parent" ref="1005"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">34</int>
+ <reference key="object" ref="13430988"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="800844720"/>
+ <reference ref="745022904"/>
+ <reference ref="478979211"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">13</int>
+ <reference key="object" ref="800844720"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="951606926"/>
+ </object>
+ <reference key="parent" ref="13430988"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">14</int>
+ <reference key="object" ref="951606926"/>
+ <reference key="parent" ref="800844720"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">15</int>
+ <reference key="object" ref="745022904"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="810828168"/>
+ </object>
+ <reference key="parent" ref="13430988"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">16</int>
+ <reference key="object" ref="810828168"/>
+ <reference key="parent" ref="745022904"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">11</int>
+ <reference key="object" ref="478979211"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1044158630"/>
+ </object>
+ <reference key="parent" ref="13430988"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">12</int>
+ <reference key="object" ref="1044158630"/>
+ <reference key="parent" ref="478979211"/>
+ </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">115</int>
+ <reference key="object" ref="450922667"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="32340604"/>
+ <reference ref="499628444"/>
+ <reference ref="236725617"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="32340604"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1064530732"/>
+ </object>
+ <reference key="parent" ref="450922667"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="1064530732"/>
+ <reference key="parent" ref="32340604"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">9</int>
+ <reference key="object" ref="499628444"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="200889835"/>
+ </object>
+ <reference key="parent" ref="450922667"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="200889835"/>
+ <reference key="parent" ref="499628444"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="236725617"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="65808262"/>
+ </object>
+ <reference key="parent" ref="450922667"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">8</int>
+ <reference key="object" ref="65808262"/>
+ <reference key="parent" ref="236725617"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">79</int>
+ <reference key="object" ref="876659295"/>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">72</int>
+ <reference key="object" ref="453085280"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="269363509"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">73</int>
+ <reference key="object" ref="269363509"/>
+ <reference key="parent" ref="453085280"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">112</int>
+ <reference key="object" ref="273331462"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="320146273"/>
+ <reference ref="141065122"/>
+ <reference ref="718941270"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">21</int>
+ <reference key="object" ref="320146273"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="473788937"/>
+ </object>
+ <reference key="parent" ref="273331462"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">22</int>
+ <reference key="object" ref="473788937"/>
+ <reference key="parent" ref="320146273"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">17</int>
+ <reference key="object" ref="141065122"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="959040643"/>
+ </object>
+ <reference key="parent" ref="273331462"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">18</int>
+ <reference key="object" ref="959040643"/>
+ <reference key="parent" ref="141065122"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">19</int>
+ <reference key="object" ref="718941270"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1051100744"/>
+ </object>
+ <reference key="parent" ref="273331462"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">20</int>
+ <reference key="object" ref="1051100744"/>
+ <reference key="parent" ref="718941270"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">52</int>
+ <reference key="object" ref="751672940"/>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">82</int>
+ <reference key="object" ref="359865555"/>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">49</int>
+ <reference key="object" ref="588270165"/>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">102</int>
+ <reference key="object" ref="496672244"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="122653364"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">75</int>
+ <reference key="object" ref="122653364"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="404368211"/>
+ <reference ref="491468307"/>
+ <reference ref="538341112"/>
+ </object>
+ <reference key="parent" ref="496672244"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">76</int>
+ <reference key="object" ref="404368211"/>
+ <reference key="parent" ref="122653364"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">77</int>
+ <reference key="object" ref="491468307"/>
+ <reference key="parent" ref="122653364"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">78</int>
+ <reference key="object" ref="538341112"/>
+ <reference key="parent" ref="122653364"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">85</int>
+ <reference key="object" ref="125766055"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="709523694"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">86</int>
+ <reference key="object" ref="709523694"/>
+ <reference key="parent" ref="125766055"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">59</int>
+ <reference key="object" ref="814378125"/>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">109</int>
+ <reference key="object" ref="797989996"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="709832699"/>
+ <reference ref="1049850645"/>
+ <reference ref="900885236"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">42</int>
+ <reference key="object" ref="709832699"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="976017799"/>
+ </object>
+ <reference key="parent" ref="797989996"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">43</int>
+ <reference key="object" ref="976017799"/>
+ <reference key="parent" ref="709832699"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">40</int>
+ <reference key="object" ref="1049850645"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="571145548"/>
+ </object>
+ <reference key="parent" ref="797989996"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">41</int>
+ <reference key="object" ref="571145548"/>
+ <reference key="parent" ref="1049850645"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">44</int>
+ <reference key="object" ref="900885236"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="356842314"/>
+ </object>
+ <reference key="parent" ref="797989996"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">45</int>
+ <reference key="object" ref="356842314"/>
+ <reference key="parent" ref="900885236"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">106</int>
+ <reference key="object" ref="583112334"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="936710330"/>
+ <reference ref="656888375"/>
+ <reference ref="849868912"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">62</int>
+ <reference key="object" ref="849868912"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="547252370"/>
+ </object>
+ <reference key="parent" ref="583112334"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">63</int>
+ <reference key="object" ref="547252370"/>
+ <reference key="parent" ref="849868912"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">105</int>
+ <reference key="object" ref="656888375"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="406015244"/>
+ <reference ref="290463544"/>
+ </object>
+ <reference key="parent" ref="583112334"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">67</int>
+ <reference key="object" ref="406015244"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="535802230"/>
+ </object>
+ <reference key="parent" ref="656888375"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">70</int>
+ <reference key="object" ref="535802230"/>
+ <reference key="parent" ref="406015244"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">68</int>
+ <reference key="object" ref="290463544"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="612106675"/>
+ </object>
+ <reference key="parent" ref="656888375"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">69</int>
+ <reference key="object" ref="612106675"/>
+ <reference key="parent" ref="290463544"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">61</int>
+ <reference key="object" ref="936710330"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="183983727"/>
+ </object>
+ <reference key="parent" ref="583112334"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">64</int>
+ <reference key="object" ref="183983727"/>
+ <reference key="parent" ref="936710330"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">117</int>
+ <reference key="object" ref="730292222"/>
+ <reference key="parent" ref="1002"/>
+ </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.IBWindowTemplateEditedContentRect</string>
+ <string>1.NSWindowTemplate.visibleAtLaunch</string>
+ <string>1.WindowOrigin</string>
+ <string>1.editorWindowContentRectSynchronizationRect</string>
+ <string>10.IBPluginDependency</string>
+ <string>11.IBPluginDependency</string>
+ <string>117.IBPluginDependency</string>
+ <string>12.IBPluginDependency</string>
+ <string>13.IBPluginDependency</string>
+ <string>14.IBPluginDependency</string>
+ <string>15.IBPluginDependency</string>
+ <string>16.IBPluginDependency</string>
+ <string>17.IBPluginDependency</string>
+ <string>18.IBPluginDependency</string>
+ <string>19.IBPluginDependency</string>
+ <string>2.IBPluginDependency</string>
+ <string>20.IBPluginDependency</string>
+ <string>21.IBPluginDependency</string>
+ <string>22.IBPluginDependency</string>
+ <string>35.IBPluginDependency</string>
+ <string>40.IBPluginDependency</string>
+ <string>41.IBPluginDependency</string>
+ <string>42.IBPluginDependency</string>
+ <string>43.IBPluginDependency</string>
+ <string>44.IBPluginDependency</string>
+ <string>45.IBPluginDependency</string>
+ <string>49.IBPluginDependency</string>
+ <string>5.IBPluginDependency</string>
+ <string>52.IBPluginDependency</string>
+ <string>59.IBPluginDependency</string>
+ <string>6.IBPluginDependency</string>
+ <string>61.IBPluginDependency</string>
+ <string>62.IBPluginDependency</string>
+ <string>63.IBPluginDependency</string>
+ <string>64.IBPluginDependency</string>
+ <string>67.IBPluginDependency</string>
+ <string>68.IBPluginDependency</string>
+ <string>69.IBPluginDependency</string>
+ <string>7.IBPluginDependency</string>
+ <string>70.IBPluginDependency</string>
+ <string>72.IBPluginDependency</string>
+ <string>73.IBPluginDependency</string>
+ <string>75.IBPluginDependency</string>
+ <string>76.IBPluginDependency</string>
+ <string>77.IBPluginDependency</string>
+ <string>78.IBPluginDependency</string>
+ <string>79.IBPluginDependency</string>
+ <string>8.IBPluginDependency</string>
+ <string>82.IBPluginDependency</string>
+ <string>85.IBPluginDependency</string>
+ <string>86.IBPluginDependency</string>
+ <string>9.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, 752}, {532, 404}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{636, 752}, {532, 404}}</string>
+ <boolean value="NO"/>
+ <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>
+ </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">119</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">NSMatrix</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">NSTextField</string>
+ <reference key="sourceIdentifier" ref="925048441"/>
+ </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/GTMUILocalizerAndLayoutTweakerTest2.xib b/AppKit/GTMUILocalizerAndLayoutTweakerTest2.xib
new file mode 100644
index 0000000..b4c7c6f
--- /dev/null
+++ b/AppKit/GTMUILocalizerAndLayoutTweakerTest2.xib
@@ -0,0 +1,862 @@
+<?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">9J61</string>
+ <string key="IBDocument.InterfaceBuilderVersion">677</string>
+ <string key="IBDocument.AppKitVersion">949.46</string>
+ <string key="IBDocument.HIToolboxVersion">353.00</string>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="1"/>
+ </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">{{123, 932}, {504, 183}}</string>
+ <int key="NSWTFlags">536870912</int>
+ <string key="NSWindowTitle">Window2</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="NSBox" id="13430988">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">266</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSView" id="180511442">
+ <reference key="NSNextResponder" ref="13430988"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSTextField" id="800844720">
+ <reference key="NSNextResponder" ref="180511442"/>
+ <int key="NSvFlags">266</int>
+ <string key="NSFrame">{{3, 45}, {336, 22}}</string>
+ <reference key="NSSuperview" ref="180511442"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="951606926">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents"/>
+ <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="800844720"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <object class="NSColor" key="NSBackgroundColor" id="763520216">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">textBackgroundColor</string>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ </object>
+ <object class="NSColor" key="NSTextColor" id="843269795">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">textColor</string>
+ <object class="NSColor" key="NSColor" id="960820016">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MAA</bytes>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSTextField" id="745022904">
+ <reference key="NSNextResponder" ref="180511442"/>
+ <int key="NSvFlags">266</int>
+ <string key="NSFrame">{{3, 13}, {336, 22}}</string>
+ <reference key="NSSuperview" ref="180511442"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="810828168">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="745022904"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <reference key="NSBackgroundColor" ref="763520216"/>
+ <reference key="NSTextColor" ref="843269795"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="478979211">
+ <reference key="NSNextResponder" ref="180511442"/>
+ <int key="NSvFlags">266</int>
+ <string key="NSFrame">{{3, 77}, {336, 22}}</string>
+ <reference key="NSSuperview" ref="180511442"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="1044158630">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="478979211"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <reference key="NSBackgroundColor" ref="763520216"/>
+ <reference key="NSTextColor" ref="843269795"/>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{342, 109}</string>
+ <reference key="NSSuperview" ref="13430988"/>
+ </object>
+ </object>
+ <string key="NSFrame">{{145, 64}, {342, 109}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <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>
+ <reference key="NSBackgroundColor" ref="763520216"/>
+ <object class="NSColor" key="NSTextColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+ </object>
+ </object>
+ <reference key="NSContentView" ref="180511442"/>
+ <int key="NSBorderType">0</int>
+ <int key="NSBoxType">0</int>
+ <int key="NSTitlePosition">0</int>
+ <bool key="NSTransparent">NO</bool>
+ </object>
+ <object class="NSCustomView" id="797989996">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">289</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSButton" id="900885236">
+ <reference key="NSNextResponder" ref="797989996"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{206, 12}, {96, 32}}</string>
+ <reference key="NSSuperview" ref="797989996"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="356842314">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">ok:8:1</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="900885236"/>
+ <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="1049850645">
+ <reference key="NSNextResponder" ref="797989996"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{14, 12}, {96, 32}}</string>
+ <reference key="NSSuperview" ref="797989996"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="571145548">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">abc:3:1</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="1049850645"/>
+ <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="709832699">
+ <reference key="NSNextResponder" ref="797989996"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{110, 12}, {96, 32}}</string>
+ <reference key="NSSuperview" ref="797989996"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="976017799">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">w:9:3</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="709832699"/>
+ <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">{{188, 0}, {316, 60}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <string key="NSClassName">GTMWidthBasedTweaker</string>
+ </object>
+ <object class="NSCustomView" id="450922667">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSTextField" id="32340604">
+ <reference key="NSNextResponder" ref="450922667"/>
+ <int key="NSvFlags">265</int>
+ <string key="NSFrame">{{17, 84}, {111, 17}}</string>
+ <reference key="NSSuperview" ref="450922667"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="1064530732">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents">foo :8:2</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="32340604"/>
+ <object class="NSColor" key="NSBackgroundColor" id="584893825">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlColor</string>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
+ </object>
+ </object>
+ <object class="NSColor" key="NSTextColor" id="215232119">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlTextColor</string>
+ <reference key="NSColor" ref="960820016"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSTextField" id="499628444">
+ <reference key="NSNextResponder" ref="450922667"/>
+ <int key="NSvFlags">265</int>
+ <string key="NSFrame">{{17, 20}, {111, 17}}</string>
+ <reference key="NSSuperview" ref="450922667"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="200889835">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents">w:12:6</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="499628444"/>
+ <reference key="NSBackgroundColor" ref="584893825"/>
+ <reference key="NSTextColor" ref="215232119"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="236725617">
+ <reference key="NSNextResponder" ref="450922667"/>
+ <int key="NSvFlags">265</int>
+ <string key="NSFrame">{{17, 52}, {111, 17}}</string>
+ <reference key="NSSuperview" ref="450922667"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="65808262">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents">mumble :3:1</string>
+ <reference key="NSSupport" ref="396891173"/>
+ <reference key="NSControlView" ref="236725617"/>
+ <reference key="NSBackgroundColor" ref="584893825"/>
+ <reference key="NSTextColor" ref="215232119"/>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrame">{{0, 59}, {140, 121}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <string key="NSClassName">GTMWidthBasedTweaker</string>
+ </object>
+ </object>
+ <string key="NSFrameSize">{504, 183}</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="239437949">
+ <string key="NSClassName">GTMUILocalizerAndLayoutTweakerTestLocalizer</string>
+ </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">uiObject_</string>
+ <reference key="source" ref="431527667"/>
+ <reference key="destination" ref="1005"/>
+ </object>
+ <int key="connectionID">84</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">viewToResize_</string>
+ <reference key="source" ref="450922667"/>
+ <reference key="destination" ref="1005"/>
+ </object>
+ <int key="connectionID">118</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">viewToSlideAndResize_</string>
+ <reference key="source" ref="450922667"/>
+ <reference key="destination" ref="13430988"/>
+ </object>
+ <int key="connectionID">119</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">localizer_</string>
+ <reference key="source" ref="431527667"/>
+ <reference key="destination" ref="239437949"/>
+ </object>
+ <int key="connectionID">121</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">122</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="450922667"/>
+ <reference ref="13430988"/>
+ <reference ref="797989996"/>
+ </object>
+ <reference key="parent" ref="1005"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">34</int>
+ <reference key="object" ref="13430988"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="800844720"/>
+ <reference ref="745022904"/>
+ <reference ref="478979211"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">13</int>
+ <reference key="object" ref="800844720"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="951606926"/>
+ </object>
+ <reference key="parent" ref="13430988"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">14</int>
+ <reference key="object" ref="951606926"/>
+ <reference key="parent" ref="800844720"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">15</int>
+ <reference key="object" ref="745022904"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="810828168"/>
+ </object>
+ <reference key="parent" ref="13430988"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">16</int>
+ <reference key="object" ref="810828168"/>
+ <reference key="parent" ref="745022904"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">11</int>
+ <reference key="object" ref="478979211"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1044158630"/>
+ </object>
+ <reference key="parent" ref="13430988"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">12</int>
+ <reference key="object" ref="1044158630"/>
+ <reference key="parent" ref="478979211"/>
+ </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">115</int>
+ <reference key="object" ref="450922667"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="32340604"/>
+ <reference ref="499628444"/>
+ <reference ref="236725617"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="32340604"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1064530732"/>
+ </object>
+ <reference key="parent" ref="450922667"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="1064530732"/>
+ <reference key="parent" ref="32340604"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">9</int>
+ <reference key="object" ref="499628444"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="200889835"/>
+ </object>
+ <reference key="parent" ref="450922667"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="200889835"/>
+ <reference key="parent" ref="499628444"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="236725617"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="65808262"/>
+ </object>
+ <reference key="parent" ref="450922667"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">8</int>
+ <reference key="object" ref="65808262"/>
+ <reference key="parent" ref="236725617"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">109</int>
+ <reference key="object" ref="797989996"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1049850645"/>
+ <reference ref="900885236"/>
+ <reference ref="709832699"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">42</int>
+ <reference key="object" ref="709832699"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="976017799"/>
+ </object>
+ <reference key="parent" ref="797989996"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">43</int>
+ <reference key="object" ref="976017799"/>
+ <reference key="parent" ref="709832699"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">40</int>
+ <reference key="object" ref="1049850645"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="571145548"/>
+ </object>
+ <reference key="parent" ref="797989996"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">41</int>
+ <reference key="object" ref="571145548"/>
+ <reference key="parent" ref="1049850645"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">44</int>
+ <reference key="object" ref="900885236"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="356842314"/>
+ </object>
+ <reference key="parent" ref="797989996"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">45</int>
+ <reference key="object" ref="356842314"/>
+ <reference key="parent" ref="900885236"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">120</int>
+ <reference key="object" ref="239437949"/>
+ <reference key="parent" ref="1002"/>
+ </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.IBWindowTemplateEditedContentRect</string>
+ <string>1.NSWindowTemplate.visibleAtLaunch</string>
+ <string>1.WindowOrigin</string>
+ <string>1.editorWindowContentRectSynchronizationRect</string>
+ <string>10.IBPluginDependency</string>
+ <string>11.IBPluginDependency</string>
+ <string>12.IBPluginDependency</string>
+ <string>120.IBPluginDependency</string>
+ <string>13.IBPluginDependency</string>
+ <string>14.IBPluginDependency</string>
+ <string>15.IBPluginDependency</string>
+ <string>16.IBPluginDependency</string>
+ <string>2.IBPluginDependency</string>
+ <string>35.IBPluginDependency</string>
+ <string>40.IBPluginDependency</string>
+ <string>41.IBPluginDependency</string>
+ <string>42.IBPluginDependency</string>
+ <string>43.IBPluginDependency</string>
+ <string>44.IBPluginDependency</string>
+ <string>45.IBPluginDependency</string>
+ <string>5.IBPluginDependency</string>
+ <string>6.IBPluginDependency</string>
+ <string>7.IBPluginDependency</string>
+ <string>8.IBPluginDependency</string>
+ <string>9.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>{{632, 945}, {504, 183}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{632, 945}, {504, 183}}</string>
+ <boolean value="NO"/>
+ <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>
+ </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">122</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="832487978">
+ <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="965049481">
+ <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="965049481"/>
+ </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="832487978"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="450080117">
+ <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="450080117"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSCell</string>
+ <reference key="sourceIdentifier" ref="450080117"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSControl</string>
+ <reference key="sourceIdentifier" ref="450080117"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSMenu</string>
+ <reference key="sourceIdentifier" ref="450080117"/>
+ </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">NSTextField</string>
+ <reference key="sourceIdentifier" ref="450080117"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="907434799">
+ <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="450080117"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <reference key="sourceIdentifier" ref="907434799"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <reference key="sourceIdentifier" ref="450080117"/>
+ </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/TestData/GTMUILocalizerAndLayoutTweakerTest1-0.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-0.tiff
new file mode 100644
index 0000000..4d0e231
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-0.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-1.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-1.tiff
new file mode 100644
index 0000000..faace9d
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-1.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-2.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-2.tiff
new file mode 100644
index 0000000..99214f4
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest1-2.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest2-0.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest2-0.tiff
new file mode 100644
index 0000000..25c53d9
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest2-0.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest2-1.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest2-1.tiff
new file mode 100644
index 0000000..6d30743
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest2-1.tiff
Binary files differ
diff --git a/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest2-2.tiff b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest2-2.tiff
new file mode 100644
index 0000000..906fd9c
--- /dev/null
+++ b/AppKit/TestData/GTMUILocalizerAndLayoutTweakerTest2-2.tiff
Binary files differ
diff --git a/GTM.xcodeproj/project.pbxproj b/GTM.xcodeproj/project.pbxproj
index c5e6f80..debea55 100644
--- a/GTM.xcodeproj/project.pbxproj
+++ b/GTM.xcodeproj/project.pbxproj
@@ -88,7 +88,7 @@
8B3E292F0EEB53F8000681D8 /* GTMCarbonEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3E292B0EEB53F3000681D8 /* GTMCarbonEvent.h */; settings = {ATTRIBUTES = (Public, ); }; };
8B3E2A3F0EEB564D000681D8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F42E09AD0D19A62F00D5DDE0 /* Carbon.framework */; };
8B3E2A410EEB565B000681D8 /* GTMUnitTestingUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B45A2680DA498A0001148C5 /* GTMUnitTestingUtilities.m */; };
- 8B40994B0F93C5CC00DF540E /* GTMUILocalizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4099490F93C5CC00DF540E /* GTMUILocalizer.h */; };
+ 8B40994B0F93C5CC00DF540E /* GTMUILocalizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4099490F93C5CC00DF540E /* GTMUILocalizer.h */; settings = {ATTRIBUTES = (Public, ); }; };
8B40994C0F93C5CC00DF540E /* GTMUILocalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B40994A0F93C5CC00DF540E /* GTMUILocalizer.m */; };
8B409BC60F94405A00DF540E /* GTMUILocalizerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B409BC50F94405A00DF540E /* GTMUILocalizerTest.m */; };
8B409BE60F9442C800DF540E /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8B409BE50F9442C800DF540E /* Localizable.strings */; };
@@ -248,6 +248,15 @@
F42E09550D199BBF00D5DDE0 /* GTMSystemVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = F48FE2930D198D24009257D2 /* GTMSystemVersion.m */; };
F42E095E0D199BD600D5DDE0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
F42E09AE0D19A62F00D5DDE0 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F42E09AD0D19A62F00D5DDE0 /* Carbon.framework */; };
+ F42E2C69102B1261004DF054 /* GTMUILocalizerAndLayoutTweakerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = F42E2C68102B1261004DF054 /* GTMUILocalizerAndLayoutTweakerTest.m */; };
+ F42E2C84102B14B0004DF054 /* GTMUILocalizerAndLayoutTweakerTest1.xib in Resources */ = {isa = PBXBuildFile; fileRef = F42E2C83102B14B0004DF054 /* GTMUILocalizerAndLayoutTweakerTest1.xib */; };
+ F42E2CFF102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-0.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F42E2CFC102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-0.tiff */; };
+ F42E2D00102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-1.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F42E2CFD102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-1.tiff */; };
+ F42E2D01102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-2.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F42E2CFE102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-2.tiff */; };
+ F42E2D08102B2283004DF054 /* GTMUILocalizerAndLayoutTweakerTest2.xib in Resources */ = {isa = PBXBuildFile; fileRef = F42E2D07102B2283004DF054 /* GTMUILocalizerAndLayoutTweakerTest2.xib */; };
+ F42E2D24102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-0.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F42E2D21102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-0.tiff */; };
+ F42E2D25102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-1.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F42E2D22102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-1.tiff */; };
+ F42E2D26102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-2.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F42E2D23102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-2.tiff */; };
F431221D0DD4E3B800F45252 /* GTMStackTrace.h in Headers */ = {isa = PBXBuildFile; fileRef = F431221A0DD4E3B800F45252 /* GTMStackTrace.h */; settings = {ATTRIBUTES = (Public, ); }; };
F431221F0DD4E3C900F45252 /* GTMStackTraceTest.m in Sources */ = {isa = PBXBuildFile; fileRef = F431221B0DD4E3B800F45252 /* GTMStackTraceTest.m */; };
F435DE7C0DC0B6580069CDE8 /* GTMNSBezierPath+CGPathTest.ppc64.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F435DE7A0DC0B6580069CDE8 /* GTMNSBezierPath+CGPathTest.ppc64.tiff */; };
@@ -256,6 +265,8 @@
F437F55D0D50BC0A00F5C3A4 /* GTMRegex.h in Headers */ = {isa = PBXBuildFile; fileRef = F437F55A0D50BC0A00F5C3A4 /* GTMRegex.h */; settings = {ATTRIBUTES = (Public, ); }; };
F437F55E0D50BC0A00F5C3A4 /* GTMRegex.m in Sources */ = {isa = PBXBuildFile; fileRef = F437F55B0D50BC0A00F5C3A4 /* GTMRegex.m */; };
F437F5620D50BC1D00F5C3A4 /* GTMRegexTest.m in Sources */ = {isa = PBXBuildFile; fileRef = F437F55C0D50BC0A00F5C3A4 /* GTMRegexTest.m */; };
+ F43C7A571021FAA300ABF03C /* GTMUILocalizerAndLayoutTweaker.h in Headers */ = {isa = PBXBuildFile; fileRef = F43C7A551021FAA300ABF03C /* GTMUILocalizerAndLayoutTweaker.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F43C7A581021FAA300ABF03C /* GTMUILocalizerAndLayoutTweaker.m in Sources */ = {isa = PBXBuildFile; fileRef = F43C7A561021FAA300ABF03C /* GTMUILocalizerAndLayoutTweaker.m */; };
F43DCDCD0D4796C600959A62 /* GTMLoginItems.h in Headers */ = {isa = PBXBuildFile; fileRef = F43DCDCB0D4796C600959A62 /* GTMLoginItems.h */; settings = {ATTRIBUTES = (Public, ); }; };
F43DCDCE0D4796C600959A62 /* GTMLoginItems.m in Sources */ = {isa = PBXBuildFile; fileRef = F43DCDCC0D4796C600959A62 /* GTMLoginItems.m */; };
F43E447A0D4918B20041161F /* GTMLinearRGBShading.h in Headers */ = {isa = PBXBuildFile; fileRef = F43E44770D4918B20041161F /* GTMLinearRGBShading.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -560,6 +571,16 @@
F42E086E0D199A5B00D5DDE0 /* GTM-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GTM-Info.plist"; sourceTree = "<group>"; };
F42E089B0D199B1800D5DDE0 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
F42E09AD0D19A62F00D5DDE0 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+ F42E2C67102B1261004DF054 /* GTMUILocalizerAndLayoutTweakerTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMUILocalizerAndLayoutTweakerTest.h; sourceTree = "<group>"; };
+ F42E2C68102B1261004DF054 /* GTMUILocalizerAndLayoutTweakerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTMUILocalizerAndLayoutTweakerTest.m; sourceTree = "<group>"; };
+ F42E2C83102B14B0004DF054 /* GTMUILocalizerAndLayoutTweakerTest1.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GTMUILocalizerAndLayoutTweakerTest1.xib; sourceTree = "<group>"; };
+ F42E2CFC102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-0.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest1-0.tiff"; sourceTree = "<group>"; };
+ F42E2CFD102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-1.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest1-1.tiff"; sourceTree = "<group>"; };
+ F42E2CFE102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-2.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest1-2.tiff"; sourceTree = "<group>"; };
+ F42E2D07102B2283004DF054 /* GTMUILocalizerAndLayoutTweakerTest2.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GTMUILocalizerAndLayoutTweakerTest2.xib; sourceTree = "<group>"; };
+ F42E2D21102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-0.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest2-0.tiff"; sourceTree = "<group>"; };
+ F42E2D22102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-1.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest2-1.tiff"; sourceTree = "<group>"; };
+ F42E2D23102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-2.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMUILocalizerAndLayoutTweakerTest2-2.tiff"; sourceTree = "<group>"; };
F431221A0DD4E3B800F45252 /* GTMStackTrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMStackTrace.h; sourceTree = "<group>"; };
F431221B0DD4E3B800F45252 /* GTMStackTraceTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTMStackTraceTest.m; sourceTree = "<group>"; };
F435DE7A0DC0B6580069CDE8 /* GTMNSBezierPath+CGPathTest.ppc64.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "GTMNSBezierPath+CGPathTest.ppc64.tiff"; sourceTree = "<group>"; };
@@ -568,6 +589,8 @@
F437F55A0D50BC0A00F5C3A4 /* GTMRegex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMRegex.h; sourceTree = "<group>"; };
F437F55B0D50BC0A00F5C3A4 /* GTMRegex.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTMRegex.m; sourceTree = "<group>"; };
F437F55C0D50BC0A00F5C3A4 /* GTMRegexTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTMRegexTest.m; sourceTree = "<group>"; };
+ F43C7A551021FAA300ABF03C /* GTMUILocalizerAndLayoutTweaker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMUILocalizerAndLayoutTweaker.h; sourceTree = "<group>"; };
+ F43C7A561021FAA300ABF03C /* GTMUILocalizerAndLayoutTweaker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTMUILocalizerAndLayoutTweaker.m; sourceTree = "<group>"; };
F43DCDCB0D4796C600959A62 /* GTMLoginItems.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMLoginItems.h; sourceTree = "<group>"; };
F43DCDCC0D4796C600959A62 /* GTMLoginItems.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTMLoginItems.m; sourceTree = "<group>"; };
F43DCEC60D47BEA000959A62 /* GTMLoginItemsTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTMLoginItemsTest.m; sourceTree = "<group>"; };
@@ -875,6 +898,12 @@
F435DE8A0DC0B7620069CDE8 /* GTMNSBezierPath+RoundRectTest.ppc64.tiff */,
8BE869720DBE89C100749827 /* GTMNSBezierPath+RoundRectTest.x86_64.tiff */,
8B7AD4970DABBB5800B84F4A /* GTMNSBezierPath+ShadingTest.tiff */,
+ F42E2CFC102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-0.tiff */,
+ F42E2CFD102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-1.tiff */,
+ F42E2CFE102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-2.tiff */,
+ F42E2D21102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-0.tiff */,
+ F42E2D22102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-1.tiff */,
+ F42E2D23102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-2.tiff */,
8B409EC30F9530C200DF540E /* GTMUILocalizerWindow1State.gtmUTState */,
8B409EE80F95325000DF540E /* GTMUILocalizerWindow2State.gtmUTState */,
8B409EF30F95331500DF540E /* GTMUILocalizerMenuState.gtmUTState */,
@@ -951,6 +980,12 @@
F47F1C740D490E5C00925B8F /* GTMShading.h */,
8B4099490F93C5CC00DF540E /* GTMUILocalizer.h */,
8B40994A0F93C5CC00DF540E /* GTMUILocalizer.m */,
+ F43C7A551021FAA300ABF03C /* GTMUILocalizerAndLayoutTweaker.h */,
+ F43C7A561021FAA300ABF03C /* GTMUILocalizerAndLayoutTweaker.m */,
+ F42E2C67102B1261004DF054 /* GTMUILocalizerAndLayoutTweakerTest.h */,
+ F42E2C68102B1261004DF054 /* GTMUILocalizerAndLayoutTweakerTest.m */,
+ F42E2C83102B14B0004DF054 /* GTMUILocalizerAndLayoutTweakerTest1.xib */,
+ F42E2D07102B2283004DF054 /* GTMUILocalizerAndLayoutTweakerTest2.xib */,
8B409E3E0F950DE900DF540E /* GTMUILocalizerTest.h */,
8B409BC50F94405A00DF540E /* GTMUILocalizerTest.m */,
8B409E8B0F952C2C00DF540E /* GTMUILocalizerTestWindow.xib */,
@@ -1238,6 +1273,7 @@
8BD35B910FB22980009058F5 /* GTMNSScanner+JSON.h in Headers */,
8BF4D2E60FC7073A009ABC3F /* GTMGoogleSearch.h in Headers */,
8207B89B0FEA7A9E008A527B /* GTMWindowSheetController.h in Headers */,
+ F43C7A571021FAA300ABF03C /* GTMUILocalizerAndLayoutTweaker.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1519,6 +1555,14 @@
8B409F060F95341E00DF540E /* GTMUILocalizerTestView.xib in Resources */,
8B409F130F95352500DF540E /* GTMUILocalizerView2State.gtmUTState in Resources */,
8B409F140F95352500DF540E /* GTMUILocalizerView1State.gtmUTState in Resources */,
+ F42E2C84102B14B0004DF054 /* GTMUILocalizerAndLayoutTweakerTest1.xib in Resources */,
+ F42E2CFF102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-0.tiff in Resources */,
+ F42E2D00102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-1.tiff in Resources */,
+ F42E2D01102B21EE004DF054 /* GTMUILocalizerAndLayoutTweakerTest1-2.tiff in Resources */,
+ F42E2D08102B2283004DF054 /* GTMUILocalizerAndLayoutTweakerTest2.xib in Resources */,
+ F42E2D24102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-0.tiff in Resources */,
+ F42E2D25102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-1.tiff in Resources */,
+ F42E2D26102B24E5004DF054 /* GTMUILocalizerAndLayoutTweakerTest2-2.tiff in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1749,6 +1793,7 @@
8BD35B920FB22980009058F5 /* GTMNSScanner+JSON.m in Sources */,
8BF4D2E70FC7073A009ABC3F /* GTMGoogleSearch.m in Sources */,
8207B89C0FEA7AA1008A527B /* GTMWindowSheetController.m in Sources */,
+ F43C7A581021FAA300ABF03C /* GTMUILocalizerAndLayoutTweaker.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1777,6 +1822,7 @@
8BAA9EFD0F7C2AB500DF4F12 /* GTMThemeTest.m in Sources */,
8B409BC60F94405A00DF540E /* GTMUILocalizerTest.m in Sources */,
8207B89D0FEA7AA6008A527B /* GTMWindowSheetControllerTest.m in Sources */,
+ F42E2C69102B1261004DF054 /* GTMUILocalizerAndLayoutTweakerTest.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};