#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#include "igo.h"
#include "banx.h"
#include "kiffile.h"
#include "title.h"

extern int	backId ;
extern int	warningId ;

int	fsavedialogId = -1 ;
int	fsavebtnId[3] = -1 ;
int	fsave_messageId[2] = -1 ;

/*	initDataMIFSAVE:fsavebtnId[0]:MJ_DBUTTONL40の呼び出し関数	*/
int	igo_save_exec(kobj, messId, argc, pev, trigger)
int		kobj ;
int		messId ;
int		argc ;
EVENT	*pev ;
int		trigger ;
{
char *fileName;
char wk_fname[80] ;		/*	ファイル名用の配列		*/

	/*	fsavedialogIdで示されるオブジェクトを消す		*/
	MMI_SendMessage( fsavedialogId , MM_ERASE , 0 ) ;

	/*	オブジェクトをダイアログから取り外す	*/
	MMI_SendMessage( fsavedialogId , MM_DETACH , 0 ) ;

	retunrInitMenuFunc();

	/*	ファイルダイアログで"取消"が押されたらこれ以下を実行しない	*/
	if( fdlgFunc( wk_fname ) != 0 )
	{

		title_fname_set( wk_fname);
		fileName = title_fname_read();
		if(kifu_write(fileName) != 0){

			/*	オブジェクトをダイアログに取り付ける	*/
			MMI_SendMessage( warningId , MM_ATTACH , 1 , backId ) ;
			/*	warningIdで示されるオブジェクトを表示する	*/
			MMI_SendMessage( warningId , MM_SHOW , 0 ) ; 
			
			return NOERR;
		}

		switch(title_state_read()){
		case QUIT:
			MMI_SetHaltFlag( TRUE ) ;
			break;
		case NEW:
			igo_do_init();
			break;
		case READ:
			igo_do_read();
			break;
		default:
			;
		}
		title_fsave_off();
	}

	return NOERR ;
}

/*	initDataMIFSAVE:fsavebtnId[1]:MJ_DBUTTONL40の呼び出し関数	*/
int	igo_nosave_exec(kobj, messId, argc, pev, trigger)
int		kobj ;
int		messId ;
int		argc ;
EVENT	*pev ;
int		trigger ;
{
	/*	fsavedialogIdで示されるオブジェクトを消す		*/
	MMI_SendMessage( fsavedialogId , MM_ERASE , 0 ) ;

	/*	オブジェクトをダイアログから取り外す	*/
	MMI_SendMessage( fsavedialogId , MM_DETACH , 0 ) ;

	retunrInitMenuFunc();

	switch(title_state_read()){
	case QUIT:
		MMI_SetHaltFlag( TRUE ) ;
		break;
	case NEW:
		igo_do_init();
		break;
	case READ:
		igo_do_read();
		break;
	default:
		;
	}

	title_fsave_off();

	return NOERR ;
}

/*	initDataMIFSAVE:fsavebtnId[2]:MJ_DBUTTONL40の呼び出し関数	*/
int	igo_save_cancel(kobj, messId, argc, pev, trigger)
int		kobj ;
int		messId ;
int		argc ;
EVENT	*pev ;
int		trigger ;
{
	/*	dialogId_handyで示されるオブジェクトを消す		*/
	MMI_SendMessage( fsavedialogId , MM_ERASE , 0 ) ;

	/*	オブジェクトをダイアログから取り外す	*/
	MMI_SendMessage( fsavedialogId , MM_DETACH , 0 ) ;

	retunrInitMenuFunc();

	return NOERR ;
}

