Merge branch 'refs/heads/master' into slevenbits

This commit is contained in:
Alexander Ljungberg
2013-02-06 16:37:49 +00:00
16 changed files with 2464 additions and 277 deletions
+38 -2
View File
@@ -27,6 +27,7 @@
@import "CGColor.j"
@import "CGColorSpace.j"
@import "CGGradient.j"
@import "CPBezierPath.j"
@import "CPGraphicsContext.j"
CPGradientDrawsBeforeStartingLocation = kCGGradientDrawsBeforeStartLocation;
@@ -40,6 +41,11 @@ CPGradientDrawsAfterEndingLocation = kCGGradientDrawsAfterEndLocation;
CGGradient _gradient;
}
- (id)initWithStartingColor:(CPColor)startingColor endingColor:(CPColor)endingColor
{
return [self initWithColors:[startingColor, endingColor]];
}
- (id)initWithColors:(CPArray)someColors
{
var count = [someColors count];
@@ -83,7 +89,19 @@ CPGradientDrawsAfterEndingLocation = kCGGradientDrawsAfterEndLocation;
CGContextClipToRect(ctx, rect);
CGContextAddRect(ctx, rect);
var startPoint,
[self _drawAtAngle:angle];
CGContextRestoreGState(ctx);
}
/*!
@ignore like draw in rect but apply no clipping.
*/
- (void)_drawInRect:(CGRect)rect atAngle:(float)angle
{
var ctx = [[CPGraphicsContext currentContext] graphicsPort],
startPoint,
endPoint;
// Modulo of negative values doesn't work as expected in JS.
@@ -117,7 +135,25 @@ CPGradientDrawsAfterEndingLocation = kCGGradientDrawsAfterEndLocation;
startPoint.y + length * SIN(radians));
[self drawFromPoint:startPoint toPoint:endPoint options:CPGradientDrawsBeforeStartingLocation | CPGradientDrawsAfterEndingLocation];
CGContextRestoreGState(ctx);
}
- (void)drawInBezierPath:(CPBezierPath)aPath angle:(float)anAngle
{
[CPGraphicsContext saveGraphicsState];
var ctx = [[CPGraphicsContext currentContext] graphicsPort];
// Nail down the path which CGContextDrawLinearGradient will cause to be filled.
// Note we don't do this by clipping to the path and then calling drawInRect:atAngle:
// as this would cut off any antialias of the drawing, plus any active context shadow.
CGContextBeginPath(ctx);
CGContextAddPath(ctx, aPath._path);
CGContextSetLineWidth(ctx, [aPath lineWidth]);
CGContextClosePath(ctx);
[self _drawInRect:[aPath bounds] atAngle:anAngle];
[CPGraphicsContext restoreGraphicsState];
}
- (void)drawFromPoint:(NSPoint)startingPoint toPoint:(NSPoint)endingPoint options:(NSGradientDrawingOptions)options
+1 -1
View File
@@ -223,7 +223,7 @@ var _CPMenuBarVisible = NO,
- (float)menuBarHeight
{
if (self === [CPApp mainMenu])
return [[CPTheme defaultTheme] valueForAttributeWithName:@"menu-bar-height" forClass:_CPMenuView];
return [CPMenu menuBarHeight];
return 0.0;
}
+7 -28
View File
@@ -31,11 +31,9 @@
*/
@implementation CPShadow : CPObject
{
CGSize _offset;
float _blurRadius;
CPColor _color;
CPString _cssString;
CGSize _offset @accessors(property=shadowOffset);
float _blurRadius @accessors(property=shadowBlurRadius);
CPColor _color @accessors(property=shadowColor);
}
/*!
@@ -60,35 +58,16 @@
_offset = anOffset;
_blurRadius = aBlurRadius;
_color = aColor;
_cssString = [_color cssString] + " " + ROUND(anOffset.width) + @"px " + ROUND(anOffset.height) + @"px " + ROUND(_blurRadius) + @"px";
}
return self;
}
/*!
Returns the shadow's offset.
*/
- (CGSize)shadowOffset
- (void)set
{
return _offset;
}
var context = [[CPGraphicsContext currentContext] graphicsPort];
/*!
Returns the shadow's blur radius
*/
- (float)shadowBlurRadius
{
return _blurRadius;
}
/*!
Returns the shadow's color.
*/
- (CPColor)shadowColor
{
return _color;
CGContextSetShadowWithColor(context, _offset, _blurRadius, _color);
}
/*!
@@ -96,7 +75,7 @@
*/
- (CPString)cssString
{
return _cssString;
return [_color cssString] + " " + ROUND(_offset.width) + @"px " + ROUND(_offset.height) + @"px " + ROUND(_blurRadius) + @"px";
}
@end
+7 -19
View File
@@ -309,11 +309,13 @@
// resize the window
var theWindow = [self window],
frame = [theWindow frame];
frame = [theWindow frame],
dy;
var dy = _CGRectGetHeight([_headView frame]) + _CGRectGetHeight([_dividerView frame]);
if (enable)
dy = -dy;
dy = -(_CGRectGetHeight([_headView frame]) + _CGRectGetHeight([_dividerView frame]));
else
dy = [self toolbarMaxY] + 1.0;
var newHeight = _CGRectGetMaxY(frame) + dy,
newWidth = _CGRectGetMaxX(frame);
@@ -321,9 +323,11 @@
frame.size.height += dy;
[self setFrameSize:_CGSizeMake(newWidth, newHeight)];
[self tile];
[theWindow setFrame:frame display:NO animate:NO];
[self setNeedsLayout];
}
- (void)layoutSubviews
@@ -335,22 +339,6 @@
[_minimizeButton setImage:[self valueForThemeAttribute:@"minimize-image-button"]];
[_minimizeButton setAlternateImage:[self valueForThemeAttribute:@"minimize-image-highlighted-button"]];
if (![_headView isHidden])
[_headView setFrame:CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), [self toolbarMaxY])];
else
[_headView setFrame:CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), 0)];
if (![_dividerView isHidden])
[_dividerView setFrame:CGRectMake(0.0, CGRectGetMaxY([_headView frame]), CGRectGetWidth(bounds), 1.0)];
else
[_dividerView setFrame:CGRectMake(0.0, CGRectGetMaxY([_headView frame]), CGRectGetWidth(bounds), 0.0)];
[_dividerView setBackgroundColor:[self valueForThemeAttribute:@"divider-color"]];
var y = CGRectGetMaxY([_dividerView frame]);
[_bodyView setFrame:CGRectMake(0.0, y, CGRectGetWidth(bounds), CGRectGetHeight(bounds) - y)];
[_bodyView setBackgroundColor:[self valueForThemeAttribute:@"body-color"]];
[_headView setNeedsLayout];
+2 -1
View File
@@ -1869,7 +1869,8 @@ var themedButtonValues = nil,
{
positions: "full",
width: 5.0,
height: 1.0
height: 1.0,
bottomHeight:5.0
}),
closeButtonImage = PatternImage(@"window-standard-close-button.png", 16, 16),
+8 -3
View File
@@ -23,6 +23,7 @@
@import <Foundation/CPObject.j>
@import "CPButton.j"
@import "CPMenu.j"
@import "CPPanel.j"
// Use forward declaration because this file is imported by CPPopover
@@ -189,7 +190,8 @@ var _CPPopoverWindow_shouldClose_ = 1 << 0,
originRight = _CGPointCreateCopy(platformOrigin),
originTop = _CGPointCreateCopy(platformOrigin),
originBottom = _CGPointCreateCopy(platformOrigin),
frameSize = [self frame].size;
frameSize = [self frame].size,
menuBarHeight = [CPMenu menuBarVisible] ? [CPMenu menuBarHeight] : 0;
// CPMaxXEdge
originRight.x += platformRect.size.width;
@@ -215,12 +217,15 @@ var _CPPopoverWindow_shouldClose_ = 1 << 0,
case CPMaxXEdge:
requestedOrigin = originRight;
break;
case CPMinXEdge:
requestedOrigin = originLeft;
break;
case CPMinYEdge:
requestedOrigin = originTop;
break;
case CPMaxYEdge:
requestedOrigin = originBottom;
break;
@@ -252,8 +257,8 @@ var _CPPopoverWindow_shouldClose_ = 1 << 0,
if (origin.y < 0)
{
[_windowView setArrowOffsetY:origin.y];
origin.y = 0;
[_windowView setArrowOffsetY:origin.y - menuBarHeight];
origin.y = menuBarHeight;
}
if (origin.y + frameSize.height > nativeRect.size.height)
+23
View File
@@ -120,6 +120,29 @@ var concat = Array.prototype.concat,
return self[anIndex];
}
- (CPArray)objectsAtIndexes:(CPIndexSet)indexes
{
if ([indexes lastIndex] >= self.length)
[CPException raise:CPRangeException reason:_cmd + " indexes out of bounds"];
var ranges = indexes._ranges,
count = ranges.length,
result = [],
i = 0;
for (; i < count; i++)
{
var range = ranges[i],
loc = range.location,
len = range.length,
subArray = self.slice(loc, loc + len);
result.splice.apply(result, [result.length, 0].concat(subArray));
}
return result;
}
- (CPUInteger)indexOfObject:(id)anObject inRange:(CPRange)aRange
{
// Only use isEqual: if our object is a CPObject.
+7 -2
View File
@@ -190,13 +190,18 @@
if (self === anObject)
return YES;
if (self.isa !== anObject.isa || _value !== [anObject evaluateObject:nil])
if (self.isa !== anObject.isa || _value !== [anObject evaluateWithObject:nil])
return NO;
return YES;
}
- (BOOL)evaluateObject:(id)object
- (BOOL)evaluateWithObject:(id)object
{
return _value;
}
- (BOOL)evaluateWithObject:(id)object substitutionVariables:(CPDictionary)variables
{
return _value;
}
+48
View File
@@ -212,6 +212,54 @@ var ELEMENTS = 100,
}
}
- (void)testObjectsAtIndexesSpeed
{
var SIZE = 1000,
c = SIZE,
r = rr = REPEATS = 100,
location = 0,
array = [CPArray array],
indexes = [CPIndexSet indexSet];
while (c--)
array.push(""+c);
while (location < SIZE - 10)
{
var rangeLength = ROUND(10 * RAND());
[indexes addIndexesInRange:CPMakeRange(location, rangeLength)];
location += rangeLength + ROUND(10 * RAND());
}
var d = new Date(),
test1,
test2;
while (r--)
test1 = [array _previous_objectsAtIndexes:indexes];
var dd = new Date();
while (rr--)
test2 = [array objectsAtIndexes:indexes];
var ddd = new Date();
CPLog.warn("\n_CPJavaScriptArray -objectsAtIndexes:");
CPLog.warn(" CPArray -objectsAtIndexes: " + (dd - d) + "ms.");
CPLog.warn("_CPJavaScriptArray -objectsAtIndexes: " + (ddd - dd) + "ms.");
if (![test1 isEqual:test2])
[self fail:"_CPJavaScriptArray -objectsAtIndexes: returns an wrong value"];
}
@end
@implementation _CPJavaScriptArray (ObjectsAtIndexes)
- (CPArray)_previous_objectsAtIndexes:(CPIndexSet)indexes
{
return [super objectsAtIndexes:indexes];
}
@end
@implementation CPArray (NativeSort)
+17
View File
@@ -450,6 +450,23 @@
[self assertTrue:([filtered count] == 2) message:@"Count should be 2 and is " + [filtered count]];
}
- (void)testTruepredicate
{
var data = [1, 2, 3],
result;
var tpred = [CPPredicate predicateWithFormat:@"TRUEPREDICATE"];
var ctpred = [CPCompoundPredicate andPredicateWithSubpredicates:[tpred]];
// fails if evaluateWithObject: isn't implemented in CPPredicate_BOOL
result = [tpred evaluateWithObject:"gazonk"];
[self assertTrue:result message:"'" + [tpred description] + "' should evaluate to true"];
// fails if evaluateWithObject:substitutionVariables: isn't implemented in CPPredicate_BOOL
result = [data filteredArrayUsingPredicate:ctpred];
[self assertTrue:[result isEqual:data] message:"[1, 2, 3] filtered with '" + [ctpred description] + "' should return [1, 2, 3]"];
}
@end
@implementation CPObject (PredicateTesting)
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+4
View File
@@ -39,6 +39,7 @@
IBOutlet TNXCodeCapp *xcc;
IBOutlet NSWindow *windowDebug;
IBOutlet NSMenuItem *menuDebug;
IBOutlet NSMenuItem *menuHistory;
IBOutlet TNErrorDataView *dataViewError;
NSImage *_iconActive;
@@ -58,6 +59,7 @@
- (void)registerDefaults;
- (void)growlWithTitle:(NSString *)aTitle message:(NSString *)aMessage;
- (void)openCenteredWindow:(NSWindow *)aWindow;
- (void)_prepareHistoryMenu;
- (IBAction)chooseFolder:(id)aSender;
- (IBAction)openErrors:(id)sender;
@@ -67,6 +69,8 @@
- (IBAction)openHelp:(id)aSender;
- (IBAction)openAbout:(id)aSender;
- (IBAction)updatePreferences:(id)aSender;
- (IBAction)switchProject:(id)aSender;
- (IBAction)clearProjectHistory:(id)aSender;
@end
+61 -4
View File
@@ -93,15 +93,17 @@ float heightForStringDrawing(NSString *myString, NSFont *myFont, float myWidth)
}
[xcc setDelegate:self];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(XCodeCappConversionDidStart:) name:XCCConversionStartNotification object:xcc];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(XCodeCappConversionDidStop:) name:XCCConversionStopNotification object:xcc];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(XCodeCappPopulateProject:) name:XCCDidPopulateProjectNotification object:xcc];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(XCodeCappListeningDidStart:) name:XCCListeningStartNotification object:xcc];
[helpTextView setTextContainerInset:NSSizeFromCGSize(CGSizeMake(10.0, 10.0))];
[xcc start];
[self _prepareHistoryMenu];
}
/*!
@@ -133,6 +135,7 @@ float heightForStringDrawing(NSString *myString, NSFont *myFont, float myWidth)
[appDefaults setObject:[NSNumber numberWithInt:0] forKey:@"XCCAPIMode"];
[appDefaults setObject:[NSNumber numberWithInt:1] forKey:@"XCCReactMode"];
[appDefaults setObject:[NSNumber numberWithInt:1] forKey:@"XCCReopenLastProject"];
[appDefaults setObject:[[NSArray alloc] init] forKey:@"XCCProjectHistory"];
[defaults registerDefaults:appDefaults];
}
@@ -215,6 +218,33 @@ float heightForStringDrawing(NSString *myString, NSFont *myFont, float myWidth)
clickContext:nil];
}
/*!
Prepare the history menu
*/
- (void)_prepareHistoryMenu
{
NSMenu *menu = [[NSMenu alloc] init];
NSArray *projectHistory = [[NSUserDefaults standardUserDefaults] objectForKey:@"XCCProjectHistory"];
for(int i = 0; i < [projectHistory count]; i++)
{
NSString *itemTitle = [[projectHistory objectAtIndex:i] lastPathComponent];
NSString *projectPath = [[projectHistory objectAtIndex:i] stringByStandardizingPath];
NSString *currentProjectPath = [[[xcc currentProjectURL] path] stringByStandardizingPath];
NSMenuItem *item = [menu addItemWithTitle:itemTitle action:@selector(switchProject:) keyEquivalent:@""];
[item setRepresentedObject:projectPath];
if ([currentProjectPath isEqualToString:projectPath])
[item setAction:nil];
}
[menu addItem:[NSMenuItem separatorItem]];
[menu addItemWithTitle:@"Clear history" action:@selector(clearProjectHistory:) keyEquivalent:@""];
[menuHistory setEnabled:([projectHistory count]) ? YES : NO];
[menuHistory setSubmenu:menu];
}
#pragma mark -
@@ -250,7 +280,19 @@ float heightForStringDrawing(NSString *myString, NSFont *myFont, float myWidth)
if ([openPanel runModal] != NSFileHandlingPanelOKButton)
return;
[xcc listenProjectAtPath:[NSString stringWithFormat:@"%@/", [[[openPanel URLs] objectAtIndex:0] path]]];
NSString *projectPath = [NSString stringWithFormat:@"%@/", [[[openPanel URLs] objectAtIndex:0] path]];
NSMutableArray *projectHistory = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"XCCProjectHistory"]];
if ([projectHistory containsObject:[projectPath stringByStandardizingPath]])
[projectHistory removeObject:[projectPath stringByStandardizingPath]];
[projectHistory insertObject:[projectPath stringByStandardizingPath] atIndex:0];
[[NSUserDefaults standardUserDefaults] setObject:projectHistory forKey:@"XCCProjectHistory"];
[xcc listenProjectAtPath:projectPath];
[self _prepareHistoryMenu];
}
/*!
@@ -268,6 +310,21 @@ float heightForStringDrawing(NSString *myString, NSFont *myFont, float myWidth)
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"LastOpenedPath"];
}
- (IBAction)switchProject:(id)aSender
{
NSString *newPath = [aSender representedObject];
[self stopListener:aSender];
[xcc listenProjectAtPath:newPath];
[self _prepareHistoryMenu];
}
- (IBAction)clearProjectHistory:(id)aSender
{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray array] forKey:@"XCCProjectHistory"];
[self _prepareHistoryMenu];
}
/*!
Open the xCode support project in xCode
@param aSender the sender of the action
+49 -207
View File
@@ -2,13 +2,13 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1050</int>
<string key="IBDocument.SystemVersion">12D54</string>
<string key="IBDocument.InterfaceBuilderVersion">2844</string>
<string key="IBDocument.SystemVersion">12D61</string>
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
<string key="IBDocument.AppKitVersion">1187.37</string>
<string key="IBDocument.HIToolboxVersion">626.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">2844</string>
<string key="NS.object.0">3084</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSButton</string>
@@ -60,7 +60,7 @@
<nil key="NSViewClass"/>
<nil key="NSUserInterfaceItemIdentifier"/>
<object class="NSView" key="NSWindowView" id="524832152">
<nil key="NSNextResponder"/>
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTextField" id="135374801">
@@ -117,6 +117,7 @@ YWppdGFAYXBhcmFqaXRhLmNvbQ</string>
</object>
</array>
<string key="NSFrameSize">{375, 153}</string>
<reference key="NSSuperview"/>
<reference key="NSNextKeyView" ref="135374801"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
@@ -166,6 +167,24 @@ YWppdGFAYXBhcmFqaXRhLmNvbQ</string>
<reference key="NSOnImage" ref="451435966"/>
<reference key="NSMixedImage" ref="521607813"/>
</object>
<object class="NSMenuItem" id="602162139">
<reference key="NSMenu" ref="293792969"/>
<string key="NSTitle">Open Recent</string>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="451435966"/>
<reference key="NSMixedImage" ref="521607813"/>
</object>
<object class="NSMenuItem" id="109499447">
<reference key="NSMenu" ref="293792969"/>
<bool key="NSIsDisabled">YES</bool>
<bool key="NSIsSeparator">YES</bool>
<string key="NSTitle"/>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="451435966"/>
<reference key="NSMixedImage" ref="521607813"/>
</object>
<object class="NSMenuItem" id="8232279">
<reference key="NSMenu" ref="293792969"/>
<string key="NSTitle">About...</string>
@@ -182,7 +201,7 @@ YWppdGFAYXBhcmFqaXRhLmNvbQ</string>
<reference key="NSOnImage" ref="451435966"/>
<reference key="NSMixedImage" ref="521607813"/>
</object>
<object class="NSMenuItem" id="109499447">
<object class="NSMenuItem" id="329844908">
<reference key="NSMenu" ref="293792969"/>
<bool key="NSIsDisabled">YES</bool>
<bool key="NSIsSeparator">YES</bool>
@@ -228,7 +247,6 @@ YWppdGFAYXBhcmFqaXRhLmNvbQ</string>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{512, 249}</string>
<reference key="NSSuperview" ref="493529786"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="185808728"/>
<bool key="NSEnabled">YES</bool>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
@@ -313,7 +331,6 @@ YWppdGFAYXBhcmFqaXRhLmNvbQ</string>
</array>
<string key="NSFrame">{{1, 1}, {512, 249}}</string>
<reference key="NSSuperview" ref="351336909"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="578469478"/>
<reference key="NSDocView" ref="578469478"/>
<reference key="NSBGColor" ref="254108606"/>
@@ -324,7 +341,6 @@ YWppdGFAYXBhcmFqaXRhLmNvbQ</string>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{413, 17}, {15, 166}}</string>
<reference key="NSSuperview" ref="351336909"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="169310253"/>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<reference key="NSTarget" ref="351336909"/>
@@ -336,7 +352,6 @@ YWppdGFAYXBhcmFqaXRhLmNvbQ</string>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{1, 183}, {427, 15}}</string>
<reference key="NSSuperview" ref="351336909"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="437791480"/>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<int key="NSsFlags">1</int>
@@ -347,7 +362,6 @@ YWppdGFAYXBhcmFqaXRhLmNvbQ</string>
</array>
<string key="NSFrame">{{-1, 35}, {514, 251}}</string>
<reference key="NSSuperview" ref="166068453"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="493529786"/>
<int key="NSsFlags">133682</int>
<reference key="NSVScroller" ref="185808728"/>
@@ -363,7 +377,6 @@ YWppdGFAYXBhcmFqaXRhLmNvbQ</string>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{314, 8}, {85, 19}}</string>
<reference key="NSSuperview" ref="166068453"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="873219284"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="302978101">
@@ -390,8 +403,6 @@ YWppdGFAYXBhcmFqaXRhLmNvbQ</string>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{407, 8}, {85, 19}}</string>
<reference key="NSSuperview" ref="166068453"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="566868790">
<int key="NSCellFlags">-2080374784</int>
@@ -411,7 +422,6 @@ YWppdGFAYXBhcmFqaXRhLmNvbQ</string>
</array>
<string key="NSFrameSize">{512, 285}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="351336909"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
@@ -860,8 +870,6 @@ d2hhdCB5b3UgYXJlIGRvaW5nLCBsZWF2ZSB0aGlzIG9uICJBdXRvIi4</string>
<int key="NSvFlags">297</int>
<string key="NSFrame">{{182, 19}, {18, 19}}</string>
<reference key="NSSuperview" ref="765897076"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="16212794">
<int key="NSCellFlags">-2080374784</int>
@@ -887,7 +895,6 @@ d2hhdCB5b3UgYXJlIGRvaW5nLCBsZWF2ZSB0aGlzIG9uICJBdXRvIi4</string>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{7, 9}, {170, 18}}</string>
<reference key="NSSuperview" ref="765897076"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1003500738"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="24981968">
@@ -906,7 +913,6 @@ d2hhdCB5b3UgYXJlIGRvaW5nLCBsZWF2ZSB0aGlzIG9uICJBdXRvIi4</string>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{7, 30}, {170, 17}}</string>
<reference key="NSSuperview" ref="765897076"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="284994474"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="1045170492">
@@ -930,7 +936,6 @@ d2hhdCB5b3UgYXJlIGRvaW5nLCBsZWF2ZSB0aGlzIG9uICJBdXRvIi4</string>
</array>
<string key="NSFrameSize">{209, 57}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1060533501"/>
<string key="NSClassName">TNErrorDataView</string>
</object>
@@ -1153,6 +1158,14 @@ d2hhdCB5b3UgYXJlIGRvaW5nLCBsZWF2ZSB0aGlzIG9uICJBdXRvIi4</string>
</object>
<int key="connectionID">682</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">menuHistory</string>
<reference key="source" ref="138157001"/>
<reference key="destination" ref="602162139"/>
</object>
<int key="connectionID">694</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">performClose:</string>
@@ -1427,8 +1440,10 @@ d2hhdCB5b3UgYXJlIGRvaW5nLCBsZWF2ZSB0aGlzIG9uICJBdXRvIi4</string>
<reference ref="806558167"/>
<reference ref="931008714"/>
<reference ref="1053204856"/>
<reference ref="109499447"/>
<reference ref="8232279"/>
<reference ref="329844908"/>
<reference ref="109499447"/>
<reference ref="602162139"/>
</array>
<reference key="parent" ref="0"/>
</object>
@@ -1844,6 +1859,16 @@ d2hhdCB5b3UgYXJlIGRvaW5nLCBsZWF2ZSB0aGlzIG9uICJBdXRvIi4</string>
<reference key="object" ref="16212794"/>
<reference key="parent" ref="1003500738"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">691</int>
<reference key="object" ref="329844908"/>
<reference key="parent" ref="293792969"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">692</int>
<reference key="object" ref="602162139"/>
<reference key="parent" ref="293792969"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@@ -1926,199 +1951,16 @@ d2hhdCB5b3UgYXJlIGRvaW5nLCBsZWF2ZSB0aGlzIG9uICJBdXRvIi4</string>
<string key="680.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="687.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="688.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="691.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="692.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">690</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">AppController</string>
<string key="superclassName">NSObject</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="chooseFolder:">id</string>
<string key="clearErrors:">id</string>
<string key="openAbout:">id</string>
<string key="openErrors:">id</string>
<string key="openHelp:">id</string>
<string key="openXCode:">id</string>
<string key="stopListener:">id</string>
<string key="updatePreferences:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="chooseFolder:">
<string key="name">chooseFolder:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="clearErrors:">
<string key="name">clearErrors:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="openAbout:">
<string key="name">openAbout:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="openErrors:">
<string key="name">openErrors:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="openHelp:">
<string key="name">openHelp:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="openXCode:">
<string key="name">openXCode:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="stopListener:">
<string key="name">stopListener:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="updatePreferences:">
<string key="name">updatePreferences:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="aboutWindow">NSPanel</string>
<string key="buttonPreferencesAPIMode">NSPopUpButton</string>
<string key="checkBoxPreferencesReactMode">NSButton</string>
<string key="dataViewError">TNErrorDataView</string>
<string key="errorsPanel">NSPanel</string>
<string key="errorsTable">NSTableView</string>
<string key="helpTextView">NSTextView</string>
<string key="helpWindow">NSWindow</string>
<string key="labelVersion">NSTextField</string>
<string key="menuDebug">NSMenuItem</string>
<string key="menuItemOpenXCode">NSMenuItem</string>
<string key="menuItemStartStop">NSMenuItem</string>
<string key="preferencesController">NSUserDefaultsController</string>
<string key="statusMenu">NSMenu</string>
<string key="windowDebug">NSWindow</string>
<string key="xcc">TNXCodeCapp</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="aboutWindow">
<string key="name">aboutWindow</string>
<string key="candidateClassName">NSPanel</string>
</object>
<object class="IBToOneOutletInfo" key="buttonPreferencesAPIMode">
<string key="name">buttonPreferencesAPIMode</string>
<string key="candidateClassName">NSPopUpButton</string>
</object>
<object class="IBToOneOutletInfo" key="checkBoxPreferencesReactMode">
<string key="name">checkBoxPreferencesReactMode</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="dataViewError">
<string key="name">dataViewError</string>
<string key="candidateClassName">TNErrorDataView</string>
</object>
<object class="IBToOneOutletInfo" key="errorsPanel">
<string key="name">errorsPanel</string>
<string key="candidateClassName">NSPanel</string>
</object>
<object class="IBToOneOutletInfo" key="errorsTable">
<string key="name">errorsTable</string>
<string key="candidateClassName">NSTableView</string>
</object>
<object class="IBToOneOutletInfo" key="helpTextView">
<string key="name">helpTextView</string>
<string key="candidateClassName">NSTextView</string>
</object>
<object class="IBToOneOutletInfo" key="helpWindow">
<string key="name">helpWindow</string>
<string key="candidateClassName">NSWindow</string>
</object>
<object class="IBToOneOutletInfo" key="labelVersion">
<string key="name">labelVersion</string>
<string key="candidateClassName">NSTextField</string>
</object>
<object class="IBToOneOutletInfo" key="menuDebug">
<string key="name">menuDebug</string>
<string key="candidateClassName">NSMenuItem</string>
</object>
<object class="IBToOneOutletInfo" key="menuItemOpenXCode">
<string key="name">menuItemOpenXCode</string>
<string key="candidateClassName">NSMenuItem</string>
</object>
<object class="IBToOneOutletInfo" key="menuItemStartStop">
<string key="name">menuItemStartStop</string>
<string key="candidateClassName">NSMenuItem</string>
</object>
<object class="IBToOneOutletInfo" key="preferencesController">
<string key="name">preferencesController</string>
<string key="candidateClassName">NSUserDefaultsController</string>
</object>
<object class="IBToOneOutletInfo" key="statusMenu">
<string key="name">statusMenu</string>
<string key="candidateClassName">NSMenu</string>
</object>
<object class="IBToOneOutletInfo" key="windowDebug">
<string key="name">windowDebug</string>
<string key="candidateClassName">NSWindow</string>
</object>
<object class="IBToOneOutletInfo" key="xcc">
<string key="name">xcc</string>
<string key="candidateClassName">TNXCodeCapp</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/AppController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">TNErrorDataView</string>
<string key="superclassName">NSView</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">openFile:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">openFile:</string>
<object class="IBActionInfo" key="NS.object.0">
<string key="name">openFile:</string>
<string key="candidateClassName">id</string>
</object>
</object>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="buttonOpenFile">NSButton</string>
<string key="fieldFileName">NSTextField</string>
<string key="fieldMessage">NSTextField</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="buttonOpenFile">
<string key="name">buttonOpenFile</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="fieldFileName">
<string key="name">fieldFileName</string>
<string key="candidateClassName">NSTextField</string>
</object>
<object class="IBToOneOutletInfo" key="fieldMessage">
<string key="name">fieldMessage</string>
<string key="candidateClassName">NSTextField</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/TNErrorDataView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">TNXCodeCapp</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/TNXCodeCapp.h</string>
</object>
</object>
</array>
<int key="maxID">694</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
Binary file not shown.