1//
2//  PXCanvas_ApplescriptAdditions.m
3//  Pixen
4//
5//  Created by Ian Henderson on Fri Mar 05 2004.
6//  Copyright (c) 2004 Open Sword Group. All rights reserved.
7//
8
9#import "PXCanvas_ApplescriptAdditions.h"
10#import "PXLayerController.h"
11#import "PXLayer.h"
12
13@implementation PXCanvas(ApplescriptAdditions)
14
15- handleGetColorScriptCommand:command
16{
17    NSDictionary *arguments = [command evaluatedArguments];
18    return [self colorAtPoint:NSMakePoint([[arguments objectForKey:@"atX"] intValue], [[arguments objectForKey:@"atY"] intValue])];
19}
20
21- handleSetColorScriptCommand:command
22{
23    NSDictionary *arguments = [command evaluatedArguments];
24    id colorArray = [arguments objectForKey:@"toColor"];
25    NSColor *color = [NSColor colorWithCalibratedRed:[[colorArray objectAtIndex:0] floatValue]/65535 green:[[colorArray objectAtIndex:1] floatValue]/65535 blue:[[colorArray objectAtIndex:2] floatValue]/65535 alpha:1.0f];
26    NSPoint changedPoint = NSMakePoint([[arguments objectForKey:@"atX"] intValue], [[arguments objectForKey:@"atY"] intValue]);
27    [self setColor:color atPoint:changedPoint];
28    [self changedInRect:NSMakeRect(changedPoint.x, changedPoint.y, 1, 1)];
29    return nil;
30}
31
32- handleAddLayerScriptCommand:command
33{
34	[self addLayer:[[PXLayer alloc] initWithName:[[command evaluatedArguments] objectForKey:@"layerName"] size:[self size]]];
35	return nil;
36}
37
38
39- layerNamed:aName
40{
41	id enumerator = [layers objectEnumerator], current;
42	while (current = [enumerator nextObject])
43	{
44		if ([[current name] isEqualToString:aName])
45		{
46			return current;
47		}
48	}
49	return nil;
50}
51
52- handleRemoveLayerScriptCommand:command
53{
54	id layer = [self layerNamed:[[command evaluatedArguments] objectForKey:@"layerName"]];
55	if(layer != nil)
56	{
57		[self removeLayer:layer];
58		[[NSNotificationCenter defaultCenter] postNotificationName:PXCanvasLayerSelectionDidChangeName object:self];
59	}
60	return nil;
61}
62
63- handleMoveLayerScriptCommand:command
64{
65	[self moveLayer:[layers objectAtIndex:[[[command evaluatedArguments] objectForKey:@"atIndex"] intValue]] toIndex:[[[command evaluatedArguments] objectForKey:@"toIndex"] intValue]];
66	return nil;
67}
68
69- (void)setActiveLayerName:aName
70{
71	id layer = [self layerNamed:aName];
72	if(layer != nil)
73	{
74		[self activateLayer:layer];
75		[[NSNotificationCenter defaultCenter] postNotificationName:PXCanvasLayerSelectionDidChangeName object:self];
76	}
77}
78
79- (int)height
80{
81    return (int)[self size].height;
82}
83- (void)setHeight:(int)height
84{
85    NSSize newSize = [self size];
86    newSize.height = height;
87    [self setSize:newSize];
88}
89- (int)width
90{
91    return (int)[self size].width;
92}
93- (void)setWidth:(int)width
94{
95    NSSize newSize = [self size];
96    newSize.width = width;
97    [self setSize:newSize];
98}
99
100@end
101