/*
  Hatari - CreateFloppyController.m

  This file is distributed under the GNU General Public License, version 2
  or at your option any later version. Read the file gpl.txt for details.

  Create floppy image window controller implementation file

  Feb-Mar 2006, Sébastien Molines - Created
*/

#import "CreateFloppyController.h"
#import "Shared.h"

#include "main.h"
#include "configuration.h"
#include "createBlankImage.h"
#include "floppy.h"

@implementation CreateFloppyController

char szPath[FILENAME_MAX] ;

- (IBAction)createFloppyImage:(id)sender
{
	BOOL		cRet;
	int			ret, cTracks, cSectors, cSides ;
	NSString	*defaultDir ;
	NSString	*newCnf ;

	// Get the default images directory
	defaultDir = [NSString stringWithCString:ConfigureParams.DiskImage.szDiskImageDirectory encoding:NSASCIIStringEncoding];

	// Run the SavePanel, then check if the user clicked OK
	newCnf = [NSApp hsavefile:YES defoDir:defaultDir defoFile:nil types:[NSArray arrayWithObjects: allF, nil] ] ;
	if ([newCnf length] != 0)
	{
		[newCnf getCString:szPath maxLength:FILENAME_MAX-1 encoding:NSASCIIStringEncoding] ;
		// Get the tracks, sectors and sides values
		cTracks = [[tracks selectedCell] tag];
		cSectors = [[sectors selectedCell] tag];
		cSides = [[sides selectedCell] tag];

		// Create the image
		cRet=CreateBlankImage_CreateFile(szPath, cTracks, cSectors, cSides);
		if(cRet==TRUE)
		 {	ret = [NSApp myAlerte:NSInformationalAlertStyle Txt:nil firstB:localize(@"Ignore") alternateB:@"  A:  "
															otherB:@"  B:  " informativeTxt:@""] ;
			if (ret == NSAlertDefaultReturn)
						return ;

			printf("%d\n",ret);
			ret = ret == NSAlertAlternateReturn ? 0 : 1 ;
			Floppy_SetDiskFileName(ret, szPath, NULL);
			Floppy_InsertDiskIntoDrive(ret);
		 } ;
	 } ;
}

- (void)awakeFromNib
{
	// Fill the "Tracks" dropdown
	[tracks removeAllItems];
	int i;
	for (i = 40; i <= 85; i++)
	{
		[tracks addItemWithTitle:[NSString stringWithFormat:@"%d", i]];	
		[[tracks lastItem] setTag:i];
	}
	
	// Select the default value of 80 tracks
	[tracks selectItemAtIndex:[tracks indexOfItemWithTag:80]]; // Equivalent to Tiger-only [tracks selectItemWithTag:80];


}

- (IBAction)runModal:(id)sender
{
	ModalWrapper *mw=[[ModalWrapper alloc] init];
	[mw runModal:window];
	[mw release];
}


@end
