/*
	message2.c
*/

#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <EGB.H>
#include <MOS.H>
#include <FMCfrb.h>
#include <kkstr2.h>
#include <Normlib.h>
#include <okome.h>

extern char work[];

#define	MEY1	140
#define MEX4	280
#define MEX1	(320-MEX4/2)
#define MEX3	(MEX4-1)
#define	MEY3	(MEY4-1)
#define MEX2	(MEX1+MEX3)
#define	MEY2	(MEY1+MEY3)

/*
 m:確認モード
 1: 確認
 2: 実行 取消
*/
/*	message2(int n, char *mess, ..., int m )	*/
int message2(int n, ... )
{
	int mb, mx, my, p, m, MEY4;
	unsigned int kb, en;
	char *mess;
	va_list ap;
	va_start(ap, n);
	MEY4 = n*18+50;
	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);
	for (mx = 0; mx < n; mx++) {
		mess = va_arg(ap, char *);
		font12((MEX1+MEX2)/2-strlen(mess)*3, MEY1+mx*18+26, mess, 8 );
	}
	m = va_arg(ap, int);
	va_end(ap);
	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) {
			m = (mb==1) ? 0 : (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);
}
