Blame client/iOS/Controllers/PerformanceEditorController.m

Packit Service fa4841
/*
Packit Service fa4841
 controller for performance settings selection
Packit Service fa4841
Packit Service fa4841
 Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz
Packit Service fa4841
Packit Service fa4841
 This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
Packit Service fa4841
 If a copy of the MPL was not distributed with this file, You can obtain one at
Packit Service fa4841
 http://mozilla.org/MPL/2.0/.
Packit Service fa4841
 */
Packit Service fa4841
Packit Service fa4841
#import "PerformanceEditorController.h"
Packit Service fa4841
#import "ConnectionParams.h"
Packit Service fa4841
#import "Utils.h"
Packit Service fa4841
Packit Service fa4841
@interface PerformanceEditorController (Private)
Packit Service fa4841
- (NSString *)keyPathForKey:(NSString *)key;
Packit Service fa4841
@end
Packit Service fa4841
Packit Service fa4841
@implementation PerformanceEditorController
Packit Service fa4841
Packit Service fa4841
- (id)initWithConnectionParams:(ConnectionParams *)params
Packit Service fa4841
{
Packit Service fa4841
	return [self initWithConnectionParams:params keyPath:nil];
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
- (id)initWithConnectionParams:(ConnectionParams *)params keyPath:(NSString *)keyPath;
Packit Service fa4841
{
Packit Service fa4841
	self = [super initWithStyle:UITableViewStyleGrouped];
Packit Service fa4841
Packit Service fa4841
	if (self)
Packit Service fa4841
	{
Packit Service fa4841
		_params = [params retain];
Packit Service fa4841
		_keyPath = (keyPath != nil ? [keyPath retain] : nil);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	return self;
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
- (void)viewDidLoad
Packit Service fa4841
{
Packit Service fa4841
	[super viewDidLoad];
Packit Service fa4841
	// Do any additional setup after loading the view.
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
- (void)viewDidUnload
Packit Service fa4841
{
Packit Service fa4841
	[super viewDidUnload];
Packit Service fa4841
	// Release any retained subviews of the main view.
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
Packit Service fa4841
{
Packit Service fa4841
	return YES;
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
- (NSString *)keyPathForKey:(NSString *)key
Packit Service fa4841
{
Packit Service fa4841
	if (_keyPath)
Packit Service fa4841
		return [_keyPath stringByAppendingFormat:@".%@", key];
Packit Service fa4841
Packit Service fa4841
	return key;
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
- (void)dealloc
Packit Service fa4841
{
Packit Service fa4841
	[super dealloc];
Packit Service fa4841
	[_params release];
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
#pragma mark -
Packit Service fa4841
#pragma mark Table view data source
Packit Service fa4841
Packit Service fa4841
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
Packit Service fa4841
{
Packit Service fa4841
	// Return the number of sections.
Packit Service fa4841
	return 1;
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
Packit Service fa4841
{
Packit Service fa4841
	return 7;
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
// set section headers
Packit Service fa4841
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
Packit Service fa4841
{
Packit Service fa4841
	return NSLocalizedString(@"Performance Settings",
Packit Service fa4841
	                         @"'Performance Settings': performance settings header");
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
// Customize the appearance of table view cells.
Packit Service fa4841
- (UITableViewCell *)tableView:(UITableView *)tableView
Packit Service fa4841
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
Packit Service fa4841
{
Packit Service fa4841
	// get the table view cell
Packit Service fa4841
	EditFlagTableViewCell *cell =
Packit Service fa4841
	    (EditFlagTableViewCell *)[self tableViewCellFromIdentifier:TableCellIdentifierYesNo];
Packit Service fa4841
	NSAssert(cell, @"Invalid cell");
Packit Service fa4841
Packit Service fa4841
	switch ([indexPath row])
Packit Service fa4841
	{
Packit Service fa4841
		case 0:
Packit Service fa4841
		{
Packit Service fa4841
			[[cell label] setText:NSLocalizedString(@"RemoteFX", @"RemoteFX performance setting")];
Packit Service fa4841
			[[cell toggle] setOn:[_params boolForKeyPath:[self keyPathForKey:@"perf_remotefx"]]];
Packit Service fa4841
			break;
Packit Service fa4841
		}
Packit Service fa4841
Packit Service fa4841
		case 1:
Packit Service fa4841
		{
Packit Service fa4841
			[[cell label] setText:NSLocalizedString(@"GFX", @"GFX performance setting")];
Packit Service fa4841
			[[cell toggle] setOn:[_params boolForKeyPath:[self keyPathForKey:@"perf_gfx"]]];
Packit Service fa4841
			break;
Packit Service fa4841
		}
Packit Service fa4841
Packit Service fa4841
		case 2:
Packit Service fa4841
		{
Packit Service fa4841
			[[cell label] setText:NSLocalizedString(@"H264", @"H264 performance setting")];
Packit Service fa4841
			[[cell toggle] setOn:[_params boolForKeyPath:[self keyPathForKey:@"perf_h264"]]];
Packit Service fa4841
			break;
Packit Service fa4841
		}
Packit Service fa4841
Packit Service fa4841
		case 3:
Packit Service fa4841
		{
Packit Service fa4841
			[[cell label] setText:NSLocalizedString(@"Desktop Background",
Packit Service fa4841
			                                        @"Desktop background performance setting")];
Packit Service fa4841
			[[cell toggle]
Packit Service fa4841
			    setOn:[_params boolForKeyPath:[self keyPathForKey:@"perf_show_desktop"]]];
Packit Service fa4841
			break;
Packit Service fa4841
		}
Packit Service fa4841
Packit Service fa4841
		case 4:
Packit Service fa4841
		{
Packit Service fa4841
			[[cell label] setText:NSLocalizedString(@"Font Smoothing",
Packit Service fa4841
			                                        @"Font smoothing performance setting")];
Packit Service fa4841
			[[cell toggle]
Packit Service fa4841
			    setOn:[_params boolForKeyPath:[self keyPathForKey:@"perf_font_smoothing"]]];
Packit Service fa4841
			break;
Packit Service fa4841
		}
Packit Service fa4841
Packit Service fa4841
		case 5:
Packit Service fa4841
		{
Packit Service fa4841
			[[cell label] setText:NSLocalizedString(@"Desktop Composition",
Packit Service fa4841
			                                        @"Desktop composition performance setting")];
Packit Service fa4841
			[[cell toggle]
Packit Service fa4841
			    setOn:[_params boolForKeyPath:[self keyPathForKey:@"perf_desktop_composition"]]];
Packit Service fa4841
			break;
Packit Service fa4841
		}
Packit Service fa4841
Packit Service fa4841
		case 6:
Packit Service fa4841
		{
Packit Service fa4841
			[[cell label] setText:NSLocalizedString(@"Window contents while dragging",
Packit Service fa4841
			                                        @"Window Dragging performance setting")];
Packit Service fa4841
			[[cell toggle]
Packit Service fa4841
			    setOn:[_params boolForKeyPath:[self keyPathForKey:@"perf_window_dragging"]]];
Packit Service fa4841
			break;
Packit Service fa4841
		}
Packit Service fa4841
Packit Service fa4841
		case 7:
Packit Service fa4841
		{
Packit Service fa4841
			[[cell label] setText:NSLocalizedString(@"Menu Animation",
Packit Service fa4841
			                                        @"Menu Animations performance setting")];
Packit Service fa4841
			[[cell toggle]
Packit Service fa4841
			    setOn:[_params boolForKeyPath:[self keyPathForKey:@"perf_menu_animation"]]];
Packit Service fa4841
			break;
Packit Service fa4841
		}
Packit Service fa4841
Packit Service fa4841
		case 8:
Packit Service fa4841
		{
Packit Service fa4841
			[[cell label]
Packit Service fa4841
			    setText:NSLocalizedString(@"Visual Styles", @"Use Themes performance setting")];
Packit Service fa4841
			[[cell toggle]
Packit Service fa4841
			    setOn:[_params boolForKeyPath:[self keyPathForKey:@"perf_windows_themes"]]];
Packit Service fa4841
			break;
Packit Service fa4841
		}
Packit Service fa4841
Packit Service fa4841
		default:
Packit Service fa4841
			break;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	[[cell toggle] setTag:GET_TAG_FROM_PATH(indexPath)];
Packit Service fa4841
	[[cell toggle] addTarget:self
Packit Service fa4841
	                  action:@selector(togglePerformanceSetting:)
Packit Service fa4841
	        forControlEvents:UIControlEventValueChanged];
Packit Service fa4841
	return cell;
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
#pragma mark -
Packit Service fa4841
#pragma mark Action Handlers
Packit Service fa4841
Packit Service fa4841
- (void)togglePerformanceSetting:(id)sender
Packit Service fa4841
{
Packit Service fa4841
	UISwitch *valueSwitch = (UISwitch *)sender;
Packit Service fa4841
Packit Service fa4841
	switch (valueSwitch.tag)
Packit Service fa4841
	{
Packit Service fa4841
		case GET_TAG(0, 0):
Packit Service fa4841
			[_params setBool:[valueSwitch isOn] forKeyPath:[self keyPathForKey:@"perf_remotefx"]];
Packit Service fa4841
			break;
Packit Service fa4841
Packit Service fa4841
		case GET_TAG(0, 1):
Packit Service fa4841
			[_params setBool:[valueSwitch isOn] forKeyPath:[self keyPathForKey:@"perf_gfx"]];
Packit Service fa4841
			break;
Packit Service fa4841
Packit Service fa4841
		case GET_TAG(0, 2):
Packit Service fa4841
			[_params setBool:[valueSwitch isOn] forKeyPath:[self keyPathForKey:@"perf_h264"]];
Packit Service fa4841
			break;
Packit Service fa4841
Packit Service fa4841
		case GET_TAG(0, 3):
Packit Service fa4841
			[_params setBool:[valueSwitch isOn]
Packit Service fa4841
			      forKeyPath:[self keyPathForKey:@"perf_show_desktop"]];
Packit Service fa4841
			break;
Packit Service fa4841
Packit Service fa4841
		case GET_TAG(0, 4):
Packit Service fa4841
			[_params setBool:[valueSwitch isOn]
Packit Service fa4841
			      forKeyPath:[self keyPathForKey:@"perf_font_smoothing"]];
Packit Service fa4841
			break;
Packit Service fa4841
Packit Service fa4841
		case GET_TAG(0, 5):
Packit Service fa4841
			[_params setBool:[valueSwitch isOn]
Packit Service fa4841
			      forKeyPath:[self keyPathForKey:@"perf_desktop_composition"]];
Packit Service fa4841
			break;
Packit Service fa4841
Packit Service fa4841
		case GET_TAG(0, 6):
Packit Service fa4841
			[_params setBool:[valueSwitch isOn]
Packit Service fa4841
			      forKeyPath:[self keyPathForKey:@"perf_window_dragging"]];
Packit Service fa4841
			break;
Packit Service fa4841
Packit Service fa4841
		case GET_TAG(0, 7):
Packit Service fa4841
			[_params setBool:[valueSwitch isOn]
Packit Service fa4841
			      forKeyPath:[self keyPathForKey:@"perf_menu_animation"]];
Packit Service fa4841
			break;
Packit Service fa4841
Packit Service fa4841
		case GET_TAG(0, 8):
Packit Service fa4841
			[_params setBool:[valueSwitch isOn]
Packit Service fa4841
			      forKeyPath:[self keyPathForKey:@"perf_windows_themes"]];
Packit Service fa4841
			break;
Packit Service fa4841
Packit Service fa4841
		default:
Packit Service fa4841
			break;
Packit Service fa4841
	}
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
@end