project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m
author nemo
Fri, 30 Sep 2011 22:33:28 -0400
changeset 6077 d8fa5a85d24f
parent 6074 047eaed35cbb
child 6078 8c0cc07731e5
permissions -rw-r--r--
This prevents girders from erasing landbacktex (square windows in tunnels and such), at the cost of requiring lfBasic and lfObject to be treated the same apart from graphically
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3829
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
     1
/*
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
     2
 * Hedgewars-iOS, a Hedgewars port for iOS devices
4976
088d40d8aba2 Happy 2011 :)
koda
parents: 4947
diff changeset
     3
 * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
3829
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
     4
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
81db3c85784b headers ftw, also right project file
koda
parents: 3803
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: 3803
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
     8
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
    12
 * GNU General Public License for more details.
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
    13
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
    14
 * You should have received a copy of the GNU General Public License
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
    15
 * along with this program; if not, write to the Free Software
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
    17
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
    18
 * File created on 08/01/2010.
81db3c85784b headers ftw, also right project file
koda
parents: 3803
diff changeset
    19
 */
81db3c85784b headers ftw, also right project file
koda
parents: 3803
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 "GeneralSettingsViewController.h"
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    23
#import "CommodityFunctions.h"
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    24
6000
dbcebcd3d79f ios frontend: sounds and music have their own class now (with caching\!) instead of being spread here and there (exploiting class methods like a true oop pro)
koda
parents: 5700
diff changeset
    25
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    26
@implementation GeneralSettingsViewController
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    27
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    28
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    29
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    30
    return rotationManager(interfaceOrientation);
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    31
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    32
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    33
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    34
#pragma mark View Lifecycle
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    35
-(void) viewDidLoad {
6074
047eaed35cbb ios major refactoring for ios settings, now they are presented differently on iphone/ipad, code is simplified and optimized, and ui is a little refreshed (eg. no more stuck selected fields)
koda
parents: 6000
diff changeset
    36
    self.navigationItem.title = @"Edit game options";
3547
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
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    40
-(void) viewWillAppear:(BOOL)animated {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    41
    [self.tableView setContentOffset:CGPointMake(0,0) animated:NO];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    42
    [super viewWillAppear:animated];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    43
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    44
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    45
-(void) viewWillDisappear:(BOOL)animated {
5224
6e8fbbfb0de5 muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuusic for the ios frontend finally
koda
parents: 5207
diff changeset
    46
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
6e8fbbfb0de5 muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuusic for the ios frontend finally
koda
parents: 5207
diff changeset
    47
    [userDefaults synchronize];
6e8fbbfb0de5 muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuusic for the ios frontend finally
koda
parents: 5207
diff changeset
    48
    if ([[userDefaults objectForKey:@"music"] boolValue] == NO)
6000
dbcebcd3d79f ios frontend: sounds and music have their own class now (with caching\!) instead of being spread here and there (exploiting class methods like a true oop pro)
koda
parents: 5700
diff changeset
    49
        [AudioManagerController stopBackgroundMusic];
5224
6e8fbbfb0de5 muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuusic for the ios frontend finally
koda
parents: 5207
diff changeset
    50
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
    51
    [super viewWillDisappear:animated];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    52
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    53
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    54
#pragma mark -
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    55
-(void) switchValueChanged:(id) sender {
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    56
    UISwitch *theSwitch = (UISwitch *)sender;
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    57
    UISwitch *theOtherSwitch = nil;
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
    58
    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
    59
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    60
    switch (theSwitch.tag) {
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    61
        case 10:    //soundSwitch
5224
6e8fbbfb0de5 muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuusic for the ios frontend finally
koda
parents: 5207
diff changeset
    62
            // setting this off will turn off also the switch below (music)
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
    63
            [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"sound"];
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
    64
            [settings setObject:[NSNumber numberWithBool:NO] forKey:@"music"];
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    65
            theOtherSwitch = (UISwitch *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:1]].accessoryView;
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    66
            [theOtherSwitch setOn:NO animated:YES];
5370
a3f87be7b09a ios: disble logging, stop music correctly in preferences, move script command before seed, try using reatin instead of if
koda
parents: 5224
diff changeset
    67
a3f87be7b09a ios: disble logging, stop music correctly in preferences, move script command before seed, try using reatin instead of if
koda
parents: 5224
diff changeset
    68
            if (theOtherSwitch.on)
6000
dbcebcd3d79f ios frontend: sounds and music have their own class now (with caching\!) instead of being spread here and there (exploiting class methods like a true oop pro)
koda
parents: 5700
diff changeset
    69
                [AudioManagerController pauseBackgroundMusic];
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    70
            break;
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    71
        case 20:    //musicSwitch
5224
6e8fbbfb0de5 muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuusic for the ios frontend finally
koda
parents: 5207
diff changeset
    72
            // if switch above (sound) is off, never turn on
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
    73
            if (NO == [[settings objectForKey:@"sound"] boolValue]) {
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
    74
                [settings setObject:[NSNumber numberWithBool:NO] forKey:@"music"];
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    75
                theOtherSwitch = (UISwitch *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:1]].accessoryView;
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    76
                [theOtherSwitch setOn:NO animated:YES];
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    77
            } else
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
    78
                [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"music"];
5224
6e8fbbfb0de5 muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuusic for the ios frontend finally
koda
parents: 5207
diff changeset
    79
6e8fbbfb0de5 muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuusic for the ios frontend finally
koda
parents: 5207
diff changeset
    80
            if (theSwitch.on)
6000
dbcebcd3d79f ios frontend: sounds and music have their own class now (with caching\!) instead of being spread here and there (exploiting class methods like a true oop pro)
koda
parents: 5700
diff changeset
    81
                [AudioManagerController playBackgroundMusic];
5224
6e8fbbfb0de5 muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuusic for the ios frontend finally
koda
parents: 5207
diff changeset
    82
            else
6000
dbcebcd3d79f ios frontend: sounds and music have their own class now (with caching\!) instead of being spread here and there (exploiting class methods like a true oop pro)
koda
parents: 5700
diff changeset
    83
                [AudioManagerController pauseBackgroundMusic];
5224
6e8fbbfb0de5 muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuusic for the ios frontend finally
koda
parents: 5207
diff changeset
    84
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    85
            break;
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    86
        case 30:    //alternateSwitch
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
    87
            [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"alternate"];
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    88
            break;
5451
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
    89
        case 90:    //synched weapons/scheme
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
    90
            [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"sync_ws"];
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
    91
            break;
4540
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
    92
        case 60:    //classic menu
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
    93
            [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"classic_menu"];
3779
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
    94
            break;
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    95
        default:
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    96
            DLog(@"Wrong tag");
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
    97
            break;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    98
    }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    99
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   100
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   101
-(void) saveTextFieldValue:(NSString *)textString withTag:(NSInteger) tagValue {
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
   102
    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
   103
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   104
    if (tagValue == 40)
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
   105
        [settings setObject:textString forKey:@"username"];
5206
db775bddf771 settings.plist is no more, long live nsuserdefaults
koda
parents: 4976
diff changeset
   106
    else
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
   107
        [settings setObject:[textString MD5hash] forKey:@"password"];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   108
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   109
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   110
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   111
#pragma mark TableView Methods
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   112
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   113
    return 3;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   114
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   115
4539
bad3411cba49 store the (future) password with md5 for ifrontend
koda
parents: 4341
diff changeset
   116
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger )section {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   117
    switch (section) {
3660
bc125bea5849 complete settings page rework
koda
parents: 3659
diff changeset
   118
        case 0:     // user and pass
5451
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
   119
            return 1;   // set 2 here to show the password field
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   120
            break;
3660
bc125bea5849 complete settings page rework
koda
parents: 3659
diff changeset
   121
        case 1:     // audio
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   122
            return 2;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   123
            break;
5451
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
   124
        case 2:     // other options
5664
dfc574d7f49e ok this makes no sense now, remove 'enhanced' option from ios
koda
parents: 5662
diff changeset
   125
            return 3;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   126
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   127
        default:
3935
5ca27a0e9a63 made the new menu toggable
koda
parents: 3884
diff changeset
   128
            DLog(@"Nope");
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   129
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   130
    }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   131
    return 0;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   132
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   133
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   134
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   135
    NSString *sectionTitle = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   136
    switch (section) {
3660
bc125bea5849 complete settings page rework
koda
parents: 3659
diff changeset
   137
        case 0:
3803
e4a8a4e378de remove now useless toggle, add ai team
koda
parents: 3783
diff changeset
   138
            sectionTitle = NSLocalizedString(@"Main Configuration", @"");
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   139
            break;
3660
bc125bea5849 complete settings page rework
koda
parents: 3659
diff changeset
   140
        case 1:
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   141
            sectionTitle = NSLocalizedString(@"Audio Preferences", @"");
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   142
            break;
3660
bc125bea5849 complete settings page rework
koda
parents: 3659
diff changeset
   143
        case 2:
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   144
            sectionTitle = NSLocalizedString(@"Other Settings", @"");
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   145
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   146
        default:
3660
bc125bea5849 complete settings page rework
koda
parents: 3659
diff changeset
   147
            DLog(@"Nope");
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   148
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   149
    }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   150
    return sectionTitle;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   151
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   152
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   153
-(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   154
    static NSString *cellIdentifier0 = @"Cell0";
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   155
    static NSString *cellIdentifier1 = @"Cell1";
3779
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   156
    static NSString *cellIdentifier2 = @"Cell2";
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   157
    NSInteger row = [indexPath row];
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   158
    NSInteger section = [indexPath section];
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
   159
    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
   160
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   161
    UITableViewCell *cell = nil;
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   162
    EditableCellView *editableCell = nil;
3779
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   163
    UISwitch *switchContent = nil;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   164
    switch(section) {
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   165
        case 0:
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   166
            editableCell = (EditableCellView *)[aTableView dequeueReusableCellWithIdentifier:cellIdentifier0];
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   167
            if (nil == editableCell) {
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   168
                editableCell = [[[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier0] autorelease];
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   169
                editableCell.minimumCharacters = 0;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   170
                editableCell.delegate = self;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   171
                editableCell.textField.font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
4341
46b8791e577f minor things
koda
parents: 4244
diff changeset
   172
                editableCell.textField.textColor = [UIColor blackColor];
3779
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   173
            }
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   174
            
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   175
            if (row == 0) {
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   176
                editableCell.titleLabel.text = NSLocalizedString(@"Nickname","from the settings table");
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   177
                editableCell.textField.placeholder = NSLocalizedString(@"Insert your username (if you have one)",@"");
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
   178
                editableCell.textField.text = [settings objectForKey:@"username"];
3779
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   179
                editableCell.textField.secureTextEntry = NO;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   180
                editableCell.tag = 40;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   181
            } else {
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   182
                editableCell.titleLabel.text = NSLocalizedString(@"Password","from the settings table");
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   183
                editableCell.textField.placeholder = NSLocalizedString(@"Insert your password",@"");
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
   184
                editableCell.textField.text = [settings objectForKey:@"password"];
3779
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   185
                editableCell.textField.secureTextEntry = YES;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   186
                editableCell.tag = 50;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   187
            }
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   188
            
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   189
            editableCell.accessoryView = nil;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   190
            cell = editableCell;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   191
            break;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   192
        case 1:
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   193
            cell = [aTableView dequeueReusableCellWithIdentifier:cellIdentifier1];
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   194
            if (nil == cell) {
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   195
                cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier1] autorelease];
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   196
                UISwitch *theSwitch = [[UISwitch alloc] init];
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   197
                [theSwitch addTarget:self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   198
                cell.accessoryView = theSwitch;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   199
                [theSwitch release];
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   200
            }
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   201
            
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   202
            switchContent = (UISwitch *)cell.accessoryView;
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   203
            if (row == 0) {
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   204
                cell.textLabel.text = NSLocalizedString(@"Sound", @"");
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
   205
                switchContent.on = [[settings objectForKey:@"sound"] boolValue];
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   206
                switchContent.tag = 10;
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   207
            } else {
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   208
                cell.textLabel.text = NSLocalizedString(@"Music", @"");
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
   209
                switchContent.on = [[settings objectForKey:@"music"] boolValue];
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   210
                switchContent.tag = 20;
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   211
            }
3779
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   212
            break;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   213
        case 2:
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   214
            cell = [aTableView dequeueReusableCellWithIdentifier:cellIdentifier2];
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   215
            if (nil == cell) {
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   216
                cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier2] autorelease];
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   217
                UISwitch *theSwitch = [[UISwitch alloc] init];
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   218
                [theSwitch addTarget:self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   219
                cell.accessoryView = theSwitch;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   220
                [theSwitch release];
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   221
            }
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   222
            
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   223
            switchContent = (UISwitch *)cell.accessoryView;
5451
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
   224
            cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
4540
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   225
            switch (row) {
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   226
                case 0:
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   227
                    cell.textLabel.text = NSLocalizedString(@"Alternate Damage", @"");
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   228
                    cell.detailTextLabel.text = NSLocalizedString(@"Damage popups will notify you on every single hit", @"");
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
   229
                    switchContent.on = [[settings objectForKey:@"alternate"] boolValue];
4540
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   230
                    switchContent.tag = 30;
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   231
                    break;
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   232
                case 1:
5451
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
   233
                    cell.textLabel.text = NSLocalizedString(@"Sync Schemes and Weapons", @"");
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
   234
                    cell.detailTextLabel.text = NSLocalizedString(@"Choosing a Scheme will select its associated Weapon", @"");
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
   235
                    switchContent.on = [[settings objectForKey:@"sync_ws"] boolValue];
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
   236
                    switchContent.tag = 90;
4540
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   237
                    break;
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   238
                case 2:
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   239
                    cell.textLabel.text = NSLocalizedString(@"Classic Ammo Menu", @"");
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   240
                    cell.detailTextLabel.text = NSLocalizedString(@"Select which style of ammo menu you prefer",@"");
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
   241
                    switchContent.on = [[settings objectForKey:@"classic_menu"] boolValue];
4540
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   242
                    switchContent.tag = 60;
5451
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
   243
                    // remove this when classic ammomenu works on iphone as well
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
   244
                    if (IS_IPAD() == NO)
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5370
diff changeset
   245
                        switchContent.enabled = NO;
4540
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   246
                    break;
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   247
                default:
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   248
                    DLog(@"Nope");
9b614e420de5 add two preferences for enabling/disabling blurry land and multitasking
koda
parents: 4539
diff changeset
   249
                    break;
3779
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   250
            }
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   251
            break;
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   252
        default:
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   253
            break;
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   254
    }
3779
3351a017d4ad tap to dismiss 'get ready', add a toggle to enable/disable it
koda
parents: 3703
diff changeset
   255
    
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   256
    cell.accessoryType = UITableViewCellAccessoryNone;
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   257
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   258
    cell.imageView.image = nil;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
   259
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   260
    return cell;
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   261
}
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   262
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   263
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   264
#pragma mark Table view delegate
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   265
-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
5700
f0960a88ab0e savedgamesviewcontroller refactor, added icons to supportviewcontroller
koda
parents: 5664
diff changeset
   266
    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
3660
bc125bea5849 complete settings page rework
koda
parents: 3659
diff changeset
   267
    if (0 == [indexPath section]) {
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   268
        EditableCellView *cell = (EditableCellView *)[aTableView cellForRowAtIndexPath:indexPath];
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   269
        [cell replyKeyboard];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   270
    }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   271
}
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3660
diff changeset
   272
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   273
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   274
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   275
#pragma mark Memory management
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   276
-(void) didReceiveMemoryWarning {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   277
    [super didReceiveMemoryWarning];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   278
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   279
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   280
-(void) viewDidUnload {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   281
    [super viewDidUnload];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   282
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   283
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   284
-(void) dealloc {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   285
    [super dealloc];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   286
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   287
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   288
@end