project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m
author legutus
Mon, 30 Aug 2010 15:24:49 +0200
changeset 3786 0907b0fd5714
parent 3782 dc3531e49e4c
child 3829 81db3c85784b
permissions -rw-r--r--
Improves room list with filter for state/rules/weapons and general search
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     1
//
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     2
//  SchemeWeaponConfigViewController.m
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     3
//  Hedgewars
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     4
//
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     5
//  Created by Vittorio on 13/06/10.
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     6
//  Copyright 2010 __MyCompanyName__. All rights reserved.
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     7
//
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     8
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     9
#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
    10
#import <QuartzCore/QuartzCore.h>
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    11
#import "CommodityFunctions.h"
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    12
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    13
@implementation SchemeWeaponConfigViewController
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    14
@synthesize listOfSchemes, listOfWeapons, lastIndexPath_sc, lastIndexPath_we, selectedScheme, selectedWeapon;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    15
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    16
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    17
    return rotationManager(interfaceOrientation);
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    18
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    19
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    20
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    21
#pragma mark View lifecycle
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    22
-(void) viewDidLoad {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    23
    [super viewDidLoad];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    24
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    25
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    26
    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
    27
3548
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
    28
    self.selectedScheme = @"";
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
    29
    self.selectedWeapon = @"";
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    30
3619
1155d8970646 partially apply new graphics to code
koda
parents: 3548
diff changeset
    31
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    32
        [self.tableView setBackgroundView:nil];
3619
1155d8970646 partially apply new graphics to code
koda
parents: 3548
diff changeset
    33
        self.view.backgroundColor = [UIColor clearColor];
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
    34
        self.tableView.separatorColor = UICOLOR_HW_YELLOW_BODER;
3619
1155d8970646 partially apply new graphics to code
koda
parents: 3548
diff changeset
    35
    }
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3619
diff changeset
    36
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    37
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    38
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    39
-(void) viewWillAppear:(BOOL) animated {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    40
    [super viewWillAppear:animated];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    41
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    42
    NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCHEMES_DIRECTORY() error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    43
    self.listOfSchemes = contentsOfDir;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    44
3548
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
    45
    if ([listOfSchemes containsObject:@"Default.plist"])
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
    46
         self.selectedScheme = @"Default.plist";
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    47
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    48
    contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:WEAPONS_DIRECTORY() error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    49
    self.listOfWeapons = contentsOfDir;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    50
3548
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
    51
    if ([listOfWeapons containsObject:@"Default.plist"])
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
    52
         self.selectedWeapon = @"Default.plist";
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
    53
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    54
    [self.tableView reloadData];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    55
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    56
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    57
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    58
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    59
#pragma mark Table view data source
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    60
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    61
    return 2;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    62
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    63
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    64
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    65
    if (section == 0)
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    66
        return [self.listOfSchemes count];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    67
    else
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    68
        return [self.listOfWeapons count];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    69
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    70
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    71
// Customize the appearance of table view cells.
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    72
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    73
    static NSString *CellIdentifier = @"Cell";
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    74
    NSInteger row = [indexPath row];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    75
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    76
    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
    77
    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
    78
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    79
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
    80
    cell.accessoryView = nil;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    81
    if ([indexPath section] == 0) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    82
        cell.textLabel.text = [[self.listOfSchemes objectAtIndex:row] stringByDeletingPathExtension];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
    83
        NSString *str = [NSString stringWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),[self.listOfSchemes objectAtIndex:row]];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
    84
        NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
    85
        cell.detailTextLabel.text = [dict objectForKey:@"description"];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
    86
        [dict release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    87
        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
    88
            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
    89
            cell.accessoryView = checkbox;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
    90
            [checkbox release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    91
            self.lastIndexPath_sc = indexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    92
        }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    93
    } else {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    94
        cell.textLabel.text = [[self.listOfWeapons objectAtIndex:row] stringByDeletingPathExtension];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
    95
        NSString *str = [NSString stringWithFormat:@"%@/%@",WEAPONS_DIRECTORY(),[self.listOfWeapons 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.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
   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_we = indexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   104
        }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   105
    }
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   106
    
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   107
    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
   108
    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
   109
    cell.detailTextLabel.textColor = [UIColor whiteColor];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   110
    return cell;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   111
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   112
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   113
-(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
   114
    return 40.0;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   115
}
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   116
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   117
-(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
   118
    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
   119
    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
   120
    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
   121
        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
   122
    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
   123
        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
   124
    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
   125
    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
   126
    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
   127
    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
   128
    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
   129
    
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
    [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
   131
    [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
   132
    [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
   133
    [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
   134
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
    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
   136
    [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
   137
    [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
   138
    return theView;
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   139
}
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   140
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   141
/*
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   142
-(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
   143
    if (section == 0) {
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   144
        return NSLocalizedString(@"Schemes",@"");
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   145
    } else {
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   146
        return NSLocalizedString(@"Weapons",@"");;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   147
    }
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   148
}
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   149
*/
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   150
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   151
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   152
#pragma mark Table view delegate
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   153
-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   154
    NSIndexPath *lastIndexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   155
    if ([indexPath section] == 0)
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   156
        lastIndexPath = self.lastIndexPath_sc;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   157
    else
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   158
        lastIndexPath = self.lastIndexPath_we;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   159
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   160
    int newRow = [indexPath row];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   161
    int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   162
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   163
    if (newRow != oldRow) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   164
        //TODO: this code works only for a single section table
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   165
        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
   166
        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
   167
        newCell.accessoryView = checkbox;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   168
        [checkbox release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   169
        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
   170
        oldCell.accessoryView = nil;
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
        if ([indexPath section] == 0) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   173
            self.lastIndexPath_sc = indexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   174
            self.selectedScheme = [self.listOfSchemes objectAtIndex:newRow];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   175
        } else {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   176
            self.lastIndexPath_we = indexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   177
            self.selectedWeapon = [self.listOfWeapons objectAtIndex:newRow];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   178
        }
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   179
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   180
        [aTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   181
    }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   182
    [aTableView deselectRowAtIndexPath:indexPath animated:YES];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   183
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   184
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   185
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   186
#pragma mark Memory management
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   187
-(void) didReceiveMemoryWarning {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   188
    // Releases the view if it doesn't have a superview.
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   189
    [super didReceiveMemoryWarning];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   190
    // Relinquish ownership any cached data, images, etc that aren't in use.
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   191
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   192
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   193
-(void) viewDidUnload {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   194
    self.listOfSchemes = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   195
    self.listOfWeapons = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   196
    self.lastIndexPath_sc = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   197
    self.lastIndexPath_we = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   198
    self.selectedScheme = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   199
    self.selectedWeapon = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   200
    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
   201
    [super viewDidUnload];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   202
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   203
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   204
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   205
-(void) dealloc {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   206
    [listOfSchemes release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   207
    [listOfWeapons release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   208
    [lastIndexPath_sc release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   209
    [lastIndexPath_we release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   210
    [selectedScheme release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   211
    [selectedWeapon release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   212
    [super dealloc];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   213
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   214
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   215
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   216
@end
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   217