--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m Wed Jun 23 21:49:19 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m Wed Jun 23 22:03:56 2010 +0200
@@ -0,0 +1,160 @@
+//
+// SchemeWeaponConfigViewController.m
+// Hedgewars
+//
+// Created by Vittorio on 13/06/10.
+// Copyright 2010 __MyCompanyName__. All rights reserved.
+//
+
+#import "SchemeWeaponConfigViewController.h"
+#import "CommodityFunctions.h"
+
+@implementation SchemeWeaponConfigViewController
+@synthesize listOfSchemes, listOfWeapons, lastIndexPath_sc, lastIndexPath_we, selectedScheme, selectedWeapon;
+
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ return rotationManager(interfaceOrientation);
+}
+
+#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];
+
+ NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCHEMES_DIRECTORY() error:NULL];
+ self.listOfSchemes = contentsOfDir;
+
+ contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:WEAPONS_DIRECTORY() error:NULL];
+ self.listOfWeapons = contentsOfDir;
+
+ self.selectedScheme = @"Default.plist";
+ self.selectedWeapon = @"Default.plist";
+
+ [self.tableView reloadData];
+}
+
+
+
+#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 [self.listOfSchemes count];
+ else
+ return [self.listOfWeapons count];
+}
+
+
+// Customize the appearance of table view cells.
+-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+ static NSString *CellIdentifier = @"Cell";
+ NSInteger row = [indexPath row];
+
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil) {
+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ }
+
+ cell.accessoryType = UITableViewCellAccessoryNone;
+ if ([indexPath section] == 0) {
+ cell.textLabel.text = [[self.listOfSchemes objectAtIndex:row] stringByDeletingPathExtension];
+ if ([[self.listOfSchemes objectAtIndex:row] isEqualToString:self.selectedScheme]) {
+ cell.accessoryType = UITableViewCellAccessoryCheckmark;
+ self.lastIndexPath_sc = indexPath;
+ }
+ } else {
+ cell.textLabel.text = [[self.listOfWeapons objectAtIndex:row] stringByDeletingPathExtension];
+ if ([[self.listOfWeapons objectAtIndex:row] isEqualToString:self.selectedWeapon]) {
+ cell.accessoryType = UITableViewCellAccessoryCheckmark;
+ self.lastIndexPath_we = indexPath;
+ }
+ }
+
+ return cell;
+}
+
+
+#pragma mark -
+#pragma mark Table view delegate
+-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+ NSIndexPath *lastIndexPath;
+ if ([indexPath section] == 0)
+ lastIndexPath = self.lastIndexPath_sc;
+ else
+ lastIndexPath = self.lastIndexPath_we;
+
+ int newRow = [indexPath row];
+ int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
+
+ if (newRow != oldRow) {
+ //TODO: this code works only for a single section table
+ UITableViewCell *newCell = [aTableView cellForRowAtIndexPath:indexPath];
+ newCell.accessoryType = UITableViewCellAccessoryCheckmark;
+ UITableViewCell *oldCell = [aTableView cellForRowAtIndexPath:lastIndexPath];
+ oldCell.accessoryType = UITableViewCellAccessoryNone;
+
+ if ([indexPath section] == 0) {
+ self.lastIndexPath_sc = indexPath;
+ self.selectedScheme = [self.listOfSchemes objectAtIndex:newRow];
+ } else {
+ self.lastIndexPath_we = indexPath;
+ self.selectedWeapon = [self.listOfWeapons objectAtIndex:newRow];
+ }
+
+ [aTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
+ }
+ [aTableView deselectRowAtIndexPath:indexPath animated:YES];
+}
+
+-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger) section {
+ if (section == 0) {
+ return NSLocalizedString(@"Schemes",@"");
+ } else {
+ return NSLocalizedString(@"Weapons",@"");;
+ }
+}
+
+#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.listOfSchemes = nil;
+ self.listOfWeapons = nil;
+ self.lastIndexPath_sc = nil;
+ self.lastIndexPath_we = nil;
+ self.selectedScheme = nil;
+ self.selectedWeapon = nil;
+ MSG_DIDUNLOAD();
+}
+
+
+-(void) dealloc {
+ [listOfSchemes release];
+ [listOfWeapons release];
+ [lastIndexPath_sc release];
+ [lastIndexPath_we release];
+ [selectedScheme release];
+ [selectedWeapon release];
+ [super dealloc];
+}
+
+
+@end
+