diff -r f589230fa21b -r 59dbd31e9953 project_files/HedgewarsMobile/Classes/TeamConfigViewController.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/HedgewarsMobile/Classes/TeamConfigViewController.m Thu Jun 17 20:30:39 2010 +0200 @@ -0,0 +1,174 @@ +// +// TeamConfigViewController.m +// HedgewarsMobile +// +// Created by Vittorio on 20/04/10. +// Copyright 2010 __MyCompanyName__. All rights reserved. +// + +#import "TeamConfigViewController.h" +#import "CommodityFunctions.h" +#import "HogButtonView.h" +#import "SquareButtonView.h" + +@implementation TeamConfigViewController +@synthesize listOfTeams, listOfSelectedTeams; + +#define NUMBERBUTTON_TAG 123456 +#define SQUAREBUTTON_TAG 654321 +#define LABEL_TAG 456123 + +#pragma mark - +#pragma mark View lifecycle +-(void) viewDidLoad { + [super viewDidLoad]; + + CGSize screenSize = [[UIScreen mainScreen] bounds].size; + self.view.frame = CGRectMake(0, 0, screenSize.height, screenSize.width - 44); +} + +-(void) viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + + // integer representation of various color (defined in SquareButtonView) + NSUInteger colors[6] = { 4421353, 4100897, 10632635, 16749353, 14483456, 7566195 }; + NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:TEAMS_DIRECTORY() error:NULL]; + NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:[contentsOfDir count]]; + for (int i = 0; i < [contentsOfDir count]; i++) { + NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithObjectsAndKeys: + [contentsOfDir objectAtIndex:i],@"team", + [NSNumber numberWithInt:4],@"number", + [NSNumber numberWithInt:colors[i%6]],@"color",nil]; + [array addObject:dict]; + [dict release]; + } + self.listOfTeams = array; + [array release]; + + NSMutableArray *emptyArray = [[NSMutableArray alloc] initWithObjects:nil]; + self.listOfSelectedTeams = emptyArray; + [emptyArray release]; + + [self.tableView reloadData]; +} + +-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + return rotationManager(interfaceOrientation); +} + + +#pragma mark - +#pragma mark Table view data source +-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView { + return 2; +} + +-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (section == 0) + return [listOfSelectedTeams count] ; + else + return [listOfTeams count]; +} + +-(NSString *)tableView:(UITableView *)aTableView titleForHeaderInSection:(NSInteger)section { + if (section == 0) + return NSLocalizedString(@"Playing Teams",@""); + else + return NSLocalizedString(@"Available Teams",@""); +} + +// Customize the appearance of table view cells. +-(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + static NSString *CellIdentifier0 = @"Cell0"; + static NSString *CellIdentifier1 = @"Cell1"; + NSInteger section = [indexPath section]; + UITableViewCell *cell; + + if (section == 0) { + cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier0]; + if (cell == nil) { + cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier0] autorelease]; + + UIButton *numberButton = [[HogButtonView alloc] initWithFrame:CGRectMake(12, 5, 88, 32)]; + numberButton.tag = NUMBERBUTTON_TAG; + [cell addSubview:numberButton]; + [numberButton release]; + + SquareButtonView *squareButton = [[SquareButtonView alloc] initWithFrame:CGRectMake(12+88+7, 5, 36, 36)]; + squareButton.tag = SQUAREBUTTON_TAG; + [cell addSubview:squareButton]; + [squareButton release]; + + UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(12+88+7+36+7, 10, 250, 25)]; + label.textAlignment = UITextAlignmentLeft; + label.backgroundColor = [UIColor clearColor]; + label.font = [UIFont boldSystemFontOfSize:[UIFont systemFontSize] + 2]; + label.tag = LABEL_TAG; + [cell.contentView addSubview:label]; + [label release]; + } + + NSMutableDictionary *selectedRow = [listOfSelectedTeams objectAtIndex:[indexPath row]]; + + UILabel *cellLabel = (UILabel *)[cell viewWithTag:LABEL_TAG]; + cellLabel.text = [[selectedRow objectForKey:@"team"] stringByDeletingPathExtension]; + + HogButtonView *numberButton = (HogButtonView *)[cell viewWithTag:NUMBERBUTTON_TAG]; + [numberButton drawManyHogs:[[selectedRow objectForKey:@"number"] intValue]]; + numberButton.ownerDictionary = selectedRow; + + SquareButtonView *squareButton = (SquareButtonView *)[cell viewWithTag:SQUAREBUTTON_TAG]; + [squareButton selectColor:[[selectedRow objectForKey:@"color"] intValue]]; + squareButton.ownerDictionary = selectedRow; + } else { + cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier1]; + if (cell == nil) + cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] autorelease]; + + cell.textLabel.text = [[[listOfTeams objectAtIndex:[indexPath row]] objectForKey:@"team"] stringByDeletingPathExtension]; + } + + return cell; +} + + +#pragma mark - +#pragma mark Table view delegate +-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + NSInteger row = [indexPath row]; + NSInteger section = [indexPath section]; + + if (section == 0) { + [self.listOfTeams addObject:[self.listOfSelectedTeams objectAtIndex:row]]; + [self.listOfSelectedTeams removeObjectAtIndex:row]; + } else { + [self.listOfSelectedTeams addObject:[self.listOfTeams objectAtIndex:row]]; + [self.listOfTeams removeObjectAtIndex:row]; + } + [aTableView reloadData]; +} + + +#pragma mark - +#pragma mark Memory management +-(void) didReceiveMemoryWarning { + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + // Relinquish ownership any cached data, images, etc that aren't in use. +} + +-(void) viewDidUnload { + self.listOfTeams = nil; + [super viewDidUnload]; + MSG_DIDUNLOAD(); +} + + +-(void) dealloc { + [self.listOfTeams release]; + [super dealloc]; +} + + +@end +