--- a/project_files/HedgewarsMobile/Classes/MasterViewController.m Sat Oct 01 02:40:26 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,285 +0,0 @@
-/*
- * Hedgewars-iOS, a Hedgewars port for iOS devices
- * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * File created on 27/03/2010.
- */
-
-
-#import "MasterViewController.h"
-#import "CommodityFunctions.h"
-#import "GeneralSettingsViewController.h"
-#import "TeamSettingsViewController.h"
-#import "WeaponSettingsViewController.h"
-#import "SchemeSettingsViewController.h"
-#import "SupportViewController.h"
-
-@implementation MasterViewController
-@synthesize targetController, controllerNames, lastIndexPath;
-
-
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
- return rotationManager(interfaceOrientation);
-}
-
-
-#pragma mark -
-#pragma mark View lifecycle
--(void) viewDidLoad {
- // the list of available controllers
- NSArray *array = [[NSArray alloc] initWithObjects:NSLocalizedString(@"General",@""),
- NSLocalizedString(@"Teams",@""),
- NSLocalizedString(@"Weapons",@""),
- NSLocalizedString(@"Schemes",@""),
- NSLocalizedString(@"Support",@""),
- nil];
- self.controllerNames = array;
- [array release];
-
- UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
- target:self
- action:@selector(dismissSplitView)];
- if (IS_IPAD()) {
- // this class gets loaded twice, we tell the difference by looking at targetController
- if (self.targetController != nil) {
- UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];
- tableView.delegate = self;
- tableView.dataSource = self;
- [tableView reloadData];
- [self.view addSubview:tableView];
- [self tableView:tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
- [tableView release];
- self.navigationItem.leftBarButtonItem = doneButton;
- }
- } else {
- // this class just loads all controllers and set up tabbar and navigation controllers
- NSMutableArray *tabBarNavigationControllers = [[NSMutableArray alloc] initWithCapacity:5];
- UINavigationController *navController = nil;
-
- if (nil == generalSettingsViewController) {
- generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- generalSettingsViewController.tabBarItem.title = [self.controllerNames objectAtIndex:0];
- generalSettingsViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/TargetBee.png",GRAPHICS_DIRECTORY()]];
- navController = [[UINavigationController alloc] initWithRootViewController:generalSettingsViewController];
- generalSettingsViewController.navigationItem.backBarButtonItem = doneButton;
- generalSettingsViewController.navigationItem.leftBarButtonItem = doneButton;
- [generalSettingsViewController release];
- [tabBarNavigationControllers addObject:navController];
- releaseAndNil(navController);
- }
- if (nil == teamSettingsViewController) {
- teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- teamSettingsViewController.tabBarItem.title = [self.controllerNames objectAtIndex:1];
- teamSettingsViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/Egg.png",GRAPHICS_DIRECTORY()]];
- navController = [[UINavigationController alloc] initWithRootViewController:teamSettingsViewController];
- teamSettingsViewController.navigationItem.backBarButtonItem = doneButton;
- teamSettingsViewController.navigationItem.leftBarButtonItem = doneButton;
- [tabBarNavigationControllers addObject:navController];
- releaseAndNil(navController);
- }
- if (nil == weaponSettingsViewController) {
- weaponSettingsViewController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- weaponSettingsViewController.tabBarItem.title = [self.controllerNames objectAtIndex:2];
- weaponSettingsViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/cheese.png",GRAPHICS_DIRECTORY()]];
- navController = [[UINavigationController alloc] initWithRootViewController:weaponSettingsViewController];
- weaponSettingsViewController.navigationItem.backBarButtonItem = doneButton;
- weaponSettingsViewController.navigationItem.leftBarButtonItem = doneButton;
- [tabBarNavigationControllers addObject:navController];
- releaseAndNil(navController);
- }
- if (nil == schemeSettingsViewController) {
- schemeSettingsViewController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- schemeSettingsViewController.tabBarItem.title = [self.controllerNames objectAtIndex:3];
- schemeSettingsViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/Targetp.png",GRAPHICS_DIRECTORY()]];
- navController = [[UINavigationController alloc] initWithRootViewController:schemeSettingsViewController];
- schemeSettingsViewController.navigationItem.backBarButtonItem = doneButton;
- schemeSettingsViewController.navigationItem.leftBarButtonItem = doneButton;
- [tabBarNavigationControllers addObject:navController];
- releaseAndNil(navController);
- }
- if (nil == supportViewController) {
- supportViewController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped];
- supportViewController.tabBarItem.title = [self.controllerNames objectAtIndex:4];
- supportViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/Seduction.png",GRAPHICS_DIRECTORY()]];
- navController = [[UINavigationController alloc] initWithRootViewController:supportViewController];
- supportViewController.navigationItem.backBarButtonItem = doneButton;
- supportViewController.navigationItem.leftBarButtonItem = doneButton;
- [tabBarNavigationControllers addObject:navController];
- releaseAndNil(navController);
- }
-
- UITabBarController *tabController = [[UITabBarController alloc] init];
- tabController.viewControllers = tabBarNavigationControllers;
- tabController.delegate = self;
-
- [self.view addSubview:tabController.view];
- }
- [doneButton release];
- [super viewDidLoad];
-}
-
--(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
- [viewController viewWillAppear:NO];
-}
-
--(void) dismissSplitView {
- [AudioManagerController playBackSound];
- [[[HedgewarsAppDelegate sharedAppDelegate] mainViewController] dismissModalViewControllerAnimated:YES];
-}
-
-#pragma mark -
-#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
- return 1;
-}
-
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
- return [self.controllerNames count];
-}
-
-// Customize the appearance of table view cells.
--(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
- static NSString *CellIdentifier = @"Cell";
-
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
- if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
-
- NSString *iconStr = nil;
- switch ([indexPath row]) {
- case 0:
- iconStr = [NSString stringWithFormat:@"%@/TargetBee.png",GRAPHICS_DIRECTORY()];
- break;
- case 1:
- iconStr = [NSString stringWithFormat:@"%@/Egg.png",GRAPHICS_DIRECTORY()];
- break;
- case 2:
- iconStr = [NSString stringWithFormat:@"%@/cheese.png",GRAPHICS_DIRECTORY()];
- break;
- case 3:
- iconStr = [NSString stringWithFormat:@"%@/Target.png",GRAPHICS_DIRECTORY()];
- break;
- case 4:
- iconStr = [NSString stringWithFormat:@"%@/Seduction.png",GRAPHICS_DIRECTORY()];
- break;
- default:
- //seduction.png for support page
- DLog(@"Nope");
- break;
- }
-
- cell.accessoryType = UITableViewCellAccessoryNone;
- cell.textLabel.text = [controllerNames objectAtIndex:[indexPath row]];
- UIImage *icon = [[UIImage alloc] initWithContentsOfFile:iconStr];
- cell.imageView.image = icon;
- [icon release];
-
- return cell;
-}
-
-#pragma mark -
-#pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
- int newRow = [indexPath row];
- int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
- UIViewController *nextController = nil;
-
- if (newRow != oldRow) {
- [tableView deselectRowAtIndexPath:lastIndexPath animated:YES];
- [targetController.navigationController popToRootViewControllerAnimated:NO];
-
- switch (newRow) {
- case 0:
- if (nil == generalSettingsViewController)
- generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- nextController = generalSettingsViewController;
- break;
- case 1:
- if (nil == teamSettingsViewController)
- teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- nextController = teamSettingsViewController;
- break;
- case 2:
- if (nil == weaponSettingsViewController)
- weaponSettingsViewController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- nextController = weaponSettingsViewController;
- break;
- case 3:
- if (nil == schemeSettingsViewController)
- schemeSettingsViewController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- nextController = schemeSettingsViewController;
- break;
- case 4:
- if (nil == supportViewController)
- supportViewController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped];
- nextController = supportViewController;
- break;
- }
-
- self.lastIndexPath = indexPath;
- [tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
-
- nextController.navigationItem.hidesBackButton = YES;
- [nextController viewWillAppear:NO];
- [targetController.navigationController pushViewController:nextController animated:NO];
- [AudioManagerController playClickSound];
- }
-}
-
-
-#pragma mark -
-#pragma mark Memory management
--(void) didReceiveMemoryWarning {
- if (generalSettingsViewController.view.superview == nil)
- generalSettingsViewController = nil;
- if (teamSettingsViewController.view.superview == nil)
- teamSettingsViewController = nil;
- if (weaponSettingsViewController.view.superview == nil)
- weaponSettingsViewController = nil;
- if (schemeSettingsViewController.view.superview == nil)
- schemeSettingsViewController = nil;
- if (supportViewController.view.superview == nil)
- supportViewController = nil;
- MSG_MEMCLEAN();
- [super didReceiveMemoryWarning];
-}
-
--(void) viewDidUnload {
- self.controllerNames = nil;
- self.lastIndexPath = nil;
- generalSettingsViewController = nil;
- teamSettingsViewController = nil;
- weaponSettingsViewController = nil;
- schemeSettingsViewController = nil;
- supportViewController = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc {
- releaseAndNil(targetController);
- releaseAndNil(controllerNames);
- releaseAndNil(lastIndexPath);
- releaseAndNil(generalSettingsViewController);
- releaseAndNil(teamSettingsViewController);
- releaseAndNil(weaponSettingsViewController);
- releaseAndNil(schemeSettingsViewController);
- releaseAndNil(supportViewController);
- [super dealloc];
-}
-
-@end
-