Files
shadowsocks-iOS/ShadowsocksX/SWBConfigWindowController.m
clowwindy 58af107e8d update UI
2014-02-28 15:29:20 +08:00

91 lines
2.7 KiB
Objective-C

//
// Created by clowwindy on 14-2-26.
// Copyright (c) 2014 clowwindy. All rights reserved.
//
#import <openssl/evp.h>
#import "SWBConfigWindowController.h"
#import "ShadowsocksRunner.h"
#import "encrypt.h"
@implementation SWBConfigWindowController {
}
- (void)windowWillLoad {
[super windowWillLoad];
}
- (void)addMethods {
for (int i = 0; i < kShadowsocksMethods; i++) {
const char* method_name = shadowsocks_encryption_names[i];
NSString *methodName = [[NSString alloc] initWithBytes:method_name length:strlen(method_name) encoding:NSUTF8StringEncoding];
[_methodBox addItemWithObjectValue:methodName];
}
}
- (void)loadSettings {
if ([ShadowsocksRunner isUsingPublicServer]) {
[_publicMatrix selectCellAtRow:0 column:0];
} else {
[_publicMatrix selectCellAtRow:0 column:1];
}
if ([ShadowsocksRunner configForKey:kShadowsocksIPKey]) {
[_serverField setStringValue:[ShadowsocksRunner configForKey:kShadowsocksIPKey]];
}
if ([ShadowsocksRunner configForKey:kShadowsocksPortKey]) {
[_portField setStringValue:[ShadowsocksRunner configForKey:kShadowsocksPortKey]];
} else {
[_portField setStringValue:@"8388"];
}
if ([ShadowsocksRunner configForKey:kShadowsocksPasswordKey]) {
[_passwordField setStringValue:[ShadowsocksRunner configForKey:kShadowsocksPasswordKey]];
}
if ([ShadowsocksRunner configForKey:kShadowsocksEncryptionKey]) {
[_methodBox setStringValue:[ShadowsocksRunner configForKey:kShadowsocksEncryptionKey]];
} else {
[_methodBox setStringValue:@"aes-256-cfb"];
}
}
- (void)saveSettings {
if (_publicMatrix.selectedColumn == 0) {
[ShadowsocksRunner setUsingPublicServer:YES];
} else {
[ShadowsocksRunner setUsingPublicServer:NO];
[ShadowsocksRunner saveConfigForKey:kShadowsocksIPKey value:[_serverField stringValue]];
[ShadowsocksRunner saveConfigForKey:kShadowsocksPortKey value:[_portField stringValue]];
[ShadowsocksRunner saveConfigForKey:kShadowsocksPasswordKey value:[_passwordField stringValue]];
[ShadowsocksRunner saveConfigForKey:kShadowsocksEncryptionKey value:[_methodBox stringValue]];
}
}
- (void)windowDidLoad {
[super windowDidLoad];
[self addMethods];
[self loadSettings];
[self updateSettingsBoxVisible:self];
}
- (IBAction)updateSettingsBoxVisible:(id)sender {
if (_publicMatrix.selectedColumn == 0) {
[_settingsBox setHidden:YES];
} else {
[_settingsBox setHidden:NO];
}
}
- (IBAction)OK:(id)sender {
[self saveSettings];
[ShadowsocksRunner reloadConfig];
[self.window performClose:self];
}
- (IBAction)cancel:(id)sender {
[self.window performClose:self];
}
@end