/*****************************************************************************/
/* D2K: A Doom Source Port for the 21st Century                              */
/*                                                                           */
/* Copyright (C) 2014: See COPYRIGHT file                                    */
/*                                                                           */
/* This file is part of D2K.                                                 */
/*                                                                           */
/* D2K is free software: you can redistribute it and/or modify it under the  */
/* terms of the GNU General Public License as published by the Free Software */
/* Foundation, either version 2 of the License, or (at your option) any      */
/* later version.                                                            */
/*                                                                           */
/* D2K is distributed in the hope that it will be useful, but WITHOUT ANY    */
/* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS */
/* FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more    */
/* details.                                                                  */
/*                                                                           */
/* You should have received a copy of the GNU General Public License along   */
/* with D2K.  If not, see <http://www.gnu.org/licenses/>.                    */
/*                                                                           */
/*****************************************************************************/


// This file is hereby placed in the Public Domain -- Neil Stevens

#import "FileButtonController.h"

@implementation FileButtonController

- (id)init
{
	[super init];
	types = [[NSArray alloc] init];
	allowMultiple = false;
	return self;
}

- (void)dealloc
{
	[types release];
	[super dealloc];
}

- (void)setTypes:(NSArray *)typeArray
{
	[types release];
	types = [[NSArray alloc] initWithArray:typeArray];
}

- (void)setAllowMultiple:(bool)allow
{
	allowMultiple = allow;
}

- (IBAction)buttonClicked:(id)sender
{
	NSOpenPanel *panel = [NSOpenPanel openPanel];
	[panel setAllowsMultipleSelection:allowMultiple];
	[panel setCanChooseFiles:true];
	[panel setCanChooseDirectories:false];
	[panel beginSheetForDirectory:nil file:nil types:types
	       modalForWindow:[NSApp mainWindow]  modalDelegate:self
	       didEndSelector:@selector(panelEnded:returnCode:contextInfo:)
	       contextInfo:nil];
}

- (void)panelEnded:(NSOpenPanel *)panel returnCode:(int)code contextInfo:(void *)info
{
	if(code == NSCancelButton) return;
	[field setStringValue:[[panel filenames] objectAtIndex:0]];
}

- (id)field
{
	return field;
}

- (void)setEnabled:(BOOL)enabled
{
	[field setEnabled:enabled];
	[button setEnabled:enabled];
}

@end

/* vi: set et ts=2 sw=2: */

