Take a look at the MultiPhotoFrame sample source:
http://developer.apple.com/library/mac/#samplecode/MultiPhotoFrame/Introduc
tion/Intro.html

The dragged images are animated as they enter/exit views by tracking the
mouse using this NSDraggingSource Protocol method:
- (void)draggingSession:(NSDraggingSession *)session
movedToPoint:(NSPoint)screenPoint


Also, check out the following WWDC 2011 video. It explains how to change
"drag images in flight."
https://developer.apple.com/videos/wwdc/2011/?id=115

I'm writing similar code at the moment.

Chuck


On 3/6/13 11:28 PM, "Muthulingam Ammaiappan" <muthulinga...@gmail.com>
wrote:

>Hi Friends,
>
>i had developed the custom list view which is having NSView as a cell with
>variable sizes to represent the video clips in the timeline.
>
>and i had implemented the drag and drop for reordering functionality...
>that is working as per the expectation...
>
>but i wanted to add the animation while doing the drag and drop like in
>"iPhoto"...
>
>(when user drag the item if the mouse co-ords enters the in between region
>then the corresponding elements will animate... and animation will end and
>it comeback its original position once the mouse left the coords)....
>
>here i am including the drag and drop code.... please help me how i can
>implement the above mentioned animation while doing drag and drop...
>
>
>Thanks & Regards,
>Muthu
>
>
>
>
>- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
>
>{
>
>NSDragOperation theOperation = NSDragOperationNone;
>
>      self.highlightForDragAcceptance = YES;
>
>
>
>BOOL dropHighlight = _highlightForDragAcceptance;
>
>
>
>
>
>     downLocation = [self convertPoint: [sender draggingLocation]
>fromView:
>[self superview]];
>
>
>
>
>
>
>
>    dropindex = [self indexOfCellAtPoint:downLocation];
>
>
>
>
>
>  theOperation = [timelineViewController validateDrop:sender proposedCell:
>dropindex
>
>                     proposedDropHighlight: dropHighlight];
>
>
>
>
> return theOperation;
>
>}
>
>
>- (NSDragOperation)draggingUpdated:(id <NSDraggingInfo>)sender
>
>{
>
>NSDragOperation theOperation = NSDragOperationNone;
>
>  self.highlightForDragAcceptance = YES;
>
>
>
>    BOOL dropHighlight = _highlightForDragAcceptance;
>
>
>
>    currentLocation = [self convertPoint: [sender draggingLocation]
>fromView:
>[self superview]];
>
>
>
>
>
>
>    NSUInteger _numberOfCells = [[timelineViewController collection]
>count];
>
>    NSArray * sprites = [timelineViewController collection];
>
>
>
>
>
>
>
>    dropindex = [self indexOfCellAtPoint:currentLocation];
>
>
>
>
>
>
>
>    theOperation = [timelineViewController validateDrop:sender
>proposedCell:
>dropindex
>
>                                  proposedDropHighlight: dropHighlight];
>
>
>
>
>
>return theOperation;
>
>}
>
>
>
>- (void)draggingExited:(id <NSDraggingInfo>)sender
>
>{
>
>#pragma unused(sender)
>
>
>
> self.highlightForDragAcceptance = NO;
>
>}
>
>
>- (BOOL)prepareForDragOperation:(id<NSDraggingInfo>)sender
>
>{
>
>    sender.animatesToDestination = YES;
>
>
>
>return YES;
>
>}
>
>
>
>- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender
>
>{
>
>    BOOL highlight = _highlightForDragAcceptance;
>
>
>
>
>
>
>
>BOOL accepted = [timelineViewController acceptDrop:sender cellindex:
>dropindex dropHighlight:highlight];
>
>  self.highlightForDragAcceptance = NO;
>
>
>
>return accepted;
>
>}
>
>
>
>- (void)concludeDragOperation:(id <NSDraggingInfo>)sender
>
>{
>
>#pragma unused(sender)
>
>}
>
>
>
>- (void)draggingEnded:(id <NSDraggingInfo>)sender
>
>{
>
>#pragma unused(sender)
>
>     self.highlightForDragAcceptance = NO;
>
>     [self deselectSelectedObjects];
>
>}
>
>
>
>
>- (BOOL)wantsPeriodicDraggingUpdates
>
>{
>
>return YES;
>
>}
>
>
>
>
>- (BOOL)writeCellsWithIndexes:(NSIndexSet*)indexes toPasteboard:(
>NSPasteboard *)dragPasteboard
>
>{
>
>    [dragPasteboard declareTypes: [NSArray arrayWithObjects:
>NSStringPboardType, nil] owner: self];
>
>[dragPasteboard setString: @"Just Testing" forType: NSStringPboardType];
>
> return YES;
>
>
>}
>
>
>- (NSDragOperation)validateDrop:(id <NSDraggingInfo>)info proposedCell:(
>NSUInteger)index
>
>      proposedDropHighlight:(BOOL)dropHighlight;
>
>{
>
>return NSDragOperationCopy;
>
>}
>
>
>- (BOOL)acceptDrop:(id <NSDraggingInfo>)info cellindex:(NSUInteger)index
>dropHighlight:(BOOL)dropHighlight
>
>{
>
>    NSLog(@"Accept Drop");
>
>    NSLog(@"selection index:%i",[spritesController selectionIndex]);
>
>    NSLog(@"drop index:%i",index);
>
>
>
>    MVSprite *temp = [collection objectAtIndex: [spritesController
>selectionIndex]];
>
>
>
>    [spritesController
>removeObjectAtArrangedObjectIndex:[spritesController
>selectionIndex]];
>
>    [spritesController insertObject:temp atArrangedObjectIndex:index];
>
>
>
>
>
>
>
>    NSArray * sprites = [self collection];
>
>
> int count = [sprites count];
>
>
>
>
>//layout the subviews
>
>
>    for (int i=0; i<count; i++)
>
>    {
>
>        MVSprite * current = [sprites objectAtIndex:i];
>
>        if(i == 0)
>
>        {
>
>            current.start = 0;
>
>            current.end = current.start + current.duration;
>
>            [current setAnimate:YES];
>
>            [current.spriteView setSpriteViewFrame];
>
>
>
>        }else{
>
>            MVSprite * previous = [sprites objectAtIndex:i-1];
>
>
>
>            current.start = previous.end;
>
>            current.end = current.start + current.duration;
>
>            [current setAnimate:YES];
>
>            [current.spriteView setSpriteViewFrame];
>
>
>
>        }
>
>
>
>    }
>
>}
>_______________________________________________
>
>Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>
>Please do not post admin requests or moderator comments to the list.
>Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
>Help/Unsubscribe/Update your Subscription:
>https://lists.apple.com/mailman/options/cocoa-dev/chucks%40veladg.com
>
>This email sent to chu...@veladg.com


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to