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