project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m
author koda
Thu, 14 Oct 2010 22:01:33 +0200
changeset 3976 abaf741a4e21
parent 3971 5c82ee165ed5
child 3983 aa24192417a8
permissions -rw-r--r--
less warning, no rotation glitch, more comments
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3829
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     1
/*
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     2
 * Hedgewars-iOS, a Hedgewars port for iOS devices
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     3
 * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     4
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
81db3c85784b headers ftw, also right project file
koda
parents: 3782
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: 3782
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     8
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    12
 * GNU General Public License for more details.
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    13
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    14
 * You should have received a copy of the GNU General Public License
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    15
 * along with this program; if not, write to the Free Software
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    17
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    18
 * File created on 13/06/2010.
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    19
 */
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    20
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    21
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    22
#import "SchemeWeaponConfigViewController.h"
3780
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
    23
#import <QuartzCore/QuartzCore.h>
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    24
#import "CommodityFunctions.h"
3971
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
    25
#import "SDL_uikitappdelegate.h"
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    26
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    27
@implementation SchemeWeaponConfigViewController
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    28
@synthesize listOfSchemes, listOfWeapons, lastIndexPath_sc, lastIndexPath_we, selectedScheme, selectedWeapon;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    29
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    30
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    31
    return rotationManager(interfaceOrientation);
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    32
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    33
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    34
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    35
#pragma mark View lifecycle
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    36
-(void) viewDidLoad {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    37
    [super viewDidLoad];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    38
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    39
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    40
    self.view.frame = CGRectMake(0, 0, screenSize.height, screenSize.width - 44);
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    41
3971
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
    42
    self.selectedScheme = nil;
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
    43
    self.selectedWeapon = nil;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    44
3917
4c243b1eac97 playing a bit with colors
koda
parents: 3829
diff changeset
    45
    [self.tableView setBackgroundView:nil];
4c243b1eac97 playing a bit with colors
koda
parents: 3829
diff changeset
    46
    self.view.backgroundColor = [UIColor clearColor];
4c243b1eac97 playing a bit with colors
koda
parents: 3829
diff changeset
    47
    self.tableView.separatorColor = UICOLOR_HW_YELLOW_BODER;
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3619
diff changeset
    48
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    49
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    50
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    51
-(void) viewWillAppear:(BOOL) animated {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    52
    [super viewWillAppear:animated];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    53
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    54
    NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCHEMES_DIRECTORY() error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    55
    self.listOfSchemes = contentsOfDir;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    56
3971
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
    57
    if (self.selectedScheme == nil && [listOfSchemes containsObject:@"Default.plist"])
3952
d6412423da45 moved some utilities to a separate column with round buttons
koda
parents: 3917
diff changeset
    58
        self.selectedScheme = @"Default.plist";
d6412423da45 moved some utilities to a separate column with round buttons
koda
parents: 3917
diff changeset
    59
    
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    60
    contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:WEAPONS_DIRECTORY() error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    61
    self.listOfWeapons = contentsOfDir;
3952
d6412423da45 moved some utilities to a separate column with round buttons
koda
parents: 3917
diff changeset
    62
    
3971
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
    63
    if (self.selectedWeapon == nil && [listOfWeapons containsObject:@"Default.plist"])
3952
d6412423da45 moved some utilities to a separate column with round buttons
koda
parents: 3917
diff changeset
    64
        self.selectedWeapon = @"Default.plist";
d6412423da45 moved some utilities to a separate column with round buttons
koda
parents: 3917
diff changeset
    65
    
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    66
    [self.tableView reloadData];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    67
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    68
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    69
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    70
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    71
#pragma mark Table view data source
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    72
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    73
    return 2;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    74
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    75
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    76
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    77
    if (section == 0)
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    78
        return [self.listOfSchemes count];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    79
    else
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    80
        return [self.listOfWeapons count];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    81
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    82
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    83
// Customize the appearance of table view cells.
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    84
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    85
    static NSString *CellIdentifier = @"Cell";
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    86
    NSInteger row = [indexPath row];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    87
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    88
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
3781
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3780
diff changeset
    89
    if (cell == nil)
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3780
diff changeset
    90
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    91
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
    92
    cell.accessoryView = nil;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    93
    if ([indexPath section] == 0) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    94
        cell.textLabel.text = [[self.listOfSchemes objectAtIndex:row] stringByDeletingPathExtension];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
    95
        NSString *str = [NSString stringWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),[self.listOfSchemes objectAtIndex:row]];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
    96
        NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
    97
        cell.detailTextLabel.text = [dict objectForKey:@"description"];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
    98
        [dict release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    99
        if ([[self.listOfSchemes objectAtIndex:row] isEqualToString:self.selectedScheme]) {
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   100
            UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   101
            cell.accessoryView = checkbox;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   102
            [checkbox release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   103
            self.lastIndexPath_sc = indexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   104
        }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   105
    } else {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   106
        cell.textLabel.text = [[self.listOfWeapons objectAtIndex:row] stringByDeletingPathExtension];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
   107
        NSString *str = [NSString stringWithFormat:@"%@/%@",WEAPONS_DIRECTORY(),[self.listOfWeapons objectAtIndex:row]];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
   108
        NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
   109
        cell.detailTextLabel.text = [dict objectForKey:@"description"];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
   110
        [dict release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   111
        if ([[self.listOfWeapons objectAtIndex:row] isEqualToString:self.selectedWeapon]) {
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   112
            UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   113
            cell.accessoryView = checkbox;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   114
            [checkbox release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   115
            self.lastIndexPath_we = indexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   116
        }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   117
    }
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   118
    
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   119
    cell.backgroundColor = [UIColor blackColor];
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   120
    cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
3781
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3780
diff changeset
   121
    cell.detailTextLabel.textColor = [UIColor whiteColor];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   122
    return cell;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   123
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   124
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   125
-(CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   126
    return 40.0;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   127
}
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   128
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   129
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
3780
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   130
    UILabel *theLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width * 80/100, 30)];
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   131
    theLabel.backgroundColor = [UIColor blueColor];
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   132
    if (section == 0) 
3780
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   133
        theLabel.text = NSLocalizedString(@"Schemes",@"");
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   134
    else
3780
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   135
        theLabel.text = NSLocalizedString(@"Weapons",@"");
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   136
    theLabel.center = CGPointMake(self.view.frame.size.width/2, 20);
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   137
    theLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   138
    theLabel.textAlignment = UITextAlignmentCenter;
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   139
    theLabel.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]*80/100];
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   140
    theLabel.backgroundColor = UICOLOR_HW_DARKBLUE;
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   141
    
