#include "Desklib:Core.h"
#include "Desklib:Dialog.h"
#include "Desklib:Icon.h"
#include "Desklib:Msgs.h"
#include "Desklib:WimpSWIs.h"
#include "Desklib:Template.h"

#define QUERY_NO		2
#define QUERY_YES		3
#define QUERY_MESSAGE	0
#define QUERY_SPRITE	1


static char *tag_mung( char *buffer, char *tag, char *suffix )
{
	char *d = buffer;
	while ( *tag )
	{
		int c = *tag++;
		if ( c==':' )
			while ( *suffix )
				*d++ = *suffix++;
		*d++ = c;
	}
	while ( (*d++ = *suffix++) != 0 )
		;
	return buffer;
}




BOOL query_box( char *tag )
{
	dialog d;
	char buffer[260];
	char tbuff[260];
	int choice;

	Msgs_Lookup(tag_mung(tbuff,tag,"n"),buffer,24);
	if ( *buffer )
	{
		d = Dialog_Create( "query", template_TITLEMIN );
		Icon_SetText( d->window, QUERY_NO, buffer );
	}
	else
	{
		d = Dialog_Create("inform", template_TITLEMIN );
	}

	Msgs_Lookup(tag_mung(tbuff,tag,"t"),buffer,260);
	if ( *buffer ) { Window_SetTitle( d->window, buffer ); }

	Msgs_Lookup(tag_mung(tbuff,tag,"s"),buffer,12);
	if ( *buffer ) { Icon_SetText(d->window,QUERY_SPRITE,buffer); }

	Msgs_Lookup(tag_mung(tbuff,tag,"y"),buffer,24);
	if ( *buffer )
		Icon_SetText( d->window, QUERY_YES, buffer );
	else
		Wimp_DeleteIcon( d->window, QUERY_YES );

	Msgs_Lookup(tag_mung(tbuff,tag,"q"),buffer,256);
	Icon_SetText( d->window, QUERY_MESSAGE, buffer );
	Dialog_ShowStatic( d, open_CENTERED );
	choice = Dialog_WaitForClick( d );
	Dialog_Destroy( d );
	return choice==QUERY_YES;
}

BOOL query_box2( char *tag, char *message )
{
	dialog d;
	char buffer[260];
	char tbuff[260];
	int choice;

	Msgs_Lookup(tag_mung(tbuff,tag,"n"),buffer,24);
	if ( *buffer )
	{
		d = Dialog_Create( "query", template_TITLEMIN );
		Icon_SetText( d->window, QUERY_NO, buffer );
	}
	else
	{
		d = Dialog_Create("inform", template_TITLEMIN );
	}

	Msgs_Lookup(tag_mung(tbuff,tag,"t"),buffer,260);
	if ( *buffer ) { Window_SetTitle( d->window, buffer ); }

	Msgs_Lookup(tag_mung(tbuff,tag,"s"),buffer,12);
	if ( *buffer ) { Icon_SetText(d->window,QUERY_SPRITE,buffer); }

	Msgs_Lookup(tag_mung(tbuff,tag,"y"),buffer,24);
	if ( *buffer )
		Icon_SetText( d->window, QUERY_YES, buffer );
	else
		Wimp_DeleteIcon( d->window, QUERY_YES );

	Icon_SetText( d->window, QUERY_MESSAGE, message );

	Dialog_ShowStatic( d, open_CENTERED );
	choice = Dialog_WaitForClick( d );
	Dialog_Destroy( d );
	return choice==QUERY_YES;
}

