project_files/HedgewarsMobile/Classes/SquareButtonView.m
author dag10 <gottlieb.drew@gmail.com>
Wed, 16 Jan 2013 18:34:43 -0500
changeset 8393 85bd6c7b2641
parent 6914 e6094d329108
child 10108 c68cf030eded
permissions -rw-r--r--
Can now change theme for static and mission maps. Fixed mission map descriptions that had commas which broke them. Now, you must escape commas in map descriptions. Made bgwidget repaint on animation tick to avoid buffer-not-clearing issue with widgets that change overtop the background leaving a ghost image of the widget's previous state. Generated map is now the default map in the mapconfig widget.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3829
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
     1
/*
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
     2
 * Hedgewars-iOS, a Hedgewars port for iOS devices
6700
e04da46ee43c the most important commit of the year
koda
parents: 6078
diff changeset
     3
 * Copyright (c) 2009-2012 Vittorio Giovara <vittorio.giovara@gmail.com>
3829
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
     4
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
     8
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
    12
 * GNU General Public License for more details.
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
    13
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
    14
 * You should have received a copy of the GNU General Public License
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
    15
 * along with this program; if not, write to the Free Software
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
    17
 */
81db3c85784b headers ftw, also right project file
koda
parents: 3703
diff changeset
    18
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    19
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    20
#import "SquareButtonView.h"
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    21
#import <QuartzCore/QuartzCore.h>
6078
8c0cc07731e5 headers cleanup, converted some function-only sources into proper class method files, more use of OOP power, removed some 'respondsToSelector' calls, moved defines into their own header, more use of objc categories
koda
parents: 5208
diff changeset
    22
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    23
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    24
@implementation SquareButtonView
6914
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    25
@synthesize ownerDictionary, colorIndex, selectedColor, colorArray;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    26
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    27
-(id) initWithFrame:(CGRect)frame {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    28
    if ((self = [super initWithFrame:frame])) {
6914
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    29
        self.colorIndex = 0;
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    30
        self.selectedColor = 0;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    31
6078
8c0cc07731e5 headers cleanup, converted some function-only sources into proper class method files, more use of OOP power, removed some 'respondsToSelector' calls, moved defines into their own header, more use of objc categories
koda
parents: 5208
diff changeset
    32
        self.colorArray = [HWUtils teamColors];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    33
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    34
        // set the color to the first available one
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    35
        [self nextColor];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3547
diff changeset
    36
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    37
        // this makes the button round and nice with a border
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    38
        [self.layer setCornerRadius:7.0f];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3547
diff changeset
    39
        [self.layer setMasksToBounds:YES];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    40
        [self.layer setBorderWidth:2];
6078
8c0cc07731e5 headers cleanup, converted some function-only sources into proper class method files, more use of OOP power, removed some 'respondsToSelector' calls, moved defines into their own header, more use of objc categories
koda
parents: 5208
diff changeset
    41
        [self.layer setBorderColor:[[UIColor darkYellowColor] CGColor]];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3547
diff changeset
    42
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    43
        // this changes the color at button press
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    44
        [self addTarget:self action:@selector(nextColor) forControlEvents:UIControlEventTouchUpInside];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    45
    }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    46
    return self;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    47
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    48
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    49
-(void) nextColor {
6914
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    50
    self.colorIndex++;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    51
6914
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    52
    if (self.colorIndex >= [self.colorArray count])
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    53
        self.colorIndex = 0;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    54
6914
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    55
    NSNumber *colorNumber = [self.colorArray objectAtIndex:colorIndex];
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    56
    [self.ownerDictionary setObject:colorNumber forKey:@"color"];
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    57
    NSUInteger color = [colorNumber unsignedIntValue];
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    58
    [self selectColor:color];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    59
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    60
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    61
-(void) selectColor:(NSUInteger) color {
6914
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    62
    if (color != self.selectedColor) {
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    63
        self.selectedColor = color;
e6094d329108 ios minor warning and optimisation for team color
koda
parents: 6832
diff changeset
    64
        self.colorIndex = [self.colorArray indexOfObject:[NSNumber numberWithUnsignedInt:color]];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3547
diff changeset
    65
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3547
diff changeset
    66
        self.backgroundColor = [UIColor colorWithRed:((color & 0x00FF0000) >> 16)/255.0f
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3547
diff changeset
    67
                                               green:((color & 0x0000FF00) >> 8)/255.0f
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3547
diff changeset
    68
                                                blue: (color & 0x000000FF)/255.0f
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    69
                                               alpha:1.0f];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    70
    }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    71
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    72
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    73
-(void) dealloc {
5208
878e551f0b4a all together now! releaseAndNil ftw
koda
parents: 4976
diff changeset
    74
    releaseAndNil(ownerDictionary);
878e551f0b4a all together now! releaseAndNil ftw
koda
parents: 4976
diff changeset
    75
    releaseAndNil(colorArray);
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    76
    [super dealloc];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    77
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    78
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    79
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    80
@end