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 fa4841
#import <CoreGraphics/CoreGraphics.h>
Packit Service fa4841
Packit Service fa4841
@interface PasswordDialog ()
Packit Service fa4841
Packit Service fa4841
@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 fa4841
	// Implement this method to handle any initialization after your window controller's window has
Packit Service fa4841
	// been loaded from its nib file.
Packit Service fa4841
	[self.window setTitle:self.serverHostname];
Packit Service fa4841
	[self.messageLabel
Packit Service fa4841
	    setStringValue:[NSString stringWithFormat:@"Authenticate to %@", self.serverHostname]];
Packit Service fa4841
	NSMutableString *domainUser = [[NSMutableString alloc] initWithString:@""];
Packit Service fa4841
Packit Service fa4841
	if (self.domain != nil &&
Packit Service fa4841
	    [[self.domain stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
Packit Service fa4841
	        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 fa4841
		[self.window makeFirstResponder:self.passwordText];
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	[self.usernameText setStringValue:domainUser];
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
- (IBAction)onOK:(NSObject *)sender
Packit Service fa4841
{
Packit Service fa4841
	char *submittedUser = NULL;
Packit Service fa4841
	char *submittedDomain = NULL;
Packit Service fa4841
Packit Service fa4841
	if (freerdp_parse_username(
Packit Service fa4841
	        [self.usernameText.stringValue cStringUsingEncoding:NSUTF8StringEncoding],
Packit Service fa4841
	        &submittedUser, &submittedDomain))
Packit Service fa4841
	{
Packit Service fa4841
		self.username = [NSString stringWithCString:submittedUser encoding:NSUTF8StringEncoding];
Packit Service fa4841
		self.domain = [NSString stringWithCString:submittedDomain encoding: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 fa4841
- (IBAction)onCancel:(NSObject *)sender
Packit Service fa4841
{
Packit Service fa4841
	[NSApp stopModalWithCode:FALSE];
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
- (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 fa4841
		self.modalCode = [NSApp runModalForWindow:self.window];
Packit Service fa4841
		[mainWindow endSheet:self.window];
Packit Service fa4841
	}
Packit Service fa4841
	else
Packit Service fa4841
	{
Packit Service fa4841
		[NSApp beginSheet:self.window
Packit Service fa4841
		    modalForWindow:mainWindow
Packit Service fa4841
		     modalDelegate:nil
Packit Service fa4841
		    didEndSelector:nil
Packit Service fa4841
		       contextInfo:nil];
Packit Service fa4841
		self.modalCode = [NSApp runModalForWindow:self.window];
Packit Service fa4841
		[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