1/* 2 Project: Graphos 3 GRTools.m 4 5 Copyright (C) 2000-2008 GNUstep Application Project 6 7 Author: Enrico Sersale (original GDraw implementation) 8 Author: Ing. Riccardo Mottola 9 10 This application is free software; you can redistribute it and/or 11 modify it under the terms of the GNU General Public 12 License as published by the Free Software Foundation; either 13 version 2 of the License, or (at your option) any later version. 14 15 This application is distributed in the hope that it will be useful, 16 but WITHOUT ANY WARRANTY; without even the implied warranty of 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 Library General Public License for more details. 19 20 You should have received a copy of the GNU General Public 21 License along with this library; if not, write to the Free 22 Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 */ 24 25 26#import "GRTools.h" 27#import "Graphos.h" 28 29@implementation GRToolButton 30 31- (id)initWithFrame:(NSRect)rect toolType:(int)type 32{ 33 self = [super initWithFrame: rect]; 34 if(self) { 35 tooltype = type; 36 } 37 return self; 38} 39 40- (int)tooltype 41{ 42 return tooltype; 43} 44 45@end 46 47@implementation GRToolsView 48 49- (id)initWithFrame:(NSRect)rect 50{ 51 self = [super initWithFrame: rect]; 52 if(self) 53 { 54 buttons = [[NSMutableArray alloc] initWithCapacity: 14]; 55 56 barrowButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(0, 120, 25, 20) 57 toolType: blackarrowtool]; 58 [barrowButt setButtonType: NSOnOffButton]; 59 [barrowButt setImage: [NSImage imageNamed: @"blackarrow.tiff"]]; 60 [barrowButt setImagePosition: NSImageOnly]; 61 [barrowButt setTarget:self]; 62 [barrowButt setAction:@selector(buttonPressed:)]; 63 [self addSubview: barrowButt]; 64 [buttons addObject: barrowButt]; 65 [barrowButt release]; 66 67 warrowButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(25, 120, 25, 20) 68 toolType: whitearrowtool]; 69 [warrowButt setButtonType: NSOnOffButton]; 70 [warrowButt setImage: [NSImage imageNamed: @"whitearrow.tiff"]]; 71 [warrowButt setImagePosition: NSImageOnly]; 72 [warrowButt setTarget:self]; 73 [warrowButt setAction:@selector(buttonPressed:)]; 74 [self addSubview: warrowButt]; 75 [buttons addObject: warrowButt]; 76 [warrowButt release]; 77 78 bezierButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(0, 100, 25, 20) 79 toolType: beziertool]; 80 [bezierButt setButtonType: NSOnOffButton]; 81 [bezierButt setImage: [NSImage imageNamed: @"bezier.tiff"]]; 82 [bezierButt setImagePosition: NSImageOnly]; 83 [bezierButt setTarget:self]; 84 [bezierButt setAction:@selector(buttonPressed:)]; 85 [self addSubview: bezierButt]; 86 [buttons addObject: bezierButt]; 87 [bezierButt release]; 88 89 textButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(25, 100, 25, 20) 90 toolType: texttool]; 91 [textButt setButtonType: NSOnOffButton]; 92 [textButt setImage: [NSImage imageNamed: @"text.tiff"]]; 93 [textButt setImagePosition: NSImageOnly]; 94 [textButt setTarget:self]; 95 [textButt setAction:@selector(buttonPressed:)]; 96 [self addSubview: textButt]; 97 [buttons addObject: textButt]; 98 [textButt release]; 99 100 circleButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(0, 80, 25, 20) 101 toolType: circletool]; 102 [circleButt setButtonType: NSOnOffButton]; 103 [circleButt setImage: [NSImage imageNamed: @"circle.tiff"]]; 104 [circleButt setImagePosition: NSImageOnly]; 105 [circleButt setTarget:self]; 106 [circleButt setAction:@selector(buttonPressed:)]; 107 [self addSubview: circleButt]; 108 [buttons addObject: circleButt]; 109 [circleButt release]; 110 111 rectangleButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(25, 80, 25, 20) 112 toolType: rectangletool]; 113 [rectangleButt setButtonType: NSOnOffButton]; 114 [rectangleButt setImage: [NSImage imageNamed: @"rectangle.tiff"]]; 115 [rectangleButt setImagePosition: NSImageOnly]; 116 [rectangleButt setTarget:self]; 117 [rectangleButt setAction:@selector(buttonPressed:)]; 118 [self addSubview: rectangleButt]; 119 [buttons addObject: rectangleButt]; 120 [rectangleButt release]; 121 122 paintButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(0, 60, 25, 20) 123 toolType: painttool]; 124 [paintButt setButtonType: NSOnOffButton]; 125 [paintButt setImage: [NSImage imageNamed: @"paint.tiff"]]; 126 [paintButt setImagePosition: NSImageOnly]; 127 [paintButt setTarget:self]; 128 [paintButt setAction:@selector(buttonPressed:)]; 129 [self addSubview: paintButt]; 130 [buttons addObject: paintButt]; 131 [paintButt release]; 132 [paintButt setEnabled:NO]; 133 134 135 pencilButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(25, 60, 25, 20) 136 toolType: penciltool]; 137 [pencilButt setButtonType: NSOnOffButton]; 138 [pencilButt setImage: [NSImage imageNamed: @"pencil.tiff"]]; 139 [pencilButt setImagePosition: NSImageOnly]; 140 [pencilButt setTarget:self]; 141 [pencilButt setAction:@selector(buttonPressed:)]; 142 [self addSubview: pencilButt]; 143 [buttons addObject: pencilButt]; 144 [pencilButt release]; 145 [pencilButt setEnabled:NO]; 146 147 rotateButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(0, 40, 25, 20) 148 toolType: rotatetool]; 149 [rotateButt setButtonType: NSOnOffButton]; 150 [rotateButt setImage: [NSImage imageNamed: @"rotate.tiff"]]; 151 [rotateButt setImagePosition: NSImageOnly]; 152 [rotateButt setTarget:self]; 153 [rotateButt setAction:@selector(buttonPressed:)]; 154 [self addSubview: rotateButt]; 155 [buttons addObject: rotateButt]; 156 [rotateButt release]; 157 [rotateButt setEnabled:NO]; 158 159 reduceButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(25, 40, 25, 20) 160 toolType: reducetool]; 161 [reduceButt setButtonType: NSOnOffButton]; 162 [reduceButt setImage: [NSImage imageNamed: @"reduce.tiff"]]; 163 [reduceButt setImagePosition: NSImageOnly]; 164 [reduceButt setTarget:self]; 165 [reduceButt setAction:@selector(buttonPressed:)]; 166 [self addSubview: reduceButt]; 167 [buttons addObject: reduceButt]; 168 [reduceButt release]; 169 [reduceButt setEnabled:NO]; 170 171 reflectButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(0, 20, 25, 20) 172 toolType: reflecttool]; 173 [reflectButt setButtonType: NSOnOffButton]; 174 [reflectButt setImage: [NSImage imageNamed: @"reflect.tiff"]]; 175 [reflectButt setImagePosition: NSImageOnly]; 176 [reflectButt setTarget:self]; 177 [reflectButt setAction:@selector(buttonPressed:)]; 178 [self addSubview: reflectButt]; 179 [buttons addObject: reflectButt]; 180 [reflectButt release]; 181 [reflectButt setEnabled:NO]; 182 183 scissorsButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(25, 20, 25, 20) 184 toolType: scissorstool]; 185 [scissorsButt setButtonType: NSOnOffButton]; 186 [scissorsButt setImage: [NSImage imageNamed: @"shissors.tiff"]]; 187 [scissorsButt setImagePosition: NSImageOnly]; 188 [scissorsButt setTarget:self]; 189 [scissorsButt setAction:@selector(buttonPressed:)]; 190 [self addSubview: scissorsButt]; 191 [buttons addObject: scissorsButt]; 192 [scissorsButt release]; 193 //[scissorsButt setEnabled:NO]; 194 195 handButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(0, 0, 25, 20) 196 toolType: handtool]; 197 [handButt setButtonType: NSOnOffButton]; 198 [handButt setImage: [NSImage imageNamed: @"hand.tiff"]]; 199 [handButt setImagePosition: NSImageOnly]; 200 [handButt setTarget:self]; 201 [handButt setAction:@selector(buttonPressed:)]; 202 [self addSubview: handButt]; 203 [buttons addObject: handButt]; 204 [handButt release]; 205 [handButt setEnabled:NO]; 206 207 magnifyButt = [[GRToolButton alloc] initWithFrame: NSMakeRect(25, 0, 25, 20) 208 toolType: magnifytool]; 209 [magnifyButt setButtonType: NSOnOffButton]; 210 [magnifyButt setImage: [NSImage imageNamed: @"magnify.tiff"]]; 211 [magnifyButt setImagePosition: NSImageOnly]; 212 [magnifyButt setTarget:self]; 213 [magnifyButt setAction:@selector(buttonPressed:)]; 214 [self addSubview: magnifyButt]; 215 [buttons addObject: magnifyButt]; 216 [magnifyButt release]; 217 218 [barrowButt setState: NSOnState]; 219 [[NSApp delegate] setToolType: blackarrowtool]; 220 } 221 return self; 222} 223 224- (void)dealloc 225{ 226 [buttons release]; 227 [super dealloc]; 228} 229 230- (void)buttonPressed:(id)sender 231{ 232 ToolType type; 233 234 type = [(GRToolButton *)sender tooltype]; 235 [[NSApp delegate] setToolType: type]; 236} 237 238- (void)setButtonsPositions:(int)ptype 239{ 240 GRToolButton *butt; 241 int i; 242 243 for(i = 0; i < [buttons count]; i++) 244 { 245 butt = [buttons objectAtIndex: i]; 246 if([butt tooltype] != ptype) 247 [butt setState: NSOffState]; 248 else 249 [butt setState: NSOnState]; 250 } 251} 252 253@end 254 255 256@implementation GRToolsWindow 257 258- (id)init 259{ 260 unsigned int style = NSTitledWindowMask; 261 262 self = [super initWithContentRect: NSMakeRect(10, 400, 50, 140) 263 styleMask: style 264 backing: NSBackingStoreBuffered 265 defer: NO]; 266 if(self) 267 { 268 [self setTitle: @" "]; 269 toolsView = [[GRToolsView alloc] initWithFrame: NSMakeRect(0, 0, 50, 140)]; 270 [[self contentView] addSubview: toolsView]; 271 [self setFrameAutosaveName:@"Draw_Tools"]; 272 } 273 NSLog(@"inited GRToolsWindow"); 274 return self; 275} 276 277- (void)dealloc 278{ 279 [toolsView release]; 280 [super dealloc]; 281} 282 283- (void)setButtonsPositions:(int)ptype 284{ 285 [toolsView setButtonsPositions: ptype]; 286} 287 288 289- (BOOL) canBecomeKeyWindow 290{ 291 return NO; 292} 293@end 294 295