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