1//
2//  PXMoveTool.m
3//  Pixen-XCode
4//
5//  Created by Andy Matuschak on Fri Feb 27 2004.
6//  Copyright (c) 2004 Open Sword Group. All rights reserved.
7//
8
9#import "PXMoveTool.h"
10#import "PXCanvasController.h"
11#import "PXCanvas.h"
12#import "PXLayer.h"
13
14
15@implementation PXMoveTool
16
17- (NSString *)name
18{
19	return NSLocalizedString(@"MOVE_NAME", @"Move Tool");
20}
21
22- actionName
23{
24	return NSLocalizedString(@"MOVE_ACTION", @"Moving");
25}
26
27- (void)mouseDownAt:(NSPoint)aPoint fromCanvasController:controller
28{
29	[[self undoManager] beginUndoGrouping];
30	[[self undoManager] setActionName:[self actionName]];
31	[self setLayers:[[[controller canvas] layers] deepMutableCopy] fromLayers:[[controller canvas] layers] ofCanvas:[controller canvas]];
32}
33
34- (void)setLayers:layers fromLayers:oldLayers ofCanvas:canvas
35{
36	[[[self undoManager] prepareWithInvocationTarget:self] setLayers:oldLayers fromLayers:layers ofCanvas:canvas];
37	[canvas setLayers:layers];
38}
39
40- (void)mouseDraggedFrom:(NSPoint)initialPoint to:(NSPoint)finalPoint fromCanvasController:controller
41{
42	[[[controller canvas] activeLayer] translateXBy:(finalPoint.x - initialPoint.x) yBy:(finalPoint.y - initialPoint.y)];
43	[[controller canvas] changedInRect:NSMakeRect(0,0,[[controller canvas] size].width,[[controller canvas] size].height)];
44}
45
46- (void)mouseUpAt:(NSPoint)aPoint fromCanvasController:controller
47{
48	[[[controller canvas] activeLayer] finalizeMotion];
49	[[self undoManager] endUndoGrouping];
50}
51
52/*
53+ (void)offsetLayer:layer inCanvas:canvas byAmount:(NSPoint)amount
54{
55	id object = [[[self alloc] init] autorelease];
56	[[object undoManager] beginUndoGrouping];
57	[[object undoManager] setActionName:[self actionName]];
58	[object setLayers:[[canvas layers] deepMutableCopy] fromLayers:[canvas layers] ofCanvas:canvas];
59	[layer translateXBy:amount.x yBy:amount.y];
60	[canvas changedInRect:NSMakeRect(0,0,[canvas size].width,[canvas size].height)];
61	[layer finalizeMotion];
62	[[object undoManager] endUndoGrouping];
63}
64*/
65
66@end
67