Drop support with drop indicator.

FIXED: undefined _horizontalMargin
Test app: UI for switching uniformSubviewsResizing.
This commit is contained in:
cacaodev
2012-12-08 23:15:41 +01:00
parent dd5bd17e2b
commit 6b7b63dff4
6 changed files with 642 additions and 201 deletions
+311 -79
View File
@@ -65,6 +65,8 @@
@return an array of drag types (CPString)
*/
var HORIZONTAL_MARGIN = 2;
@implementation CPCollectionView : CPView
{
CPArray _content;
@@ -107,6 +109,11 @@
BOOL _uniformSubviewsResizing @accessors(property=uniformSubviewsResizing);
BOOL _lockResizing;
CPInteger _currentDropIndex;
CPDragOperation _currentDragOperation;
_CPCollectionViewDropIndicator _dropView;
}
- (id)initWithFrame:(CGRect)aFrame
@@ -153,6 +160,10 @@
_uniformSubviewsResizing = NO;
_lockResizing = NO;
_currentDropIndex = -1;
_currentDragOperation = CPDragOperationNone;
_dropView = nil;
[self setAutoresizesSubviews:NO];
[self setAutoresizingMask:0];
}
@@ -469,7 +480,7 @@
- (void)tileIfNeeded:(BOOL)lazyFlag
{
var frameSize = [[self superview] frameSize],
count = 0,
count = _items.length,
oldNumberOfColumns = _numberOfColumns,
oldNumberOfRows = _numberOfRows,
oldItemSize = _itemSize,
@@ -543,9 +554,9 @@
{
// CPLog.debug("DISPLAY ITEMS " + numberOfColumns + " " + numberOfRows);
var horizontalMargin = _uniformSubviewsResizing ? FLOOR((aFrameSize.width - numberOfColumns * anItemSize.width) / (numberOfColumns + 1)) : 0;
_horizontalMargin = _uniformSubviewsResizing ? FLOOR((aFrameSize.width - numberOfColumns * anItemSize.width) / (numberOfColumns + 1)) : HORIZONTAL_MARGIN;
var x = horizontalMargin,
var x = _horizontalMargin,
y = -anItemSize.height;
[displayItems enumerateObjectsUsingBlock:function(item, idx, stop)
@@ -560,14 +571,14 @@
if (idx % numberOfColumns == 0)
{
x = horizontalMargin;
x = _horizontalMargin;
y += _verticalMargin + anItemSize.height;
}
[view setFrameOrigin:CGPointMake(x, y)];
[view setFrameSize:anItemSize];
x += anItemSize.width + horizontalMargin;
x += anItemSize.width + _horizontalMargin;
}];
}
@@ -791,77 +802,6 @@
[self setSelectionIndexes:[CPIndexSet indexSet]];
}
- (void)mouseDragged:(CPEvent)anEvent
{
// Don't crash if we never registered the intial click.
if (!_mouseDownEvent)
return;
var locationInWindow = [anEvent locationInWindow],
mouseDownLocationInWindow = [_mouseDownEvent locationInWindow];
// FIXME: This is because Safari's drag hysteresis is 3px x 3px
if ((ABS(locationInWindow.x - mouseDownLocationInWindow.x) < 3) &&
(ABS(locationInWindow.y - mouseDownLocationInWindow.y) < 3))
return;
if (![_delegate respondsToSelector:@selector(collectionView:dragTypesForItemsAtIndexes:)])
return;
// If we don't have any selected items, we've clicked away, and thus the drag is meaningless.
if (![_selectionIndexes count])
return;
if ([_delegate respondsToSelector:@selector(collectionView:canDragItemsAtIndexes:withEvent:)] &&
![_delegate collectionView:self canDragItemsAtIndexes:_selectionIndexes withEvent:_mouseDownEvent])
return;
// Set up the pasteboard
var dragTypes = [_delegate collectionView:self dragTypesForItemsAtIndexes:_selectionIndexes];
[[CPPasteboard pasteboardWithName:CPDragPboard] declareTypes:dragTypes owner:self];
var dragImageOffset = CGSizeMakeZero(),
view;
if ([_delegate respondsToSelector:@selector(collectionView:draggingViewForItemsAtIndexes:withEvent:offset:)])
view = [_delegate collectionView:self draggingViewForItemsAtIndexes:_selectionIndexes withEvent:_mouseDownEvent offset:dragImageOffset];
else
view = [self draggingViewForItemsAtIndexes:_selectionIndexes withEvent:_mouseDownEvent offset:dragImageOffset];
[view setFrameSize:_itemSize];
[view setAlphaValue:0.7];
[self dragView:view
at:[[_items[[_selectionIndexes firstIndex]] view] frame].origin
offset:dragImageOffset
event:_mouseDownEvent
pasteboard:nil
source:self
slideBack:YES];
}
- (CPView)draggingViewForItemsAtIndexes:(CPIndexSet)indexes withEvent:(CPEvent)event offset:(CGPoint)dragImageOffset
{
var idx = _content[[indexes firstIndex]];
if (!_itemForDragging)
_itemForDragging = [self newItemForRepresentedObject:idx];
else
[_itemForDragging setRepresentedObject:idx];
return [_itemForDragging view];
}
/*!
Places the selected items on the specified pasteboard. The items are requested from the collection's delegate.
@param aPasteboard the pasteboard to put the items on
@param aType the format the pasteboard data
*/
- (void)pasteboard:(CPPasteboard)aPasteboard provideDataForType:(CPString)aType
{
[aPasteboard setData:[_delegate collectionView:self dataForItemsAtIndexes:_selectionIndexes forType:aType] forType:aType];
}
// Cappuccino Additions
/*!
@@ -879,6 +819,13 @@
[self tile];
}
- (void)setUniformSubviewsResizing:(float)flag
{
_uniformSubviewsResizing = flag;
[self tileIfNeeded:NO];
}
/*!
Gets the collection view's current vertical spacing between elements.
*/
@@ -921,10 +868,17 @@
- (int)_indexAtPoint:(CGPoint)thePoint
{
var row = FLOOR(thePoint.y / (_itemSize.height + _verticalMargin)),
column = FLOOR(thePoint.x / (_itemSize.width + _horizontalMargin));
var column = FLOOR(thePoint.x / (_itemSize.width + _horizontalMargin));
return row * _numberOfColumns + column;
if (column < _numberOfColumns)
{
var row = FLOOR(thePoint.y / (_itemSize.height + _verticalMargin));
if (row < _numberOfRows)
return (row * _numberOfColumns + column);
}
return CPNotFound;
}
- (CPCollectionViewItem)itemAtIndex:(unsigned)anIndex
@@ -955,6 +909,284 @@
@end
@implementation CPCollectionView (DragAndDrop)
/*
TODO: dropOperation is not supported yet. The visible drop operation is like CPCollectionViewDropBefore.
*/
/*!
Places the selected items on the specified pasteboard. The items are requested from the collection's delegate.
@param aPasteboard the pasteboard to put the items on
@param aType the format the pasteboard data
*/
- (void)pasteboard:(CPPasteboard)aPasteboard provideDataForType:(CPString)aType
{
[aPasteboard setData:[_delegate collectionView:self dataForItemsAtIndexes:_selectionIndexes forType:aType] forType:aType];
}
- (void)mouseDragged:(CPEvent)anEvent
{
// Don't crash if we never registered the intial click.
if (!_mouseDownEvent)
return;
// Create and position the drop indicator view.
if (!_dropView)
_dropView = [[_CPCollectionViewDropIndicator alloc] initWithFrame:CGRectMake(-8, -8, 0, 0)];
[_dropView setFrameSize:CGSizeMake(10, _itemSize.height + _verticalMargin)];
[self addSubview:_dropView];
var locationInWindow = [anEvent locationInWindow],
mouseDownLocationInWindow = [_mouseDownEvent locationInWindow];
// FIXME: This is because Safari's drag hysteresis is 3px x 3px
if ((ABS(locationInWindow.x - mouseDownLocationInWindow.x) < 3) &&
(ABS(locationInWindow.y - mouseDownLocationInWindow.y) < 3))
return;
if (![_delegate respondsToSelector:@selector(collectionView:dragTypesForItemsAtIndexes:)])
return;
// If we don't have any selected items, we've clicked away, and thus the drag is meaningless.
if (![_selectionIndexes count])
return;
if ([_delegate respondsToSelector:@selector(collectionView:canDragItemsAtIndexes:withEvent:)] &&
![_delegate collectionView:self canDragItemsAtIndexes:_selectionIndexes withEvent:_mouseDownEvent])
return;
// Set up the pasteboard
var dragTypes = [_delegate collectionView:self dragTypesForItemsAtIndexes:_selectionIndexes];
[[CPPasteboard pasteboardWithName:CPDragPboard] declareTypes:dragTypes owner:self];
var dragImageOffset = CGSizeMakeZero(),
view = [self _draggingViewForItemsAtIndexes:_selectionIndexes withEvent:_mouseDownEvent offset:dragImageOffset];
[view setFrameSize:_itemSize];
[view setAlphaValue:0.7];
var dragLocation = [self convertPoint:locationInWindow fromView:nil],
dragPoint = CGPointMake(dragLocation.x - _itemSize.width / 2 , dragLocation.y - _itemSize.height / 2);
[self dragView:view
at:dragPoint
offset:dragImageOffset
event:_mouseDownEvent
pasteboard:nil
source:self
slideBack:YES];
}
- (CPView)_draggingViewForItemsAtIndexes:(CPIndexSet)indexes withEvent:(CPEvent)anEvent offset:(CGPoint)offset
{
if ([_delegate respondsToSelector:@selector(collectionView:draggingViewForItemsAtIndexes:withEvent:offset:)])
return [_delegate collectionView:self draggingViewForItemsAtIndexes:indexes withEvent:anEvent offset:offset];
return [self draggingViewForItemsAtIndexes:indexes withEvent:anEvent offset:offset];
}
- (CPView)draggingViewForItemsAtIndexes:(CPIndexSet)indexes withEvent:(CPEvent)event offset:(CGPoint)dragImageOffset
{
var idx = _content[[indexes firstIndex]];
if (!_itemForDragging)
_itemForDragging = [self newItemForRepresentedObject:idx];
else
[_itemForDragging setRepresentedObject:idx];
return [_itemForDragging view];
}
- (BOOL)_canDragItemsAtIndexes:(CPIndexSet)indexes withEvent:(CPEvent)anEvent
{
if ([self respondsToSelector:@selector(collectionView:canDragItemsAtIndexes:withEvent:)])
return [_delegate collectionView:self canDragItemsAtIndexes:indexes withEvent:anEvent];
return YES;
}
- (CPDragOperation)draggingEntered:(id)draggingInfo
{
var dropIndex = -1,
dropIndexRef = AT_REF(dropIndex);
var dragOp = [self _validateDragWithInfo:draggingInfo dropIndex:dropIndexRef dropOperation:1];
dropIndex = dropIndexRef();
[self _updateDragAndDropStateWithDraggingInfo:draggingInfo newDragOperation:dragOp newDropIndex:dropIndex newDropOperation:1];
return _currentDragOperation;
}
- (CPDragOperation)draggingUpdated:(id)draggingInfo
{
if (![self _dropIndexDidChange:draggingInfo])
return _currentDragOperation;
var dropIndex,
dropIndexRef = AT_REF(dropIndex);
var dragOperation = [self _validateDragWithInfo:draggingInfo dropIndex:dropIndexRef dropOperation:1];
dropIndex = dropIndexRef();
[self _updateDragAndDropStateWithDraggingInfo:draggingInfo newDragOperation:dragOperation newDropIndex:dropIndex newDropOperation:1];
return dragOperation;
}
- (CPDragOperation)_validateDragWithInfo:(id)draggingInfo dropIndex:(Function)dropIndexRef dropOperation:(int)dropOperation
{
var result = CPDragOperationMove,
dropIndex = [self _dropIndexForDraggingInfo:draggingInfo proposedDropOperation:dropOperation];
if ([_delegate respondsToSelector:@selector(collectionView:validateDrop:proposedIndex:dropOperation:)])
{
var dropIndexRef2 = AT_REF(dropIndex);
result = [_delegate collectionView:self validateDrop:draggingInfo proposedIndex:dropIndexRef2 dropOperation:dropOperation];
if (result !== CPDragOperationNone)
{
dropIndex = dropIndexRef2();
}
}
dropIndexRef(dropIndex);
return result;
}
- (void)draggingExited:(id)draggingInfo
{
[self _updateDragAndDropStateWithDraggingInfo:draggingInfo newDragOperation:0 newDropIndex:-1 newDropOperation:1];
}
- (void)draggingEnded:(id)draggingInfo
{
[self _updateDragAndDropStateWithDraggingInfo:draggingInfo newDragOperation:0 newDropIndex:-1 newDropOperation:1];
}
/*
Not supported. Use -collectionView:dataForItemsAtIndexes:fortype:
- (BOOL)_writeItemsAtIndexes:(CPIndexSet)indexes toPasteboard:(CPPasteboard)pboard
{
if ([self respondsToSelector:@selector(collectionView:writeItemsAtIndexes:toPasteboard:)])
return [_delegate collectionView:self writeItemsAtIndexes:indexes toPasteboard:pboard];
return NO;
}
*/
- (BOOL)performDragOperation:(id)draggingInfo
{
var result = NO;
if (_currentDragOperation && _currentDropIndex !== -1)
result = [_delegate collectionView:self acceptDrop:draggingInfo index:_currentDropIndex dropOperation:1];
[self draggingEnded:draggingInfo]; // Is this correct ?
return result;
}
- (void)_updateDragAndDropStateWithDraggingInfo:(id)draggingInfo newDragOperation:(CPDragOperation)dragOperation newDropIndex:(CPInteger)dropIndex newDropOperation:(CPInteger)dropOperation
{
_currentDropIndex = dropIndex;
_currentDragOperation = dragOperation;
var frameOrigin,
dropviewFrameWidth = CGRectGetWidth([_dropView frame]);
if (_currentDropIndex == -1 || _currentDragOperation == CPDragOperationNone)
frameOrigin = CGPointMake(-dropviewFrameWidth, 0);
else
{
var offset;
if ((_currentDropIndex % _numberOfColumns) !== 0 || _currentDropIndex == [_items count])
{
dropIndex = _currentDropIndex - 1;
offset = (_horizontalMargin - dropviewFrameWidth) / 2;
}
else
{
offset = - _itemSize.width - dropviewFrameWidth - (_horizontalMargin - dropviewFrameWidth) / 2;
}
var rect = [self frameForItemAtIndex:dropIndex];
frameOrigin = CGPointMake(CGRectGetMaxX(rect) + offset, rect.origin.y - _verticalMargin);
}
[_dropView setFrameOrigin:frameOrigin];
}
- (BOOL)_dropIndexDidChange:(id)draggingInfo
{
var dropIndex = [self _dropIndexForDraggingInfo:draggingInfo proposedDropOperation:1];
if (dropIndex == CPNotFound)
dropIndex = [[self content] count];
return (_currentDropIndex !== dropIndex)
}
- (CPInteger)_dropIndexForDraggingInfo:(id)draggingInfo proposedDropOperation:(int)dropOperation
{
var location = [self convertPoint:[draggingInfo draggingLocation] fromView:nil],
locationX = location.x + _itemSize.width / 2;
var column = MIN(FLOOR(locationX / (_itemSize.width + _horizontalMargin)), _numberOfColumns),
row = FLOOR(location.y / (_itemSize.height + _verticalMargin));
if (row >= _numberOfRows - 1)
{
if (row >= _numberOfRows)
{
row = _numberOfRows - 1;
column = _numberOfColumns;
}
return MIN((row * _numberOfColumns + column), [_items count]);
}
return (row * _numberOfColumns + column);
}
@end
@implementation _CPCollectionViewDropIndicator : CPView
{
}
- (void)drawRect:(CGRect)aRect
{
var context = [[CPGraphicsContext currentContext] graphicsPort],
width = CGRectGetWidth(aRect),
circleRect = CGRectMake(1, 1, width - 2, width - 2);
CGContextSetStrokeColor(context, [CPColor colorWithHexString:@"4886ca"]);
CGContextSetFillColor(context, [CPColor whiteColor]);
CGContextSetLineWidth(context, 3);
//draw white under the circle thing
CGContextFillRect(context, circleRect);
//draw the circle thing
CGContextStrokeEllipseInRect(context, circleRect);
//then draw the line
CGContextBeginPath(context);
CGContextMoveToPoint(context, FLOOR(width / 2), CGRectGetMinY(aRect) + width);
CGContextAddLineToPoint(context, FLOOR(width / 2), CGRectGetHeight(aRect));
CGContextClosePath(context);
CGContextStrokePath(context);
}
@end
@implementation CPCollectionView (KeyboardInteraction)
- (void)_modifySelectionWithNewIndex:(int)anIndex direction:(int)aDirection expand:(BOOL)shouldExpand
@@ -7,6 +7,7 @@
*/
@import <Foundation/CPObject.j>
//@import "CPCollectionView.j"
CPLogRegister(CPLogConsole);
@@ -15,10 +16,10 @@ CPLogRegister(CPLogConsole);
CPWindow theWindow; //this "outlet" is connected automatically by the Cib
@outlet CPCollectionView collectionView @accessors;
@outlet InternalProtoypeItem prototypeItemInternal;
@outlet CPCollectionViewItem prototypeItemExternal;
@outlet ExternalProtoypeItem prototypeItemExternal;
@outlet CPTableView tableView;
}
- (void)applicationDidFinishLaunching:(CPNotification)aNotification
{
// This is called when the application is done loading.
@@ -38,6 +39,7 @@ CPLogRegister(CPLogConsole);
[self didChangeValueForKey:@"maxItemWidth"];
[self didChangeValueForKey:@"maxItemHeight"];
[collectionView registerForDraggedTypes:[@"DragType"]];
//[theWindow setFullPlatformWindow:YES];
}
@@ -96,6 +98,59 @@ CPLogRegister(CPLogConsole);
return [collectionView maxItemSize].height;
}
/*
DELEGATE METHODS
*/
- (CPData)collectionView:(CPCollectionView)aCollectionView dataForItemsAtIndexes:(CPIndexSet)indices forType:(CPString)aType
{
return indices;
}
- (CPView)collectionView:(CPCollectionView)aCollectionView draggingViewForItemsAtIndexes:(CPIndexSet)indexes withEvent:(CPEvent)event offset:(CGPoint)dragImageOffset
{
return [aCollectionView draggingViewForItemsAtIndexes:indexes withEvent:event offset:dragImageOffset];
}
- (CPArray)collectionView:(CPCollectionView)aCollectionView dragTypesForItemsAtIndexes:(CPIndexSet)indices
{
return [@"DragType"];
}
- (BOOL)collectionView:(CPCollectionView)aCollectionView canDragItemsAtIndexes:(CPIndexSet)indexes withEvent:(CPEvent)anEvent
{
return YES;
}
/*
- (BOOL)collectionView:(CPCollectionView)aCollectionView writeItemsAtIndexes:(CPIndexSet)indexes toPasteboard:(CPPasteboard)pboard
{
return YES;
}
*/
- (CPDragOperation)collectionView:(CPCollectionView)aCollectionView validateDrop:(id)draggingInfo proposedIndex:(Function)proposedIndexRef dropOperation:(CPInteger)collectionViewDropOperation
{
var pboard = [draggingInfo draggingPasteboard],
dragIndex = [[pboard dataForType:@"DragType"] firstIndex],
proposedIndex = proposedIndexRef();
if (proposedIndex == dragIndex || proposedIndex == dragIndex + 1)
return CPDragOperationNone;
return CPDragOperationMove;
}
- (BOOL)collectionView:(CPCollectionView)aCollectionView acceptDrop:(id)draggingInfo index:(CPInteger)proposedIndex dropOperation:(CPInteger)collectionViewDropOperation
{
var pboard = [draggingInfo draggingPasteboard],
dragIndexes = [pboard dataForType:@"DragType"];
[[aCollectionView content] moveIndexes:dragIndexes toIndex:proposedIndex];
[aCollectionView reloadContent];
[tableView reloadData];
return YES;
}
@end
@implementation InternalProtoypeItem: CPCollectionViewItem
@@ -122,36 +177,88 @@ CPLogRegister(CPLogConsole);
{
[super setRepresentedObject:anObject];
[textField setStringValue:[anObject objectForKey:@"value"]];
[[self view] setColor:[anObject objectForKey:@"color"]];
}
@end
var keyCode = 0;
@implementation ExternalProtoypeItem: CPCollectionViewItem
{
}
- (void)setRepresentedObject:(id)anObject
{
[super setRepresentedObject:anObject];
[[self view] setColor:[anObject objectForKey:@"color"]];
}
@end
var keyCode = 0;
@implementation ArrayController : CPArrayController
{
}
- (void)newObject
{
return [CPDictionary dictionaryWithObject:(String.fromCharCode(65 + keyCode++)) forKey:@"value"];
return [CPDictionary dictionaryWithObjectsAndKeys:(String.fromCharCode(65 + keyCode++)), @"value", [CPColor randomColor], @"color"];
}
@end
@implementation RandomColorView : CPView
@implementation ColorView : CPView
{
CPColor color;
CPColor color @accessors;
}
- (void)setColor:(CPColor)aColor
{
color = aColor;
[self setNeedsDisplay:YES];
}
- (void)drawRect:(CGRect)aRect
{
if (!color)
color = [CPColor randomColor];
color = [CPColor grayColor];
var context = [[CPGraphicsContext currentContext] graphicsPort];
CGContextSetFillColor(context, color);
CGContextFillRect(context, aRect);
}
@end
@end
@implementation CPArray (MoveIndexes)
- (void)moveIndexes:(CPIndexSet)indexes toIndex:(int)insertIndex
{
var aboveCount = 0,
object,
removeIndex;
var index = [indexes lastIndex];
while (index != CPNotFound)
{
if (index >= insertIndex)
{
removeIndex = index + aboveCount;
aboveCount ++;
}
else
{
removeIndex = index;
insertIndex --;
}
object = [self objectAtIndex:removeIndex];
[self removeObjectAtIndex:removeIndex];
[self insertObject:object atIndex:insertIndex];
index = [indexes indexLessThanIndex:index];
}
}
@end
File diff suppressed because one or more lines are too long
@@ -318,7 +318,7 @@
<string key="NSFrame">{{499, 363}, {187, 26}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="150863394"/>
<reference key="NSNextKeyView" ref="677993779"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="553503852">
@@ -556,7 +556,7 @@
<string key="NSFrame">{{923, 226}, {19, 27}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="228213330"/>
<reference key="NSNextKeyView" ref="1054252845"/>
<string key="NSReuseIdentifierKey">_NS:1099</string>
<bool key="NSEnabled">YES</bool>
<object class="NSStepperCell" key="NSCell" id="409790334">
@@ -620,7 +620,7 @@
<string key="NSFrame">{{923, 155}, {19, 27}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="295574287"/>
<reference key="NSNextKeyView" ref="400851755"/>
<string key="NSReuseIdentifierKey">_NS:1099</string>
<bool key="NSEnabled">YES</bool>
<object class="NSStepperCell" key="NSCell" id="29931686">
@@ -674,67 +674,67 @@
<reference key="NSTextColor" ref="324493063"/>
</object>
</object>
<object class="NSStepper" id="1072592175">
<object class="NSStepper" id="207119784">
<reference key="NSNextResponder" ref="439893737"/>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{923, 125}, {19, 27}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="135640327"/>
<reference key="NSNextKeyView" ref="11378804"/>
<string key="NSReuseIdentifierKey">_NS:1099</string>
<bool key="NSEnabled">YES</bool>
<object class="NSStepperCell" key="NSCell" id="920269191">
<object class="NSStepperCell" key="NSCell" id="592771441">
<int key="NSCellFlags">786464</int>
<int key="NSCellFlags2">0</int>
<string key="NSCellIdentifier">_NS:1099</string>
<reference key="NSControlView" ref="1072592175"/>
<reference key="NSControlView" ref="207119784"/>
<double key="NSMaxValue">1000</double>
<double key="NSIncrement">50</double>
<bool key="NSAutorepeat">YES</bool>
</object>
</object>
<object class="NSTextField" id="890351733">
<object class="NSTextField" id="716914451">
<reference key="NSNextResponder" ref="439893737"/>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{886, 128}, {35, 22}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1072592175"/>
<reference key="NSNextKeyView" ref="207119784"/>
<string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="418105183">
<object class="NSTextFieldCell" key="NSCell" id="279124003">
<int key="NSCellFlags">72351808</int>
<int key="NSCellFlags2">272634880</int>
<string key="NSContents">0</string>
<reference key="NSSupport" ref="251057424"/>
<string key="NSCellIdentifier">_NS:1535</string>
<reference key="NSControlView" ref="890351733"/>
<reference key="NSControlView" ref="716914451"/>
<bool key="NSDrawsBackground">YES</bool>
<reference key="NSBackgroundColor" ref="450523698"/>
<reference key="NSTextColor" ref="324493063"/>
</object>
</object>
<object class="NSTextField" id="295574287">
<object class="NSTextField" id="400851755">
<reference key="NSNextResponder" ref="439893737"/>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{768, 128}, {113, 17}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="890351733"/>
<reference key="NSNextKeyView" ref="716914451"/>
<string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="755921993">
<object class="NSTextFieldCell" key="NSCell" id="549556580">
<int key="NSCellFlags">68157504</int>
<int key="NSCellFlags2">71304192</int>
<string key="NSContents">Max Item Height:</string>
<reference key="NSSupport" ref="150870886"/>
<string key="NSCellIdentifier">_NS:1535</string>
<reference key="NSControlView" ref="295574287"/>
<reference key="NSControlView" ref="400851755"/>
<reference key="NSBackgroundColor" ref="169757158"/>
<reference key="NSTextColor" ref="324493063"/>
</object>
</object>
<object class="NSStepper" id="75382843">
<object class="NSStepper" id="515392935">
<reference key="NSNextResponder" ref="439893737"/>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{923, 196}, {19, 27}}</string>
@@ -743,73 +743,73 @@
<reference key="NSNextKeyView" ref="407973794"/>
<string key="NSReuseIdentifierKey">_NS:1099</string>
<bool key="NSEnabled">YES</bool>
<object class="NSStepperCell" key="NSCell" id="32955700">
<object class="NSStepperCell" key="NSCell" id="56739805">
<int key="NSCellFlags">786464</int>
<int key="NSCellFlags2">0</int>
<string key="NSCellIdentifier">_NS:1099</string>
<reference key="NSControlView" ref="75382843"/>
<reference key="NSControlView" ref="515392935"/>
<double key="NSMaxValue">1000</double>
<double key="NSIncrement">50</double>
<bool key="NSAutorepeat">YES</bool>
</object>
</object>
<object class="NSTextField" id="554651154">
<object class="NSTextField" id="1063345336">
<reference key="NSNextResponder" ref="439893737"/>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{886, 199}, {35, 22}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="75382843"/>
<reference key="NSNextKeyView" ref="515392935"/>
<string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="405672340">
<object class="NSTextFieldCell" key="NSCell" id="909647983">
<int key="NSCellFlags">72351808</int>
<int key="NSCellFlags2">272634880</int>
<string key="NSContents">0</string>
<reference key="NSSupport" ref="251057424"/>
<string key="NSCellIdentifier">_NS:1535</string>
<reference key="NSControlView" ref="554651154"/>
<reference key="NSControlView" ref="1063345336"/>
<bool key="NSDrawsBackground">YES</bool>
<reference key="NSBackgroundColor" ref="450523698"/>
<reference key="NSTextColor" ref="324493063"/>
</object>
</object>
<object class="NSTextField" id="228213330">
<object class="NSTextField" id="1054252845">
<reference key="NSNextResponder" ref="439893737"/>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{772, 199}, {109, 17}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="554651154"/>
<reference key="NSNextKeyView" ref="1063345336"/>
<string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="338997766">
<object class="NSTextFieldCell" key="NSCell" id="528340856">
<int key="NSCellFlags">68157504</int>
<int key="NSCellFlags2">71304192</int>
<string key="NSContents">Min Item Height:</string>
<reference key="NSSupport" ref="150870886"/>
<string key="NSCellIdentifier">_NS:1535</string>
<reference key="NSControlView" ref="228213330"/>
<reference key="NSControlView" ref="1054252845"/>
<reference key="NSBackgroundColor" ref="169757158"/>
<reference key="NSTextColor" ref="324493063"/>
</object>
</object>
<object class="NSButton" id="135640327">
<object class="NSButton" id="11378804">
<reference key="NSNextResponder" ref="439893737"/>
<int key="NSvFlags">268</int>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{14, 4}, {55, 32}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="985933741"/>
<reference key="NSNextKeyView" ref="576020720"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="543933753">
<object class="NSButtonCell" key="NSCell" id="461455743">
<int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">+</string>
<reference key="NSSupport" ref="150870886"/>
<reference key="NSSupport" ref="693282629"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="135640327"/>
<reference key="NSControlView" ref="11378804"/>
<int key="NSButtonFlags">-2038284288</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
@@ -818,22 +818,26 @@
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="985933741">
<object class="NSButton" id="576020720">
<reference key="NSNextResponder" ref="439893737"/>
<int key="NSvFlags">268</int>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{69, 4}, {55, 32}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="316443757">
<object class="NSButtonCell" key="NSCell" id="619881198">
<int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">-</string>
<reference key="NSSupport" ref="150870886"/>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">16</double>
<int key="NSfFlags">16</int>
</object>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="985933741"/>
<reference key="NSControlView" ref="576020720"/>
<int key="NSButtonFlags">-2038284288</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
@@ -842,6 +846,37 @@
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="677993779">
<reference key="NSNextResponder" ref="439893737"/>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{796, 360}, {145, 18}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="150863394"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="865130228">
<int key="NSCellFlags">-2080374784</int>
<int key="NSCellFlags2">268435456</int>
<string key="NSContents">Uniform Resizing</string>
<reference key="NSSupport" ref="150870886"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="677993779"/>
<int key="NSButtonFlags">1210863872</int>
<int key="NSButtonFlags2">2</int>
<object class="NSCustomResource" key="NSNormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSSwitch</string>
</object>
<object class="NSButtonImageSource" key="NSAlternateImage">
<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>
<string key="NSFrameSize">{959, 407}</string>
<reference key="NSSuperview"/>
@@ -932,7 +967,7 @@
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="983992782"/>
<string key="NSClassName">RandomColorView</string>
<string key="NSClassName">ColorView</string>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
@@ -988,18 +1023,18 @@
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">itemPrototype</string>
<reference key="source" ref="278182452"/>
<reference key="destination" ref="354970214"/>
<string key="label">tableView</string>
<reference key="source" ref="635946545"/>
<reference key="destination" ref="51191719"/>
</object>
<int key="connectionID">466</int>
<int key="connectionID">609</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">content: arrangedObjects</string>
<reference key="source" ref="278182452"/>
<reference key="destination" ref="871014684"/>
<object class="NSNibBindingConnector" key="connector" id="752832678">
<object class="NSNibBindingConnector" key="connector" id="19088363">
<reference key="NSSource" ref="278182452"/>
<reference key="NSDestination" ref="871014684"/>
<string key="NSLabel">content: arrangedObjects</string>
@@ -1021,17 +1056,33 @@
<string key="NSLabel">selectionIndexes: selectionIndexes</string>
<string key="NSBinding">selectionIndexes</string>
<string key="NSKeyPath">selectionIndexes</string>
<reference key="NSPreviousConnector" ref="752832678"/>
<reference key="NSPreviousConnector" ref="19088363"/>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">605</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">itemPrototype</string>
<reference key="source" ref="278182452"/>
<reference key="destination" ref="354970214"/>
</object>
<int key="connectionID">607</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="278182452"/>
<reference key="destination" ref="635946545"/>
</object>
<int key="connectionID">608</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">add:</string>
<reference key="source" ref="871014684"/>
<reference key="destination" ref="135640327"/>
<reference key="destination" ref="11378804"/>
</object>
<int key="connectionID">603</int>
</object>
@@ -1039,7 +1090,7 @@
<object class="IBActionConnection" key="connection">
<string key="label">remove:</string>
<reference key="source" ref="871014684"/>
<reference key="destination" ref="985933741"/>
<reference key="destination" ref="576020720"/>
</object>
<int key="connectionID">604</int>
</object>
@@ -1222,10 +1273,10 @@
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: maxItemHeight</string>
<reference key="source" ref="1072592175"/>
<reference key="source" ref="207119784"/>
<reference key="destination" ref="635946545"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="1072592175"/>
<reference key="NSSource" ref="207119784"/>
<reference key="NSDestination" ref="635946545"/>
<string key="NSLabel">value: maxItemHeight</string>
<string key="NSBinding">value</string>
@@ -1238,10 +1289,10 @@
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: maxItemHeight</string>
<reference key="source" ref="890351733"/>
<reference key="source" ref="716914451"/>
<reference key="destination" ref="635946545"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="890351733"/>
<reference key="NSSource" ref="716914451"/>
<reference key="NSDestination" ref="635946545"/>
<string key="NSLabel">value: maxItemHeight</string>
<string key="NSBinding">value</string>
@@ -1254,10 +1305,10 @@
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: minItemHeight</string>
<reference key="source" ref="75382843"/>
<reference key="source" ref="515392935"/>
<reference key="destination" ref="635946545"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="75382843"/>
<reference key="NSSource" ref="515392935"/>
<reference key="NSDestination" ref="635946545"/>
<string key="NSLabel">value: minItemHeight</string>
<string key="NSBinding">value</string>
@@ -1270,10 +1321,10 @@
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: minItemHeight</string>
<reference key="source" ref="554651154"/>
<reference key="source" ref="1063345336"/>
<reference key="destination" ref="635946545"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="554651154"/>
<reference key="NSSource" ref="1063345336"/>
<reference key="NSDestination" ref="635946545"/>
<string key="NSLabel">value: minItemHeight</string>
<string key="NSBinding">value</string>
@@ -1283,6 +1334,22 @@
</object>
<int key="connectionID">595</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: selection.uniformSubviewsResizing</string>
<reference key="source" ref="677993779"/>
<reference key="destination" ref="191188835"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="677993779"/>
<reference key="NSDestination" ref="191188835"/>
<string key="NSLabel">value: selection.uniformSubviewsResizing</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">selection.uniformSubviewsResizing</string>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">613</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@@ -1337,21 +1404,22 @@
<reference ref="728216117"/>
<reference ref="812904029"/>
<reference ref="407973794"/>
<reference ref="1072592175"/>
<reference ref="890351733"/>
<reference ref="295574287"/>
<reference ref="207119784"/>
<reference ref="716914451"/>
<reference ref="400851755"/>
<reference ref="734677351"/>
<reference ref="194614505"/>
<reference ref="337451646"/>
<reference ref="75382843"/>
<reference ref="554651154"/>
<reference ref="228213330"/>
<reference ref="515392935"/>
<reference ref="1063345336"/>
<reference ref="1054252845"/>
<reference ref="636862185"/>
<reference ref="121373071"/>
<reference ref="238095825"/>
<reference ref="575705918"/>
<reference ref="135640327"/>
<reference ref="985933741"/>
<reference ref="11378804"/>
<reference ref="576020720"/>
<reference ref="677993779"/>
</object>
<reference key="parent" ref="972006081"/>
</object>
@@ -1726,115 +1794,129 @@
</object>
<object class="IBObjectRecord">
<int key="objectID">576</int>
<reference key="object" ref="1072592175"/>
<reference key="object" ref="207119784"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="920269191"/>
<reference ref="592771441"/>
</object>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">577</int>
<reference key="object" ref="890351733"/>
<reference key="object" ref="716914451"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="418105183"/>
<reference ref="279124003"/>
</object>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">578</int>
<reference key="object" ref="295574287"/>
<reference key="object" ref="400851755"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="755921993"/>
<reference ref="549556580"/>
</object>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">579</int>
<reference key="object" ref="755921993"/>
<reference key="parent" ref="295574287"/>
<reference key="object" ref="549556580"/>
<reference key="parent" ref="400851755"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">580</int>
<reference key="object" ref="418105183"/>
<reference key="parent" ref="890351733"/>
<reference key="object" ref="279124003"/>
<reference key="parent" ref="716914451"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">581</int>
<reference key="object" ref="920269191"/>
<reference key="parent" ref="1072592175"/>
<reference key="object" ref="592771441"/>
<reference key="parent" ref="207119784"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">587</int>
<reference key="object" ref="75382843"/>
<reference key="object" ref="515392935"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="32955700"/>
<reference ref="56739805"/>
</object>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">588</int>
<reference key="object" ref="554651154"/>
<reference key="object" ref="1063345336"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="405672340"/>
<reference ref="909647983"/>
</object>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">589</int>
<reference key="object" ref="228213330"/>
<reference key="object" ref="1054252845"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="338997766"/>
<reference ref="528340856"/>
</object>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">590</int>
<reference key="object" ref="338997766"/>
<reference key="parent" ref="228213330"/>
<reference key="object" ref="528340856"/>
<reference key="parent" ref="1054252845"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">591</int>
<reference key="object" ref="405672340"/>
<reference key="parent" ref="554651154"/>
<reference key="object" ref="909647983"/>
<reference key="parent" ref="1063345336"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">592</int>
<reference key="object" ref="32955700"/>
<reference key="parent" ref="75382843"/>
<reference key="object" ref="56739805"/>
<reference key="parent" ref="515392935"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">599</int>
<reference key="object" ref="135640327"/>
<reference key="object" ref="11378804"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="543933753"/>
<reference ref="461455743"/>
</object>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">600</int>
<reference key="object" ref="543933753"/>
<reference key="parent" ref="135640327"/>
<reference key="object" ref="461455743"/>
<reference key="parent" ref="11378804"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">601</int>
<reference key="object" ref="985933741"/>
<reference key="object" ref="576020720"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="316443757"/>
<reference ref="619881198"/>
</object>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">602</int>
<reference key="object" ref="316443757"/>
<reference key="parent" ref="985933741"/>
<reference key="object" ref="619881198"/>
<reference key="parent" ref="576020720"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">610</int>
<reference key="object" ref="677993779"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="865130228"/>
</object>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">611</int>
<reference key="object" ref="865130228"/>
<reference key="parent" ref="677993779"/>
</object>
</object>
</object>
@@ -1856,6 +1938,7 @@
<string>461.IBPluginDependency</string>
<string>462.IBPluginDependency</string>
<string>463.IBPluginDependency</string>
<string>464.CustomClassName</string>
<string>464.IBPluginDependency</string>
<string>469.CustomClassName</string>
<string>469.IBPluginDependency</string>
@@ -1919,12 +2002,12 @@
<string>590.IBPluginDependency</string>
<string>591.IBPluginDependency</string>
<string>592.IBPluginDependency</string>
<string>599.CustomClassName</string>
<string>599.IBPluginDependency</string>
<string>600.IBPluginDependency</string>
<string>601.CustomClassName</string>
<string>601.IBPluginDependency</string>
<string>602.IBPluginDependency</string>
<string>610.IBPluginDependency</string>
<string>611.IBPluginDependency</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -1942,6 +2025,7 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>ExternalProtoypeItem</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>ArrayController</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -2005,10 +2089,10 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>_CPRuleEditorButton</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>_CPRuleEditorButton</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>
@@ -2025,7 +2109,7 @@
<reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
<int key="maxID">605</int>
<int key="maxID">613</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -2051,12 +2135,14 @@
<string>collectionView</string>
<string>prototypeItemExternal</string>
<string>prototypeItemInternal</string>
<string>tableView</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>NSCollectionView</string>
<string>NSCollectionViewItem</string>
<string>ExternalProtoypeItem</string>
<string>InternalProtoypeItem</string>
<string>NSTableView</string>
</object>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
@@ -2066,6 +2152,7 @@
<string>collectionView</string>
<string>prototypeItemExternal</string>
<string>prototypeItemInternal</string>
<string>tableView</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -2075,12 +2162,16 @@
</object>
<object class="IBToOneOutletInfo">
<string key="name">prototypeItemExternal</string>
<string key="candidateClassName">NSCollectionViewItem</string>
<string key="candidateClassName">ExternalProtoypeItem</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">prototypeItemInternal</string>
<string key="candidateClassName">InternalProtoypeItem</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">tableView</string>
<string key="candidateClassName">NSTableView</string>
</object>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
@@ -2096,6 +2187,22 @@
<string key="minorKey">./Classes/ArrayController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">ColorView</string>
<string key="superclassName">NSView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/ColorView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">ExternalProtoypeItem</string>
<string key="superclassName">NSCollectionViewItem</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/ExternalProtoypeItem.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">InternalProtoypeItem</string>
<string key="superclassName">NSCollectionViewItem</string>
@@ -2115,14 +2222,6 @@
<string key="minorKey">./Classes/InternalProtoypeItem.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">RandomColorView</string>
<string key="superclassName">NSView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/RandomColorView.h</string>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
@@ -2143,11 +2242,13 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>NSMenuCheckmark</string>
<string>NSMenuMixedState</string>
<string>NSSwitch</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>{11, 11}</string>
<string>{10, 3}</string>
<string>{15, 15}</string>
</object>
</object>
</data>
File diff suppressed because one or more lines are too long
@@ -43,6 +43,7 @@
<string key="NSFrame">{{44, 4}, {82, 13}}</string>
<reference key="NSSuperview" ref="1005"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="589750618">
@@ -129,7 +130,7 @@
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="169792613"/>
<string key="NSClassName">RandomColorView</string>
<string key="NSClassName">ColorView</string>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
@@ -280,11 +281,11 @@
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">RandomColorView</string>
<string key="className">ColorView</string>
<string key="superclassName">NSView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/RandomColorView.h</string>
<string key="minorKey">./Classes/ColorView.h</string>
</object>
</object>
</array>