cocoaTouch/SettingsViewController.m
author koda
Sat, 16 Jan 2010 17:30:37 +0000
changeset 2698 90585aba87ad
parent 2696 41aa7b56c17b
child 2701 3a8560c00f78
permissions -rw-r--r--
objc/pascal finally working hwengine becomes a library for the iphone use custom sdl_image to fix bug remove thread code and forward_argc/forward_argv

//
//  SettingsViewController.m
//  hwengine
//
//  Created by Vittorio on 08/01/10.
//  Copyright 2010 __MyCompanyName__. All rights reserved.
//

#import "SettingsViewController.h"
#import "SDL_uikitappdelegate.h"

@implementation SettingsViewController

@synthesize username, password, musicOn, effectsOn, altDamageOn, volumeSlider, volumeLabel;

-(void) viewDidLoad {
	NSString *filePath = [[SDLUIKitDelegate sharedAppDelegate] dataFilePath:@"settings.plist"];
	
	if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {	
		NSUserDefaults *data = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
		username.text = [data objectForKey:@"username"];
		password.text = [data objectForKey:@"password"];
		if (1 == [[data objectForKey:@"music"] intValue]) {
			musicOn.on = YES;
		} else {
			musicOn.on = NO;
		}
		if (1 == [[data objectForKey:@"effects"] intValue]) {
			effectsOn.on = YES;
		} else {
			effectsOn.on = NO;
		}
		if (1 == [[data objectForKey:@"alternate"] intValue]) {
			altDamageOn.on = YES;
		} else {
			altDamageOn.on = NO;
		}		
		
		[volumeSlider setValue:[[data objectForKey:@"volume"] intValue] animated:NO];
		
		NSString *tmpVol = [[NSString alloc] initWithFormat:@"%d", (int) volumeSlider.value];
		volumeLabel.text = tmpVol;
		[tmpVol release];
	} else {
		[NSException raise:@"File NOT found" format:@"The file settings.plist was not found at %@", filePath];
	}
/*	
	UIApplication *app = [UIApplication sharedApplication];
	[[NSNotificationCenter defaultCenter] addObserver:self
											 selector:@selector(applicationWillTerminate:)
												 name:UIApplicationWillTerminateNotification
											   object:app];
*/
	[super viewDidLoad];
}

-(void) viewDidUnload {
	self.username = nil;
	self.password = nil;
	self.musicOn = nil;
	self.effectsOn = nil;
	self.altDamageOn = nil;
	self.volumeLabel = nil;
	self.volumeSlider = nil;
	[super viewDidUnload];
}

//- (void)applicationWillTerminate:(NSNotification *)notification {
-(void) viewWillDisappear:(BOOL)animated {
	NSMutableDictionary *saveArray = [[NSMutableDictionary alloc] init];
	NSString *tmpMus = (musicOn.on) ? @"1" : @"0";
	NSString *tmpEff = (effectsOn.on) ? @"1" : @"0";
	NSString *tmpAlt = (altDamageOn.on) ? @"1" : @"0";
	
	[saveArray setObject:username.text forKey:@"username"];
	[saveArray setObject:password.text forKey:@"password"];
	[saveArray setObject:tmpMus forKey:@"music"];
	[saveArray setObject:tmpEff forKey:@"effects"];
	[saveArray setObject:tmpAlt forKey:@"alternate"];
	[saveArray setObject:volumeLabel.text forKey:@"volume"];
	
	[saveArray writeToFile:[[SDLUIKitDelegate sharedAppDelegate] dataFilePath:@"settings.plist"] atomically:YES];
	[saveArray release];
	[super viewWillDisappear:animated];
}
 
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/

// makes the keyboard go away when background is tapped
-(IBAction) backgroundTap: (id)sender {
	[username resignFirstResponder];
	[password resignFirstResponder];
}

// makes the keyboard go away when "Done" is tapped
-(IBAction) textFieldDoneEditing: (id)sender {
	[sender resignFirstResponder];
}

-(IBAction) sliderChanged: (id) sender {
	UISlider *slider = (UISlider *)sender;
	int progress = slider.value;
	NSString *newLabel = [[NSString alloc] initWithFormat:@"%d",progress];
	self.volumeLabel.text = newLabel;
	[newLabel release];
}

-(void) dealloc {
	[username release];
	[password release];
	[musicOn release];
	[effectsOn release];
	[altDamageOn release];
	[volumeLabel release];
	[volumeSlider release];
    [super dealloc];
}


@end