/*
	message.c
*/

#include <stdio.h>
#include <stdlib.h>
#include <EGB.H>
#include <MOS.H>
#include <FMCfrb.h>
#include <kkstr2.h>
#include <Normlib.h>
#include <okome.h>

extern char work[];

#define MEX1	200
#define	MEY1	140
#define MEX4	290
#define	MEY4	100
#define MEX3	(MEX4-1)
#define	MEY3	(MEY4-1)
#define MEX2	(MEX1+MEX3)
#define	MEY2	(MEY1+MEY3)

/*
 m:確認モード
 1: 確認
 2: 実行 取消
*/

int message(char *mess,int m)
{
	int mb, mx, my, p;
	unsigned int kb, en;
	p = EGB_getWritePage( 0, 0 );
	EGB_writePage( work, 0 );
	MOS_disp(0);
	OKM_gth( MEX1,MEY1, MEX2,MEY2, 1 );
	boxbf(MEX1,MEY1,MEX2,MEY2,8,15);
	boxb(MEX1+2,MEY1+2,MEX2-2,MEY2-2,8);
	symbol(MEX1+20,MEY1+35,mess,16,8);
	for ( mb = 2-m; mb<2; mb++ )
	{
		boxbf(MEX2-130+60*mb,MEY2-29,MEX2-90+mb*60,MEY2-8,8,15);
	}
	if ( m==1 )
	{
		font12(MEX2- 65,MEY2-13,"確 認",8);
	}	else	{
		font12(MEX2-125,MEY2-13,"実 行",8);
		font12(MEX2- 65,MEY2-13,"取 消",8);
	}
	MOS_disp(1);
	do	{
		MOS_rdpos(&mb,&mx,&my);
		do	{
			kb = KYB_read(1,&en);
		}	while (kb==0xffff && KAN_inpchk()==KAN_MISET);
		if (mb && my>=MEY2-29 && my<=MEY2-8)
		{
			if ( mx>=MEX2-70 && mx<=MEX2-20 )
			{
				m-= 1;
				break;
			}
			if ( mx>=MEX2-130 && mx<=MEX2-80 && m == 2)
			{
				m = 0;
				break;
			}
		}
/*		if (mb && (mx>=MEX1 && mx<=MEX2 && my>=MEY1 && my<=MEY2)==0)
		{
			if (mb == 1)
			{
				m = 0;
				break;
			} else {
				m-= 1;
				break;
			}
		}	*/
		if ( kb == 0x0D || kb==0x8012 )
		{
			m = 0;
			break;
		}
		if (m == 2 && ( kb == 0x1B || kb == 0x8011 ) )
		{
			m = 1;
			break;
		}
	}	while (1);
	MOS_disp(0);
	OKM_gth( MEX1,MEY1, MEX2,MEY2, 0 );
	MOS_disp(1);
	EGB_writePage( work, p );
	mbout(&mb,&mx,&my);
	return (m);
}
