Blame client/Mac/PasswordDialog.m

Packit Service fa4841
/**
Packit Service fa4841
 * FreeRDP: A Remote Desktop Protocol Implementation
Packit Service fa4841
 * MacFreeRDP
Packit Service fa4841
 *
Packit Service fa4841
 * Copyright 2013 Christian Hofstaedtler
Packit Service fa4841
 *
Packit Service fa4841
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit Service fa4841
 * you may not use this file except in compliance with the License.
Packit Service fa4841
 * You may obtain a copy of the License at
Packit Service fa4841
 *
Packit Service fa4841
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit Service fa4841
 *
Packit Service fa4841
 * Unless required by applicable law or agreed to in writing, software
Packit Service fa4841
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit Service fa4841
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit Service fa4841
 * See the License for the specific language governing permissions and
Packit Service fa4841
 * limitations under the License.
Packit Service fa4841
 */
Packit Service fa4841
Packit Service fa4841
#import "PasswordDialog.h"
Packit Service fa4841
#import <freerdp/client/cmdline.h>
Packit Service fa4841
Packit Service bb5c11
@interface PasswordDialog()
Packit Service fa4841
Packit Service bb5c11
	@property BOOL modalCode;
Packit Service fa4841
Packit Service fa4841
@end
Packit Service fa4841
Packit Service fa4841
@implementation PasswordDialog
Packit Service fa4841
Packit Service fa4841
@synthesize usernameText;
Packit Service fa4841
@synthesize passwordText;
Packit Service fa4841
@synthesize messageLabel;
Packit Service fa4841
@synthesize serverHostname;
Packit Service fa4841
@synthesize username;
Packit Service fa4841
@synthesize password;
Packit Service fa4841
@synthesize domain;
Packit Service fa4841
@synthesize modalCode;
Packit Service fa4841
Packit Service fa4841
- (id)init
Packit Service fa4841
{
Packit Service fa4841
	return [self initWithWindowNibName:@"PasswordDialog"];
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
- (void)windowDidLoad
Packit Service fa4841
{
Packit Service fa4841
	[super windowDidLoad];
Packit Service bb5c11
	// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
Packit Service fa4841
	[self.window setTitle:self.serverHostname];
Packit Service bb5c11
	[messageLabel setStringValue:[NSString stringWithFormat:@"Authenticate to %@",
Packit Service bb5c11
	                              self.serverHostname]];
Packit Service bb5c11
	NSMutableString* domainUser = [[NSMutableString alloc] initWithString:@""];
Packit Service fa4841
Packit Service bb5c11
	if (self.domain != nil
Packit Service bb5c11
	    && [[self.domain stringByTrimmingCharactersInSet:[NSCharacterSet
Packit Service bb5c11
	            whitespaceCharacterSet]] length] > 0)
Packit Service fa4841
	{
Packit Service fa4841
		[domainUser appendFormat:@"%@\\", self.domain];
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	if (self.username != nil)
Packit Service fa4841
	{
Packit Service fa4841
		[domainUser appendString:self.username];
Packit Service bb5c11
		[self.window makeFirstResponder:passwordText];
Packit Service fa4841
	}
Packit Service fa4841
Packit Service bb5c11
	[usernameText setStringValue:domainUser];
Packit Service fa4841
}
Packit Service fa4841
Packit Service bb5c11
- (IBAction)onOK:(NSObject*)sender
Packit Service fa4841
{
Packit Service bb5c11
	char* submittedUser = NULL;
Packit Service bb5c11
	char* submittedDomain = NULL;
Packit Service fa4841
Packit Service bb5c11
	if (freerdp_parse_username([self.usernameText.stringValue cStringUsingEncoding:
Packit Service bb5c11
	                            NSUTF8StringEncoding], &submittedUser, &submittedDomain))
Packit Service fa4841
	{
Packit Service bb5c11
		self.username = [NSString stringWithCString: submittedUser encoding:
Packit Service bb5c11
		                 NSUTF8StringEncoding];
Packit Service bb5c11
		self.domain = [NSString stringWithCString: submittedDomain encoding:
Packit Service bb5c11
		               NSUTF8StringEncoding];
Packit Service fa4841
	}
Packit Service fa4841
	else
Packit Service fa4841
	{
Packit Service fa4841
		self.username = self.usernameText.stringValue;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	self.password = self.passwordText.stringValue;
Packit Service fa4841
	[NSApp stopModalWithCode:TRUE];
Packit Service fa4841
}
Packit Service fa4841
Packit Service bb5c11
- (IBAction)onCancel:(NSObject*)sender
Packit Service fa4841
{
Packit Service fa4841
	[NSApp stopModalWithCode:FALSE];
Packit Service fa4841
}
Packit Service fa4841
Packit Service bb5c11
- (BOOL)runModal:(NSWindow*)mainWindow
Packit Service fa4841
{
Packit Service fa4841
	if ([mainWindow respondsToSelector:@selector(beginSheet:completionHandler:)])
Packit Service fa4841
	{
Packit Service fa4841
		[mainWindow beginSheet:self.window completionHandler:nil];
Packit Service bb5c11
		self.modalCode = [NSApp runModalForWindow: self.window];
Packit Service bb5c11
		[mainWindow endSheet: self.window];
Packit Service fa4841
	}
Packit Service fa4841
	else
Packit Service fa4841
	{
Packit Service bb5c11
		[NSApp beginSheet: self.window
Packit Service bb5c11
		 modalForWindow: mainWindow
Packit Service bb5c11
		 modalDelegate: nil
Packit Service bb5c11
		 didEndSelector: nil
Packit Service bb5c11
		 contextInfo: nil];
Packit Service bb5c11
		self.modalCode = [NSApp runModalForWindow: self.window];
Packit Service bb5c11
		[NSApp endSheet: self.window];
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	[self.window orderOut:nil];
Packit Service fa4841
	return self.modalCode;
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
- (void)dealloc
Packit Service fa4841
{
Packit Service fa4841
	[usernameText release];
Packit Service fa4841
	[passwordText release];
Packit Service fa4841
	[messageLabel release];
Packit Service fa4841
	[serverHostname release];
Packit Service fa4841
	[username release];
Packit Service fa4841
	[password release];
Packit Service fa4841
	[domain release];
Packit Service fa4841
	[super dealloc];
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
@end