project_files/HedgewarsMobile/Classes/otherSrc/SquareButtonView.m
changeset 3546 ccf4854df294
parent 3545 b07ee704f35d
child 3547 02875b1145b7
equal deleted inserted replaced
3545:b07ee704f35d 3546:ccf4854df294
     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