project_files/HedgewarsMobile/Classes/WeaponCellView.m
author koda
Fri, 13 Aug 2010 02:13:18 +0200
changeset 3737 2ba6ac8a114b
parent 3697 d5b30d6373fc
child 3766 36b625111609
permissions -rw-r--r--
reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch adjusted default zoom value polished lobby interface updated ammosets to new weapons

//
//  WeaponCellView.m
//  Hedgewars
//
//  Created by Vittorio on 03/07/10.
//  Copyright 2010 __MyCompanyName__. All rights reserved.
//

#import "WeaponCellView.h"
#import "CommodityFunctions.h"

@implementation WeaponCellView
@synthesize delegate, weaponName, weaponIcon, initialQt, probabilityQt, delayQt, crateQt,
            initialImg, probabImg, delayImg, crateImg, initialLab, probLab, delLab, craLab;

-(id) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {
        delegate = nil;

        weaponName = [[UILabel alloc] init];
        weaponName.backgroundColor = [UIColor clearColor];
        weaponName.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]];
        weaponIcon = [[UIImageView alloc] init];

        initialQt = [[UISlider alloc] init];
        [initialQt addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged];
        initialQt.maximumValue = 9;
        initialQt.minimumValue = 0;

        probabilityQt = [[UISlider alloc] init];
        [probabilityQt addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged];
        probabilityQt.maximumValue = 9;
        probabilityQt.minimumValue = 0;

        delayQt = [[UISlider alloc] init];
        [delayQt addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged];
        delayQt.maximumValue = 9;
        delayQt.minimumValue = 0;

        crateQt = [[UISlider alloc] init];
        [crateQt addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged];
        crateQt.maximumValue = 9;
        crateQt.minimumValue = 0;

        NSString *imgAmmoStr = [NSString stringWithFormat:@"%@/iconAmmo.png",BTN_DIRECTORY()];
        NSString *imgDamageStr = [NSString stringWithFormat:@"%@/iconDamage.png",BTN_DIRECTORY()];
        NSString *imgTimeStr = [NSString stringWithFormat:@"%@/iconTime.png",BTN_DIRECTORY()];
        NSString *imgBoxStr = [NSString stringWithFormat:@"%@/iconBox.png",BTN_DIRECTORY()];

        initialImg = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:imgAmmoStr]];
        probabImg = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:imgDamageStr]];
        delayImg = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:imgTimeStr]];
        crateImg = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:imgBoxStr]];

        initialLab = [[UILabel alloc] init];
        initialLab.backgroundColor = [UIColor clearColor];
        initialLab.textColor = [UIColor grayColor];
        initialLab.textAlignment = UITextAlignmentCenter;

        probLab = [[UILabel alloc] init];
        probLab.backgroundColor = [UIColor clearColor];
        probLab.textColor = [UIColor grayColor];
        probLab.textAlignment = UITextAlignmentCenter;

        delLab = [[UILabel alloc] init];
        delLab.backgroundColor = [UIColor clearColor];
        delLab.textColor = [UIColor grayColor];
        delLab.textAlignment = UITextAlignmentCenter;

        craLab = [[UILabel alloc] init];
        craLab.backgroundColor = [UIColor clearColor];
        craLab.textColor = [UIColor grayColor];
        craLab.textAlignment = UITextAlignmentCenter;

        [self.contentView addSubview:weaponName]; // [weaponName release];
        [self.contentView addSubview:weaponIcon]; // [weaponIcon release];

        [self.contentView addSubview:initialQt];  // [initialQt release];
        [self.contentView addSubview:probabilityQt]; // [probabilityQt release];
        [self.contentView addSubview:delayQt];    // [delayQt release];
        [self.contentView addSubview:crateQt];    // [crateQt release];

        [self.contentView addSubview:initialImg]; // [initialImg release];
        [self.contentView addSubview:probabImg];  // [probabImg release];
        [self.contentView addSubview:delayImg];   // [delayImg release];
        [self.contentView addSubview:crateImg];   // [crateImg release];

        [self.contentView addSubview:initialLab]; // [initialLab release];
        [self.contentView addSubview:probLab];    // [probLab release];
        [self.contentView addSubview:delLab];     // [delLab release];
        [self.contentView addSubview:craLab];     // [craLab release];
    }
    return self;
}

