views:

25

answers:

1

Hi everyone. I'm writting a Cocoa app. I've wrote a code that can Drag&Drop one Image. But now I need to draw several Images by double click and D&D them. Each double click- new image, each click on existing image- starts D&D. Problem is in realization. I can't imagine a simple way of realization. Can anybody propose a solution?

Thanks.

#import "DotView.h"


@implementation DotView

- (id)initWithFrame:(NSRect)frame 
{
    self = [super initWithFrame:frame];
    if (self) 
    {
     center.x = center.y = 100.0;
    }
    return self;
}
- (void)drawRect:(NSRect)rect {
     NSRect bounds = [self bounds];
     [[NSColor whiteColor] set];
     NSRectFill(bounds);

     [[NSGraphicsContext currentContext]
      setImageInterpolation: NSImageInterpolationHigh];

     NSSize viewSize  = [self bounds].size;
     NSSize imageSize = { 50, 40 };

     NSPoint imageOrigin = center;
     imageOrigin.x -= imageSize.width  * 0.50;
     imageOrigin.y -= imageSize.height * 0.50;


     NSRect destRect;
     destRect.origin = imageOrigin;
     destRect.size = imageSize;

     NSString * file = @"/Users/classuser/Desktop/ded.jpg";
     NSImage * image = [[NSImage alloc] initWithContentsOfFile:file];
     [image setFlipped:NO];

     [image drawInRect: destRect
        fromRect: NSZeroRect
       operation: NSCompositeSourceOver
        fraction: 1.0];

     NSBezierPath * path = [NSBezierPath bezierPathWithRect:destRect];
     }
-(void)mouseDown:(NSEvent*)event
{
    NSPoint point = [event locationInWindow];
     if(center.x<point.x+25 && center.x>point.x-25)
      if(center.y<point.y+20 && center.y>point.y-20)
       center = [self convertPoint:point fromView:nil];
}

- (void) mouseDragged:(NSEvent*)event {

    [self mouseDown:event];
    [self setNeedsDisplay:YES];

}


@end
A: 

Read:

Cocoa Drawing Guide

and

View Programming Guide for Cocoa

and

Drag and Drop Programming Topics for Cocoa

Once you've read these, ask more targeted questions - this is a bit too broad to answer simply.

Joshua Nozzi