#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#include "sftlib.h"

int	DB_pmode = -1 ;
int	DB_pmode_btn[3] = -1 ;
int	DB_pmode_btnM[3] = -1 ;
int	DB_pmode_tgl[2] = -1 ;
int	DB_pmode_num = -1 ;
int	DB_pmode_sub[4] = -1 ;

/* g;pbal val */
int DB_pmode_ret;

/*	initDataPMODE:DB_pmode_btn[0]:MJ_DBUTTONL40の呼び出し関数	*/
int	DB_pmode_exeFunc(kobj, messId, argc, pev, trigger)
int		kobj ;
int		messId ;
int		argc ;
EVENT	*pev ;
int		trigger ;
{
	MMI_SendMessage( DB_pmode, MM_ERASE, 0);
	MMI_SendMessage( DB_pmode, MM_DETACH, 0);
	MMI_SetHaltFlag(True);
	DB_pmode_ret=0;
	return NOERR ;
}

/*	initDataPMODE:DB_pmode_btn[1]:MJ_DBUTTONL40の呼び出し関数	*/
int	DB_pmode_canFunc(kobj, messId, argc, pev, trigger)
int		kobj ;
int		messId ;
int		argc ;
EVENT	*pev ;
int		trigger ;
{
	MMI_SendMessage( DB_pmode, MM_ERASE, 0);
	MMI_SendMessage( DB_pmode, MM_DETACH, 0);
	MMI_SetHaltFlag(True);
	DB_pmode_ret=1;
	return NOERR ;
}

/*	initDataPMODE:DB_pmode_btn[2]:MJ_DBUTTONL40の呼び出し関数	*/
int	DB_pmode_hlpFunc(kobj, messId, argc, pev, trigger)
int		kobj ;
int		messId ;
int		argc ;
EVENT	*pev ;
int		trigger ;
{
	DB_typeAlertCall( "表示モードとは",  DB_help3p );
	return NOERR ;
}


int DB_pmode_call( int *p1, int *p2, int *n )
{
	int ptr, min, max, dlt, pnt;	

	MMI_SendMessage( DB_pmode_num, MM_GETNUMBOX, 5, 
	             &ptr, &min, &max, &dlt, &pnt );
	ptr=*n; if(ptr<min) ptr=min; if( ptr>max ) ptr=max;
	MMI_SendMessage( DB_pmode_num, MM_SETNUMBOX, 5, 
	             ptr, min, max, dlt, pnt );

	if( *p1 ) 
		MTL_setFlagObj(DB_pmode_tgl[0],MS_TOGGLE);
		else	MTL_resetFlagObj(DB_pmode_tgl[0], ~MS_TOGGLE);
	if( *p2 ) 
		MTL_setFlagObj(DB_pmode_tgl[1],MS_TOGGLE);
		else	MTL_resetFlagObj(DB_pmode_tgl[1], ~MS_TOGGLE);

	MMI_SendMessage( DB_pmode, MM_ATTACH, 1, DB_base);
	MMI_SendMessage( DB_pmode, MM_SHOW, 0);
	MMI_ExecSystem();

	if( DB_pmode_ret==0 ){
	MMI_SendMessage( DB_pmode_num, MM_GETNUMBOX, 5, 
	             n, &min, &max, &dlt, &pnt ); 	
	if(MTL_checkFlagObj(DB_pmode_tgl[0],MS_TOGGLE) )
		*p1=1; else *p1=0;
	if(MTL_checkFlagObj(DB_pmode_tgl[1],MS_TOGGLE) )
		*p2=1; else *p2=0;
	}

	return DB_pmode_ret;
}