-(void) layoutSubviews {
    [super layoutSubviews];

    CGRect contentRect = self.contentView.bounds;
    CGFloat boundsX = contentRect.origin.x;

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        boundsX += 65;
    else
        boundsX -= 9;

    weaponIcon.frame = CGRectMake(5, 5, 32, 32);
    weaponName.frame = CGRectMake(45, 8, 200, 25);

    // second line
    initialImg.frame = CGRectMake(boundsX+20, 40, 32, 32);
    initialLab.frame = CGRectMake(boundsX+56, 40, 20, 32);
    initialLab.text = ((int)initialQt.value == 9) ? @"∞" : [NSString stringWithFormat:@"%d",(int)initialQt.value];
    initialQt.frame = CGRectMake(boundsX+80, 40, 150, 32);

    probabImg.frame = CGRectMake(boundsX+255, 40, 32, 32);
    probLab.frame = CGRectMake(boundsX+291, 40, 20, 32);
    probLab.text = ((int)probabilityQt.value == 9) ? @"∞" : [NSString stringWithFormat:@"%d",(int)probabilityQt.value];
    probabilityQt.frame = CGRectMake(boundsX+314, 40, 150, 32);

    // third line
    delayImg.frame = CGRectMake(boundsX+20, 80, 32, 32);
    delLab.frame = CGRectMake(boundsX+56, 80, 20, 32);
    delLab.text = ((int)delayQt.value == 9) ? @"∞" : [NSString stringWithFormat:@"%d",(int)delayQt.value];
    delayQt.frame = CGRectMake(boundsX+80, 80, 150, 32);

    crateImg.frame = CGRectMake(boundsX+255, 80, 32, 32);
    craLab.frame = CGRectMake(boundsX+291, 80, 20, 32);
    craLab.text = ((int)crateQt.value == 9) ? @"∞" : [NSString stringWithFormat:@"%d",(int)crateQt.value];
    crateQt.frame = CGRectMake(boundsX+314, 80, 150, 32);
}

/*
-(void) setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    // Configure the view for the selected state
}
*/

-(void) valueChanged:(id) sender {
    if (self.delegate != nil) {
        initialLab.text = ((int)initialQt.value == 9) ? @"∞" : [NSString stringWithFormat:@"%d",(int)initialQt.value];
        probLab.text = ((int)probabilityQt.value == 9) ? @"∞" : [NSString stringWithFormat:@"%d",(int)probabilityQt.value];
        delLab.text = ((int)delayQt.value == 9) ? @"∞" : [NSString stringWithFormat:@"%d",(int)delayQt.value];
        craLab.text = ((int)crateQt.value == 9) ? @"∞" : [NSString stringWithFormat:@"%d",(int)crateQt.value];

        [delegate updateValues:[NSArray arrayWithObjects:
                                [NSNumber numberWithInt:(int)initialQt.value],
                                [NSNumber numberWithInt:(int)probabilityQt.value],
                                [NSNumber numberWithInt:(int)delayQt.value],
                                [NSNumber numberWithInt:(int)crateQt.value], nil]
                       atIndex:self.tag];
    } else
        DLog(@"error - delegate = nil!");
}

-(void) dealloc {
    self.delegate = nil;
    releaseAndNil(weaponName);
    releaseAndNil(weaponIcon);
    releaseAndNil(initialQt);
    releaseAndNil(probabilityQt);
    releaseAndNil(delayQt);
    releaseAndNil(crateQt);
    releaseAndNil(initialImg);
    releaseAndNil(probabImg);
    releaseAndNil(delayImg);
    releaseAndNil(crateImg);
    releaseAndNil(initialLab);
    releaseAndNil(probLab);
    releaseAndNil(delLab);
    releaseAndNil(craLab);
    [super dealloc];
}

@end