3780
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   142
    [theLabel.layer setBorderWidth:1.5f];
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   143
    [theLabel.layer setBorderColor:[UICOLOR_HW_YELLOW_BODER CGColor]];
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   144
    [theLabel.layer setCornerRadius:8.0f];
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   145
    [theLabel.layer setMasksToBounds:YES];
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   146
3780
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   147
    UIView *theView = [[[UIView alloc] init] autorelease];
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   148
    [theView addSubview:theLabel];
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   149
    [theLabel release];
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   150
    return theView;
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   151
}
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   152
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   153
/*
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   154
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger) section {
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   155
    if (section == 0) {
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   156
        return NSLocalizedString(@"Schemes",@"");
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   157
    } else {
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   158
        return NSLocalizedString(@"Weapons",@"");;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   159
    }
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   160
}
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   161
*/
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   162
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   163
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   164
#pragma mark Table view delegate
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   165
-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   166
    NSIndexPath *lastIndexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   167
    if ([indexPath section] == 0)
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   168
        lastIndexPath = self.lastIndexPath_sc;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   169
    else
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   170
        lastIndexPath = self.lastIndexPath_we;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   171
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   172
    int newRow = [indexPath row];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   173
    int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   174
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   175
    if (newRow != oldRow) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   176
        //TODO: this code works only for a single section table
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   177
        UITableViewCell *newCell = [aTableView cellForRowAtIndexPath:indexPath];
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   178
        UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   179
        newCell.accessoryView = checkbox;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   180
        [checkbox release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   181
        UITableViewCell *oldCell = [aTableView cellForRowAtIndexPath:lastIndexPath];
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   182
        oldCell.accessoryView = nil;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   183
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   184
        if ([indexPath section] == 0) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   185
            self.lastIndexPath_sc = indexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   186
            self.selectedScheme = [self.listOfSchemes objectAtIndex:newRow];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   187
        } else {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   188
            self.lastIndexPath_we = indexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   189
            self.selectedWeapon = [self.listOfWeapons objectAtIndex:newRow];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   190
        }
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   191
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   192
        [aTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   193
    }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   194
    [aTableView deselectRowAtIndexPath:indexPath animated:YES];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   195
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   196
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   197
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   198
#pragma mark Memory management
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   199
-(void) didReceiveMemoryWarning {
3971
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   200
    if ([[SDLUIKitDelegate sharedAppDelegate] isInGame]) {
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   201
        self.lastIndexPath_sc = nil;
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   202
        self.lastIndexPath_we = nil;
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   203
        self.listOfSchemes = nil;
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   204
        self.listOfWeapons = nil;
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   205
        MSG_MEMCLEAN();
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   206
    }
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   207
    [super didReceiveMemoryWarning];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   208
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   209
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   210
-(void) viewDidUnload {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   211
    self.listOfSchemes = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   212
    self.listOfWeapons = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   213
    self.lastIndexPath_sc = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   214
    self.lastIndexPath_we = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   215
    self.selectedScheme = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   216
    self.selectedWeapon = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   217
    MSG_DIDUNLOAD();
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3659
diff changeset
   218
    [super viewDidUnload];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   219
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   220
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   221
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   222
-(void) dealloc {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   223
    [listOfSchemes release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   224
    [listOfWeapons release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   225
    [lastIndexPath_sc release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   226
    [lastIndexPath_we release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   227
    [selectedScheme release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   228
    [selectedWeapon release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   229
    [super dealloc];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   230
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   231
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   232
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   233
@end
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   234