#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>

#include <egb.h>
#include <guidbg.h>

#include "ysmacro.h"
#include "ysgui.h"
#include "ysmalloc.h"
#include "ysrename.h"

extern int Ys11Id;

int	staStpDlg = -1 ;
int	startAlphaId = -1 ;
int	startNumId = -1 ;
int	stepNumId = -1 ;

static int dspFlag=YSOFF;


int startStepDialogue(void)
{
	int var,min,max,del,col;
	HYPER bas,ssd;
	int dx,dy;
	int sta,stp,code;
	char alpha[8];

	if(dspFlag==YSON)
	{
		return YSTRUE;
	}

	MMI_SendMessage(Ys11Id,MM_GETHYPER,1,&bas);
	MMI_SendMessage(staStpDlg,MM_GETHYPER,1,&ssd);
	dx=bas.fr.lupx-ssd.fr.lupx;
	dy=bas.fr.lupy-ssd.fr.lupy;
	dx+=16;
	dy+=16;
	MMI_SendMessage(staStpDlg,MM_MOVE,2,dx,dy);

	NfGetStartStep(&sta,&stp);
	MMI_SendMessage(startNumId,MM_GETNUMBOX,5,&var,&min,&max,&del,&col);
	MMI_SendMessage(startNumId,MM_SETNUMBOX,5,sta,min,max,del,col);

	MMI_SendMessage(stepNumId,MM_GETNUMBOX,5,&var,&min,&max,&del,&col);
	MMI_SendMessage(stepNumId,MM_GETNUMBOX,5,stp,&min,&max,&del,&col);

	code=sta+'A';
	code=YsLarger(code,'A');
	code=YsSmaller(code,'Z');
	alpha[0]=code;
	alpha[1]=0;
	MMI_SendMessage(startAlphaId,MM_SETTEXT,3,alpha,1,FALSE);

	MMI_SendMessage(staStpDlg,MM_ATTACH,1,MMI_GetBaseObj());
	MMI_SendMessage(staStpDlg,MM_SHOW,0);
}



int	setStartAlphaFunc(int kobj)
{
	int code;
	char alpha[8];
	int var,min,max,del,col;

	MMI_SendMessage(kobj,MM_GETTEXT,3,alpha,1,FALSE);
	code=(int)alpha[0];
	if('a'<=code && code<='z')
	{
		code = code+'A'-'a';
	}

	code=YsLarger(code,'A');
	code=YsSmaller(code,'Z');

	alpha[0]=code;
	alpha[1]=0;
	MMI_SendMessage(kobj,MM_SETTEXT,3,alpha,1,FALSE);

	MMI_SendMessage(startNumId,MM_GETNUMBOX,5,&var,&min,&max,&del,&col);
	MMI_SendMessage(startNumId,MM_SETNUMBOX,5,code-'A',min,max,del,col);

	MMI_SendMessage(startNumId,MM_SHOW,0);
	MMI_SendMessage(startAlphaId,MM_SHOW,0);

	return NOERR ;
}

int	setStartNumFunc(int kobj)
{
	int code;
	char alpha[8];
	int var,min,max,del,col;

	MMI_SendMessage(kobj,MM_GETNUMBOX,5,&var,&min,&max,&del,&col);
	code=var+'A';
	code=YsLarger(code,'A');
	code=YsSmaller(code,'Z');
	alpha[0]=code;
	alpha[1]=0;
	MMI_SendMessage(startAlphaId,MM_SETTEXT,3,alpha,1,FALSE);

	MMI_SendMessage(startNumId,MM_SHOW,0);
	MMI_SendMessage(startAlphaId,MM_SHOW,0);

	return NOERR ;
}

int	setStaStpFunc()
{
	int sta,stp;
	int min,max,del,col;

	MMI_SendMessage(startNumId,MM_GETNUMBOX,5,&sta,&min,&max,&del,&col);
	MMI_SendMessage(stepNumId,MM_GETNUMBOX,5,&stp,&min,&max,&del,&col);
	NfSetStartStep(sta,stp);

	MMI_SendMessage(staStpDlg,MM_ERASE,0);
	MMI_SendMessage(staStpDlg,MM_DETACH,0);
	dspFlag=YSOFF;

	FlResetNewFile();
	LmClearListMenu();
	LmSetListMenu();

	return NOERR ;
}

int	cancelStaStpFunc()
{
	MMI_SendMessage(staStpDlg,MM_ERASE,0);
	MMI_SendMessage(staStpDlg,MM_DETACH,0);
	dspFlag=YSOFF;

	return NOERR ;
}

