1 // |
|
2 // HogButtonView.m |
|
3 // HedgewarsMobile |
|
4 // |
|
5 // Created by Vittorio on 20/04/10. |
|
6 // Copyright 2010 __MyCompanyName__. All rights reserved. |
|
7 // |
|
8 |
|
9 #import "SquareButtonView.h" |
|
10 #import <QuartzCore/QuartzCore.h> |
|
11 #import "CommodityFunctions.h" |
|
12 #import "UIImageExtra.h" |
|
13 |
|
14 @implementation SquareButtonView |
|
15 @synthesize colorArray, selectedColor, ownerDictionary; |
|
16 |
|
17 -(id) initWithFrame:(CGRect)frame { |
|
18 if ((self = [super initWithFrame:frame])) { |
|
19 colorIndex = -1; |
|
20 selectedColor = 0; |
|
21 |
|
22 // list of allowed colors |
|
23 NSArray *colors = [[NSArray alloc] initWithObjects: [NSNumber numberWithUnsignedInt:4421353], // bluette |
|
24 [NSNumber numberWithUnsignedInt:4100897], // greeeen |
|
25 [NSNumber numberWithUnsignedInt:10632635], // violett |
|
26 [NSNumber numberWithUnsignedInt:16749353], // oranngy |
|
27 [NSNumber numberWithUnsignedInt:14483456], // reddish |
|
28 [NSNumber numberWithUnsignedInt:7566195], // graaaay |
|
29 nil]; |
|
30 self.colorArray = colors; |
|
31 [colors release]; |
|
32 |
|
33 // set the color to the first available one |
|
34 [self nextColor]; |
|
35 |
|
36 // this makes the button round and nice with a border |
|
37 [self.layer setCornerRadius:7.0f]; |
|
38 [self.layer setMasksToBounds:YES]; |
|
39 [self.layer setBorderWidth:2]; |
|
40 |
|
41 // this changes the color at button press |
|
42 [self addTarget:self action:@selector(nextColor) forControlEvents:UIControlEventTouchUpInside]; |
|
43 } |
|
44 return self; |
|
45 } |
|
46 |
|
47 -(void) nextColor { |
|
48 colorIndex++; |
|
49 |
|
50 if (colorIndex >= [colorArray count]) |
|
51 colorIndex = 0; |
|
52 |
|
53 NSUInteger color = [[self.colorArray objectAtIndex:colorIndex] unsignedIntValue]; |
|
54 self.backgroundColor = [UIColor colorWithRed:((color & 0x00FF0000) >> 16)/255.0f |
|
55 green:((color & 0x0000FF00) >> 8)/255.0f |
|
56 blue: (color & 0x000000FF)/255.0f |
|
57 alpha:1.0f]; |
|
58 |
|
59 [ownerDictionary setObject:[NSNumber numberWithInt:color] forKey:@"color"]; |
|
60 } |
|
61 |
|
62 -(void) selectColor:(NSUInteger) color { |
|
63 if (color != selectedColor) { |
|
64 selectedColor = color; |
|
65 colorIndex = [colorArray indexOfObject:[NSNumber numberWithUnsignedInt:color]]; |
|
66 |
|
67 self.backgroundColor = [UIColor colorWithRed:((color & 0x00FF0000) >> 16)/255.0f |
|
68 green:((color & 0x0000FF00) >> 8)/255.0f |
|
69 blue: (color & 0x000000FF)/255.0f |
|
70 alpha:1.0f]; |
|
71 } |
|
72 } |
|
73 |
|
74 -(void) dealloc { |
|
75 [ownerDictionary release]; |
|
76 [colorArray release]; |
|
77 [super dealloc]; |
|
78 } |
|
79 |
|
80 |
|
81 @end |
|