mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-25 04:57:03 +00:00
Drop support with drop indicator.
FIXED: undefined _horizontalMargin Test app: UI for switching uniformSubviewsResizing.
This commit is contained in:
+311
-79
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user