/*************************************************************************/
/*                                                                       */
/*   Includes                                                            */
/*                                                                       */
/*************************************************************************/

#include "NewGUI_Includes.h"
#include "NewGUI.h"

/*************************************************************************/
/*                                                                       */
/*   Variables and Structures                                            */
/*                                                                       */
/*************************************************************************/

extern struct IntuitionBase   *IntuitionBase;
extern struct GfxBase         *GfxBase;

extern struct Library *GadToolsBase ;
extern struct Library *AslBase      ;
extern struct Library *DataTypesBase;

/*************************************************************************/
/*                                                                       */
/*   Extern Functions and variables my app                               */
/*                                                                       */
/*************************************************************************/

#define getstring(x) (((struct StringInfo *)x->SpecialInfo)->Buffer)

extern void scegli_vis(SHORT);

extern STRPTR  showername, playername, userprg1, userprg2,
               userprg3, userprg4, userprg5, userprg6,
               userprg7, userprg8;
extern STRPTR  userprgname1, userprgname2,userprgname3,userprgname4;
extern STRPTR  userprgname5, userprgname6,userprgname7,userprgname8;
extern STRPTR  paramshow, paramplay, paramusr1, paramusr2, paramusr3,
               paramusr4, paramusr5, paramusr6, paramusr7, paramusr8;

extern APTR       vi;

void SetPref(struct Window *win,struct Gadget *wingads[]);

/*************************************************************************/
/*                                                                       */
/*   Defines                                                             */
/*                                                                       */
/*************************************************************************/

#define RASTERX (GfxBase->DefaultFont->tf_XSize)
#define RASTERY (GfxBase->DefaultFont->tf_YSize/2+4)

#define XSIZE(x)  ((x)*RASTERX)
#define YSIZE(x)  ((x)*RASTERY)

#define XPOS(x)   (XSIZE(x)+customscreen->WBorLeft)
#define YPOS(x)   (YSIZE(x)+customscreen->BarHeight+1)

#define ERROR_NO_WINDOW_OPENED      1001L
#define ERROR_NO_PUBSCREEN_LOCKED   1002L
#define ERROR_NO_GADGETS_CREATED    1003L
#define ERROR_NO_VISUALINFO         1004L
#define ERROR_NO_PICTURE_LOADED     1005L
#define ERROR_NO_GADGETLIST_CREATED 1006L
#define ERROR_NO_WINDOW_MENU        1007L
#define ERROR_SCREEN_TOO_SMALL      1008L
#define ERROR_LIST_NOT_INITIALIZED  1009L
struct prefwinData
	{
	BOOL    gd_Disabled_sGadget1;
	char    gd_String_sGadget1[64];
	BOOL    gd_Disabled_sGadget3;
	char    gd_String_sGadget3[64];
	BOOL    gd_Disabled_sGadget4;
	char    gd_String_sGadget4[64];
	BOOL    gd_Disabled_sGadget5;
	char    gd_String_sGadget5[64];
	BOOL    gd_Disabled_sGadget6;
	char    gd_String_sGadget6[64];
	BOOL    gd_Disabled_sGadget7;
	char    gd_String_sGadget7[64];
	BOOL    gd_Disabled_sGadget8;
	char    gd_String_sGadget8[64];
	BOOL    gd_Disabled_sGadget9;
	char    gd_String_sGadget9[64];
	BOOL    gd_Disabled_sGadget10;
	char    gd_String_sGadget10[64];
	BOOL    gd_Disabled_sGadget11;
	char    gd_String_sGadget11[64];
	BOOL    gd_Disabled_Gadget2;
	BOOL    gd_Disabled_Gadget12;
	BOOL    gd_Disabled_Gadget13;
	BOOL    gd_Disabled_Gadget14;
	BOOL    gd_Disabled_Gadget15;
	BOOL    gd_Disabled_Gadget16;
	BOOL    gd_Disabled_Gadget17;
	BOOL    gd_Disabled_Gadget18;
	BOOL    gd_Disabled_Gadget19;
	BOOL    gd_Disabled_Gadget20;
	BOOL    gd_Disabled_sGadget12;
	char    gd_String_sGadget12[64];
	BOOL    gd_Disabled_sGadget13;
	char    gd_String_sGadget13[64];
	BOOL    gd_Disabled_sGadget15;
	char    gd_String_sGadget15[64];
	BOOL    gd_Disabled_sGadget16;
	char    gd_String_sGadget16[64];
	BOOL    gd_Disabled_sGadget17;
	char    gd_String_sGadget17[64];
	BOOL    gd_Disabled_sGadget18;
	char    gd_String_sGadget18[64];
	BOOL    gd_Disabled_sGadget19;
	char    gd_String_sGadget19[64];
	BOOL    gd_Disabled_sGadget20;
	char    gd_String_sGadget20[64];
	BOOL    gd_Disabled_sGadget22;
	char    gd_String_sGadget22[64];
	BOOL    gd_Disabled_sGadget23;
	char    gd_String_sGadget23[64];
	BOOL    gd_Disabled_Gadget38;
	BOOL    gd_Disabled_Gadget39;
	};


/*************************************************************************/
/*                                                                       */
/*   Routines to handle gadgets                                          */
/*                                                                       */
/*************************************************************************/


void HandleGadgetsprefwin(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,struct prefwinData *gadgetdata,APTR userdata)
{
        struct Gadget *gad=wingads[gadgetid];
	switch(gadgetid)
		{
		case showstr:
                        strcpy(showername,getstring(gad));
			break;
		case Play:
                        strcpy(playername,getstring(gad));
			break;
		case usr1:
                        strcpy(userprg1,getstring(gad));
                        userprgname1=FilePart(userprg1);
			break;
		case usr2:
                        strcpy(userprg2,getstring(gad));
                        userprgname2=FilePart(userprg2);
                        break;
		case usr3:
                        strcpy(userprg3,getstring(gad));
                        userprgname3=FilePart(userprg3);
			break;
		case usr4:
                        strcpy(userprg4,getstring(gad));
                        userprgname4=FilePart(userprg4);
			break;
		case usr5:
                        strcpy(userprg5,getstring(gad));
                        userprgname5=FilePart(userprg5);
			break;
		case usr6:
                        strcpy(userprg6,getstring(gad));
                        userprgname6=FilePart(userprg6);
			break;
		case usr7:
                        strcpy(userprg7,getstring(gad));
                        userprgname7=FilePart(userprg7);
			break;
		case usr8:
                        strcpy(userprg8,getstring(gad));
                        userprgname8=FilePart(userprg8);
			break;
		case showb:
                        scegli_vis(0);
                        GT_SetGadgetAttrs(wingads[showstr], win, NULL,
                                          GTST_String, showername,
                                          TAG_DONE);
                        break;
  	        case playb:
                       scegli_vis(1);
                       GT_SetGadgetAttrs(wingads[Play], win, NULL,
                                         GTST_String, playername,
                                         TAG_DONE);
			break;
		case BTID_Gadget13:
                        scegli_vis(2);
                        GT_SetGadgetAttrs(wingads[usr1], win, NULL,
                                          GTST_String, userprg1,
                                          TAG_DONE);                           
			break;
		case usr2b:
                        scegli_vis(3);
                        GT_SetGadgetAttrs(wingads[usr2], win, NULL,
                                          GTST_String, userprg2,
                                          TAG_DONE);            
                        break;
		case usr3b:
                        scegli_vis(4);
                        GT_SetGadgetAttrs(wingads[usr3], win, NULL,
                                          GTST_String, userprg3,
                                          TAG_DONE);                                              
			break;
		case usr4b:
                        scegli_vis(5);
                        GT_SetGadgetAttrs(wingads[usr4], win, NULL,
                                          GTST_String, userprg4,
                                          TAG_DONE);            
			break;
		case usr5b:
                        scegli_vis(6);
                        GT_SetGadgetAttrs(wingads[usr5], win, NULL,
                                          GTST_String, userprg5,
                                          TAG_DONE);                                              
			break;
		case usr6b:
                       scegli_vis(7);
                       GT_SetGadgetAttrs(wingads[usr6], win, NULL,
                                         GTST_String, userprg6,
                                         TAG_DONE);                                              
			break;
		case usr7b:
                        scegli_vis(8);
                        GT_SetGadgetAttrs(wingads[usr7], win, NULL,
                                          GTST_String, userprg7,
                                          TAG_DONE);                                              
	 		break;
		case usr8b:
                        scegli_vis(9);
                        GT_SetGadgetAttrs(wingads[usr8], win, NULL,
                                          GTST_String, userprg8,
                                          TAG_DONE);                                              
			break;
		case showpar:
                        if(paramshow==NULL) paramshow=(STRPTR)malloc(100);
                        strcpy(paramshow,getstring(gad));
			break;
		case playpar:
                        if(paramplay==NULL) paramplay=(STRPTR)malloc(100);
                        strcpy(paramplay,getstring(gad));
			break;
		case usr1par:
                        if(paramusr1==NULL) paramusr1=(STRPTR)malloc(100);
                        strcpy(paramusr1,getstring(gad));
			break;
		case usr2par:
                        if(paramusr2==NULL) paramusr2=(STRPTR)malloc(100);
                        strcpy(paramusr2,getstring(gad));
			break;
		case usr3par:
                        if(paramusr3==NULL) paramusr3=(STRPTR)malloc(100);
                        strcpy(paramusr3,getstring(gad));
			break;
		case usr4par:
                        if(paramusr4==NULL) paramusr4=(STRPTR)malloc(100);
                        strcpy(paramusr4,getstring(gad));
			break;
		case usr5par:
                        if(paramusr5==NULL) paramusr5=(STRPTR)malloc(100);
                        strcpy(paramusr5,getstring(gad));
			break;
		case usr6par:
                        if(paramusr6==NULL) paramusr6=(STRPTR)malloc(100);
                        strcpy(paramusr6,getstring(gad));
			break;
		case usr7par:
                        if(paramusr7==NULL) paramusr7=(STRPTR)malloc(100);
                        strcpy(paramusr7,getstring(gad));
			break;
		case usr8par:
                        if(paramusr8==NULL) paramusr8=(STRPTR)malloc(100);
                        strcpy(paramusr8,getstring(gad));
			break;
		}
 
}


/*************************************************************************/
/*                                                                       */
/*   Routines to create gadgets                                          */
/*                                                                       */
/*************************************************************************/

struct Gadget *CreateGadgetsprefwin(struct Gadget **gadgetlist,struct NewGadget newgad[],struct Gadget *wingads[],struct prefwinData *gadgetdata)
{
	struct Gadget *gadget=CreateContext(gadgetlist);
	if (gadget)
		{
		wingads[showstr]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[showstr],GA_Disabled,gadgetdata->gd_Disabled_sGadget1,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget1,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[Play]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[Play],GA_Disabled,gadgetdata->gd_Disabled_sGadget3,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget3,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr1]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr1],GA_Disabled,gadgetdata->gd_Disabled_sGadget4,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget4,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr2]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr2],GA_Disabled,gadgetdata->gd_Disabled_sGadget5,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget5,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr3]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr3],GA_Disabled,gadgetdata->gd_Disabled_sGadget6,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget6,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr4]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr4],GA_Disabled,gadgetdata->gd_Disabled_sGadget7,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget7,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr5]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr5],GA_Disabled,gadgetdata->gd_Disabled_sGadget8,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget8,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr6]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr6],GA_Disabled,gadgetdata->gd_Disabled_sGadget9,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget9,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr7]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr7],GA_Disabled,gadgetdata->gd_Disabled_sGadget10,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget10,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr8]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr8],GA_Disabled,gadgetdata->gd_Disabled_sGadget11,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget11,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[showb]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[showb],GA_Disabled,gadgetdata->gd_Disabled_Gadget2,GT_Underscore,'_',TAG_END);
		wingads[playb]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[playb],GA_Disabled,gadgetdata->gd_Disabled_Gadget12,GT_Underscore,'_',TAG_END);
		wingads[BTID_Gadget13]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget13],GA_Disabled,gadgetdata->gd_Disabled_Gadget13,GT_Underscore,'_',TAG_END);
		wingads[usr2b]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[usr2b],GA_Disabled,gadgetdata->gd_Disabled_Gadget14,GT_Underscore,'_',TAG_END);
		wingads[usr3b]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[usr3b],GA_Disabled,gadgetdata->gd_Disabled_Gadget15,GT_Underscore,'_',TAG_END);
		wingads[usr4b]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[usr4b],GA_Disabled,gadgetdata->gd_Disabled_Gadget16,GT_Underscore,'_',TAG_END);
		wingads[usr5b]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[usr5b],GA_Disabled,gadgetdata->gd_Disabled_Gadget17,GT_Underscore,'_',TAG_END);
		wingads[usr6b]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[usr6b],GA_Disabled,gadgetdata->gd_Disabled_Gadget18,GT_Underscore,'_',TAG_END);
		wingads[usr7b]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[usr7b],GA_Disabled,gadgetdata->gd_Disabled_Gadget19,GT_Underscore,'_',TAG_END);
		wingads[usr8b]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[usr8b],GA_Disabled,gadgetdata->gd_Disabled_Gadget20,GT_Underscore,'_',TAG_END);
		wingads[LAID_Gadget1]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget1],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
		wingads[LAID_Gadget2]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget2],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
		wingads[LAID_Gadget3]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget3],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
		wingads[LAID_Gadget4]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget4],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
		wingads[LAID_Gadget5]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget5],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
		wingads[LAID_Gadget6]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget6],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
		wingads[LAID_Gadget7]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget7],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
		wingads[LAID_Gadget9]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget9],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
		wingads[LAID_Gadget10]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget10],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
		wingads[LAID_Gadget11]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget11],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
		wingads[showpar]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[showpar],GA_Disabled,gadgetdata->gd_Disabled_sGadget12,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget12,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[playpar]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[playpar],GA_Disabled,gadgetdata->gd_Disabled_sGadget13,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget13,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr1par]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr1par],GA_Disabled,gadgetdata->gd_Disabled_sGadget15,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget15,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr2par]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr2par],GA_Disabled,gadgetdata->gd_Disabled_sGadget16,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget16,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr3par]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr3par],GA_Disabled,gadgetdata->gd_Disabled_sGadget17,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget17,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr4par]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr4par],GA_Disabled,gadgetdata->gd_Disabled_sGadget18,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget18,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr5par]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr5par],GA_Disabled,gadgetdata->gd_Disabled_sGadget19,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget19,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr6par]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr6par],GA_Disabled,gadgetdata->gd_Disabled_sGadget20,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget20,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr7par]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr7par],GA_Disabled,gadgetdata->gd_Disabled_sGadget22,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget22,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[usr8par]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[usr8par],GA_Disabled,gadgetdata->gd_Disabled_sGadget23,GA_TabCycle,TRUE,GTST_MaxChars,64,GTST_String,gadgetdata->gd_String_sGadget23,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
		wingads[LAID_Gadget25]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget25],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
		wingads[LAID_Gadget26]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget26],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
		return gadget;
		}
	else return NULL;
}


/*************************************************************************/
/*                                                                       */
/*   Routines to handle windows                                          */
/*                                                                       */
/*************************************************************************/


void Handleprefwin(struct Screen *customscreen,LONG left,LONG top,APTR userdata)
{
	APTR visualinfo;
	visualinfo=vi;
	if (visualinfo)
		{
		struct Gadget  *gadgetlist = NULL;
		ULONG height=24,width=80,maxheight=1024,maxwidth=1280;

		struct Gadget *wingads[44];

		char * title                  = "AmyTree Prefs © Cervo Antonio 1997";
		struct Window     *win        = NULL;

		struct TextAttr   textattr;

		struct NewGadget  newgad[]    = {
				 0,0,0,0,NULL,NULL,showstr,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,Play,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr1,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr2,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr3,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr4,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr5,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr6,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr7,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr8,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,"«",NULL,showb,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"«",NULL,playb,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"«",NULL,BTID_Gadget13,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"«",NULL,usr2b,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"«",NULL,usr3b,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"«",NULL,usr4b,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"«",NULL,usr5b,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"«",NULL,usr6b,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"«",NULL,usr7b,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"«",NULL,usr8b,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"Show",NULL,LAID_Gadget1,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"Play",NULL,LAID_Gadget2,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"Usr1",NULL,LAID_Gadget3,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"Usr2",NULL,LAID_Gadget4,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"Usr3",NULL,LAID_Gadget5,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"Usr4",NULL,LAID_Gadget6,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"Usr5",NULL,LAID_Gadget7,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"Usr6",NULL,LAID_Gadget9,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"Usr7",NULL,LAID_Gadget10,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"Usr8",NULL,LAID_Gadget11,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,NULL,NULL,showpar,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,playpar,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr1par,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr2par,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr3par,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr4par,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr5par,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr6par,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr7par,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,NULL,NULL,usr8par,PLACETEXT_LEFT,NULL,NULL,
				 0,0,0,0,"Programs",NULL,LAID_Gadget25,PLACETEXT_IN,NULL,NULL,
				 0,0,0,0,"Parameters",NULL,LAID_Gadget26,PLACETEXT_IN,NULL,NULL,
												  };


		struct prefwinData gadgetdata = {
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a button */
				 FALSE,
				 /* belongs to a button */
				 FALSE,
				 /* belongs to a button */
				 FALSE,
				 /* belongs to a button */
				 FALSE,
				 /* belongs to a button */
				 FALSE,
				 /* belongs to a button */
				 FALSE,
				 /* belongs to a button */
				 FALSE,
				 /* belongs to a button */
				 FALSE,
				 /* belongs to a button */
				 FALSE,
				 /* belongs to a button */
				 FALSE,
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a string gadget */
				 FALSE,
				 "",
				 /* belongs to a button */
				 FALSE,
				 /* belongs to a button */
													 FALSE,
												  };


		textattr.ta_Name =GfxBase->DefaultFont->tf_Message.mn_Node.ln_Name;
		textattr.ta_YSize=GfxBase->DefaultFont->tf_YSize;
		textattr.ta_Style=FS_NORMAL;
		textattr.ta_Flags=FPF_DISKFONT;

		newgad[ 0].ng_LeftEdge  =XPOS(8);
		newgad[ 0].ng_TopEdge   =YPOS(2);
		newgad[ 0].ng_Width     =XSIZE(47);
		newgad[ 0].ng_Height    =YSIZE(2);
		newgad[ 0].ng_TextAttr  =&textattr;
		newgad[ 0].ng_VisualInfo=visualinfo;
		newgad[ 1].ng_LeftEdge  =XPOS(8);
		newgad[ 1].ng_TopEdge   =YPOS(4);
		newgad[ 1].ng_Width     =XSIZE(47);
		newgad[ 1].ng_Height    =YSIZE(2);
		newgad[ 1].ng_TextAttr  =&textattr;
		newgad[ 1].ng_VisualInfo=visualinfo;
		newgad[ 2].ng_LeftEdge  =XPOS(8);
		newgad[ 2].ng_TopEdge   =YPOS(6);
		newgad[ 2].ng_Width     =XSIZE(47);
		newgad[ 2].ng_Height    =YSIZE(2);
		newgad[ 2].ng_TextAttr  =&textattr;
		newgad[ 2].ng_VisualInfo=visualinfo;
		newgad[ 3].ng_LeftEdge  =XPOS(8);
		newgad[ 3].ng_TopEdge   =YPOS(8);
		newgad[ 3].ng_Width     =XSIZE(47);
		newgad[ 3].ng_Height    =YSIZE(2);
		newgad[ 3].ng_TextAttr  =&textattr;
		newgad[ 3].ng_VisualInfo=visualinfo;
		newgad[ 4].ng_LeftEdge  =XPOS(8);
		newgad[ 4].ng_TopEdge   =YPOS(10);
		newgad[ 4].ng_Width     =XSIZE(47);
		newgad[ 4].ng_Height    =YSIZE(2);
		newgad[ 4].ng_TextAttr  =&textattr;
		newgad[ 4].ng_VisualInfo=visualinfo;
		newgad[ 5].ng_LeftEdge  =XPOS(8);
		newgad[ 5].ng_TopEdge   =YPOS(12);
		newgad[ 5].ng_Width     =XSIZE(47);
		newgad[ 5].ng_Height    =YSIZE(2);
		newgad[ 5].ng_TextAttr  =&textattr;
		newgad[ 5].ng_VisualInfo=visualinfo;
		newgad[ 6].ng_LeftEdge  =XPOS(8);
		newgad[ 6].ng_TopEdge   =YPOS(14);
		newgad[ 6].ng_Width     =XSIZE(47);
		newgad[ 6].ng_Height    =YSIZE(2);
		newgad[ 6].ng_TextAttr  =&textattr;
		newgad[ 6].ng_VisualInfo=visualinfo;
		newgad[ 7].ng_LeftEdge  =XPOS(8);
		newgad[ 7].ng_TopEdge   =YPOS(16);
		newgad[ 7].ng_Width     =XSIZE(47);
		newgad[ 7].ng_Height    =YSIZE(2);
		newgad[ 7].ng_TextAttr  =&textattr;
		newgad[ 7].ng_VisualInfo=visualinfo;
		newgad[ 8].ng_LeftEdge  =XPOS(8);
		newgad[ 8].ng_TopEdge   =YPOS(18);
		newgad[ 8].ng_Width     =XSIZE(47);
		newgad[ 8].ng_Height    =YSIZE(2);
		newgad[ 8].ng_TextAttr  =&textattr;
		newgad[ 8].ng_VisualInfo=visualinfo;
		newgad[ 9].ng_LeftEdge  =XPOS(8);
		newgad[ 9].ng_TopEdge   =YPOS(20);
		newgad[ 9].ng_Width     =XSIZE(47);
		newgad[ 9].ng_Height    =YSIZE(2);
		newgad[ 9].ng_TextAttr  =&textattr;
		newgad[ 9].ng_VisualInfo=visualinfo;
		newgad[10].ng_LeftEdge  =XPOS(55);
		newgad[10].ng_TopEdge   =YPOS(2);
		newgad[10].ng_Width     =XSIZE(3);
		newgad[10].ng_Height    =YSIZE(2);
		newgad[10].ng_TextAttr  =&textattr;
		newgad[10].ng_VisualInfo=visualinfo;
		newgad[11].ng_LeftEdge  =XPOS(55);
		newgad[11].ng_TopEdge   =YPOS(4);
		newgad[11].ng_Width     =XSIZE(3);
		newgad[11].ng_Height    =YSIZE(2);
		newgad[11].ng_TextAttr  =&textattr;
		newgad[11].ng_VisualInfo=visualinfo;
		newgad[12].ng_LeftEdge  =XPOS(55);
		newgad[12].ng_TopEdge   =YPOS(6);
		newgad[12].ng_Width     =XSIZE(3);
		newgad[12].ng_Height    =YSIZE(2);
		newgad[12].ng_TextAttr  =&textattr;
		newgad[12].ng_VisualInfo=visualinfo;
		newgad[13].ng_LeftEdge  =XPOS(55);
		newgad[13].ng_TopEdge   =YPOS(8);
		newgad[13].ng_Width     =XSIZE(3);
		newgad[13].ng_Height    =YSIZE(2);
		newgad[13].ng_TextAttr  =&textattr;
		newgad[13].ng_VisualInfo=visualinfo;
		newgad[14].ng_LeftEdge  =XPOS(55);
		newgad[14].ng_TopEdge   =YPOS(10);
		newgad[14].ng_Width     =XSIZE(3);
		newgad[14].ng_Height    =YSIZE(2);
		newgad[14].ng_TextAttr  =&textattr;
		newgad[14].ng_VisualInfo=visualinfo;
		newgad[15].ng_LeftEdge  =XPOS(55);
		newgad[15].ng_TopEdge   =YPOS(12);
		newgad[15].ng_Width     =XSIZE(3);
		newgad[15].ng_Height    =YSIZE(2);
		newgad[15].ng_TextAttr  =&textattr;
		newgad[15].ng_VisualInfo=visualinfo;
		newgad[16].ng_LeftEdge  =XPOS(55);
		newgad[16].ng_TopEdge   =YPOS(14);
		newgad[16].ng_Width     =XSIZE(3);
		newgad[16].ng_Height    =YSIZE(2);
		newgad[16].ng_TextAttr  =&textattr;
		newgad[16].ng_VisualInfo=visualinfo;
		newgad[17].ng_LeftEdge  =XPOS(55);
		newgad[17].ng_TopEdge   =YPOS(16);
		newgad[17].ng_Width     =XSIZE(3);
		newgad[17].ng_Height    =YSIZE(2);
		newgad[17].ng_TextAttr  =&textattr;
		newgad[17].ng_VisualInfo=visualinfo;
		newgad[18].ng_LeftEdge  =XPOS(55);
		newgad[18].ng_TopEdge   =YPOS(18);
		newgad[18].ng_Width     =XSIZE(3);
		newgad[18].ng_Height    =YSIZE(2);
		newgad[18].ng_TextAttr  =&textattr;
		newgad[18].ng_VisualInfo=visualinfo;
		newgad[19].ng_LeftEdge  =XPOS(55);
		newgad[19].ng_TopEdge   =YPOS(20);
		newgad[19].ng_Width     =XSIZE(3);
		newgad[19].ng_Height    =YSIZE(2);
		newgad[19].ng_TextAttr  =&textattr;
		newgad[19].ng_VisualInfo=visualinfo;
		newgad[20].ng_LeftEdge  =XPOS(2);
		newgad[20].ng_TopEdge   =YPOS(2);
		newgad[20].ng_Width     =XSIZE(5);
		newgad[20].ng_Height    =YSIZE(2);
		newgad[20].ng_TextAttr  =&textattr;
		newgad[20].ng_VisualInfo=visualinfo;
		newgad[21].ng_LeftEdge  =XPOS(2);
		newgad[21].ng_TopEdge   =YPOS(4);
		newgad[21].ng_Width     =XSIZE(5);
		newgad[21].ng_Height    =YSIZE(2);
		newgad[21].ng_TextAttr  =&textattr;
		newgad[21].ng_VisualInfo=visualinfo;
		newgad[22].ng_LeftEdge  =XPOS(2);
		newgad[22].ng_TopEdge   =YPOS(6);
		newgad[22].ng_Width     =XSIZE(5);
		newgad[22].ng_Height    =YSIZE(2);
		newgad[22].ng_TextAttr  =&textattr;
		newgad[22].ng_VisualInfo=visualinfo;
		newgad[23].ng_LeftEdge  =XPOS(2);
		newgad[23].ng_TopEdge   =YPOS(8);
		newgad[23].ng_Width     =XSIZE(5);
		newgad[23].ng_Height    =YSIZE(2);
		newgad[23].ng_TextAttr  =&textattr;
		newgad[23].ng_VisualInfo=visualinfo;
		newgad[24].ng_LeftEdge  =XPOS(2);
		newgad[24].ng_TopEdge   =YPOS(10);
		newgad[24].ng_Width     =XSIZE(5);
		newgad[24].ng_Height    =YSIZE(2);
		newgad[24].ng_TextAttr  =&textattr;
		newgad[24].ng_VisualInfo=visualinfo;
		newgad[25].ng_LeftEdge  =XPOS(2);
		newgad[25].ng_TopEdge   =YPOS(12);
		newgad[25].ng_Width     =XSIZE(5);
		newgad[25].ng_Height    =YSIZE(2);
		newgad[25].ng_TextAttr  =&textattr;
		newgad[25].ng_VisualInfo=visualinfo;
		newgad[26].ng_LeftEdge  =XPOS(2);
		newgad[26].ng_TopEdge   =YPOS(14);
		newgad[26].ng_Width     =XSIZE(5);
		newgad[26].ng_Height    =YSIZE(2);
		newgad[26].ng_TextAttr  =&textattr;
		newgad[26].ng_VisualInfo=visualinfo;
		newgad[27].ng_LeftEdge  =XPOS(2);
		newgad[27].ng_TopEdge   =YPOS(16);
		newgad[27].ng_Width     =XSIZE(5);
		newgad[27].ng_Height    =YSIZE(2);
		newgad[27].ng_TextAttr  =&textattr;
		newgad[27].ng_VisualInfo=visualinfo;
		newgad[28].ng_LeftEdge  =XPOS(2);
		newgad[28].ng_TopEdge   =YPOS(18);
		newgad[28].ng_Width     =XSIZE(5);
		newgad[28].ng_Height    =YSIZE(2);
		newgad[28].ng_TextAttr  =&textattr;
		newgad[28].ng_VisualInfo=visualinfo;
		newgad[29].ng_LeftEdge  =XPOS(2);
		newgad[29].ng_TopEdge   =YPOS(20);
		newgad[29].ng_Width     =XSIZE(5);
		newgad[29].ng_Height    =YSIZE(2);
		newgad[29].ng_TextAttr  =&textattr;
		newgad[29].ng_VisualInfo=visualinfo;
		newgad[30].ng_LeftEdge  =XPOS(58);
		newgad[30].ng_TopEdge   =YPOS(2);
		newgad[30].ng_Width     =XSIZE(18);
		newgad[30].ng_Height    =YSIZE(2);
		newgad[30].ng_TextAttr  =&textattr;
		newgad[30].ng_VisualInfo=visualinfo;
		newgad[31].ng_LeftEdge  =XPOS(58);
		newgad[31].ng_TopEdge   =YPOS(4);
		newgad[31].ng_Width     =XSIZE(18);
		newgad[31].ng_Height    =YSIZE(2);
		newgad[31].ng_TextAttr  =&textattr;
		newgad[31].ng_VisualInfo=visualinfo;
		newgad[32].ng_LeftEdge  =XPOS(58);
		newgad[32].ng_TopEdge   =YPOS(6);
		newgad[32].ng_Width     =XSIZE(18);
		newgad[32].ng_Height    =YSIZE(2);
		newgad[32].ng_TextAttr  =&textattr;
		newgad[32].ng_VisualInfo=visualinfo;
		newgad[33].ng_LeftEdge  =XPOS(58);
		newgad[33].ng_TopEdge   =YPOS(8);
		newgad[33].ng_Width     =XSIZE(18);
		newgad[33].ng_Height    =YSIZE(2);
		newgad[33].ng_TextAttr  =&textattr;
		newgad[33].ng_VisualInfo=visualinfo;
		newgad[34].ng_LeftEdge  =XPOS(58);
		newgad[34].ng_TopEdge   =YPOS(10);
		newgad[34].ng_Width     =XSIZE(18);
		newgad[34].ng_Height    =YSIZE(2);
		newgad[34].ng_TextAttr  =&textattr;
		newgad[34].ng_VisualInfo=visualinfo;
		newgad[35].ng_LeftEdge  =XPOS(58);
		newgad[35].ng_TopEdge   =YPOS(12);
		newgad[35].ng_Width     =XSIZE(18);
		newgad[35].ng_Height    =YSIZE(2);
		newgad[35].ng_TextAttr  =&textattr;
		newgad[35].ng_VisualInfo=visualinfo;
		newgad[36].ng_LeftEdge  =XPOS(58);
		newgad[36].ng_TopEdge   =YPOS(14);
		newgad[36].ng_Width     =XSIZE(18);
		newgad[36].ng_Height    =YSIZE(2);
		newgad[36].ng_TextAttr  =&textattr;
		newgad[36].ng_VisualInfo=visualinfo;
		newgad[37].ng_LeftEdge  =XPOS(58);
		newgad[37].ng_TopEdge   =YPOS(16);
		newgad[37].ng_Width     =XSIZE(18);
		newgad[37].ng_Height    =YSIZE(2);
		newgad[37].ng_TextAttr  =&textattr;
		newgad[37].ng_VisualInfo=visualinfo;
		newgad[38].ng_LeftEdge  =XPOS(58);
		newgad[38].ng_TopEdge   =YPOS(18);
		newgad[38].ng_Width     =XSIZE(18);
		newgad[38].ng_Height    =YSIZE(2);
		newgad[38].ng_TextAttr  =&textattr;
		newgad[38].ng_VisualInfo=visualinfo;
		newgad[39].ng_LeftEdge  =XPOS(58);
		newgad[39].ng_TopEdge   =YPOS(20);
		newgad[39].ng_Width     =XSIZE(18);
		newgad[39].ng_Height    =YSIZE(2);
		newgad[39].ng_TextAttr  =&textattr;
		newgad[39].ng_VisualInfo=visualinfo;
		newgad[40].ng_LeftEdge  =XPOS(20);
		newgad[40].ng_TopEdge   =YPOS(536870912);
		newgad[40].ng_Width     =XSIZE(20);
		newgad[40].ng_Height    =YSIZE(2);
		newgad[40].ng_TextAttr  =&textattr;
		newgad[40].ng_VisualInfo=visualinfo;
		newgad[41].ng_LeftEdge  =XPOS(60);
		newgad[41].ng_TopEdge   =YPOS(536870912);
		newgad[41].ng_Width     =XSIZE(13);
		newgad[41].ng_Height    =YSIZE(2);
		newgad[41].ng_TextAttr  =&textattr;
		newgad[41].ng_VisualInfo=visualinfo;

		height= YSIZE(height);
		width = XSIZE(width) ;
		if (left == -1) left  = (customscreen->Width-width)/2;
		if (top  == -1) top   = (customscreen->Height-height)/2;

		if (CreateGadgetsprefwin(&gadgetlist,newgad,wingads,&gadgetdata) != NULL)
			{
			if (height>customscreen->Height || width>customscreen->Width) GUIC_ErrorReport(NULL,ERROR_SCREEN_TOO_SMALL);
			win=OpenWindowTags(NULL,WA_Activate,         TRUE,
							WA_CloseGadget,      TRUE,
							WA_DepthGadget,      TRUE,
							WA_SizeGadget,       FALSE,
							WA_DragBar,          TRUE,
							WA_Gadgets,          gadgetlist,
							WA_InnerHeight,      height,
							WA_InnerWidth,       width,
							WA_IDCMP,            IDCMP_CLOSEWINDOW|IDCMP_NEWSIZE|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW|IDCMP_GADGETUP|BUTTONIDCMP|STRINGIDCMP,
							WA_Left,             left,
							WA_Top,              top,
							WA_MaxHeight,        maxheight,
							WA_MinHeight,        height,
							WA_MaxWidth,         maxwidth,
							WA_MinWidth,         width,
							WA_SizeBRight,       FALSE,
							WA_SizeBBottom,      FALSE,
							WA_SmartRefresh,     TRUE,
							WA_CustomScreen,     customscreen,
							WA_Title,            title,
							WA_NewLookMenus,     TRUE,
							TAG_END);
			if (win)
				{
							struct IntuiMessage  *imessage   = NULL;
							struct Gadget        *idcmpgad   = NULL;
							ULONG  idcmpclass                = 0;
							UWORD  messagecode               = 0;
							BOOL   running                   = TRUE;
							ULONG  signal                    = 0;

							SetFont(win->RPort,GfxBase->DefaultFont);

                                          DrawBevelBox(win->RPort,
                                                       win->BorderLeft,
                                                       win->BorderTop,win->Width-win->BorderRight-win->BorderLeft,
                                                       win->Height-win->BorderBottom-win->BorderTop,
                                                       GT_VisualInfo, visualinfo,
                                                       TAG_DONE);


							GT_RefreshWindow(win,NULL);

                                                        SetPref(win,wingads);
							do
								{
								if (running) signal=Wait(SIGBREAKF_CTRL_C | 1L << win->UserPort->mp_SigBit);
								if (signal & SIGBREAKF_CTRL_C) running=FALSE;
								while (running && (imessage=GT_GetIMsg(win->UserPort)))
									{
									idcmpgad=(struct Gadget *)imessage->IAddress;
									idcmpclass=imessage->Class;
									messagecode =imessage->Code;

									GT_ReplyIMsg(imessage);

									switch(idcmpclass)
										{
										case IDCMP_REFRESHWINDOW:
											GT_BeginRefresh(win);
                                                                  DrawBevelBox(win->RPort,
                                                                               win->BorderLeft,
                                                                               win->BorderTop,win->Width-win->BorderRight-win->BorderLeft,
                                                                               win->Height-win->BorderBottom-win->BorderTop,
                                                                               GT_VisualInfo, visualinfo,
                                                                               TAG_DONE);
											GT_EndRefresh(win,TRUE);
											break;
										case IDCMP_VANILLAKEY:
											switch(messagecode)
												{
												case 27:
													running=FALSE;
													break;
												}
											break;
										case IDCMP_CLOSEWINDOW:
											running=FALSE;
											break;
										case IDCMP_GADGETUP:
										case MXIDCMP:
											HandleGadgetsprefwin(win,wingads,idcmpgad->GadgetID,messagecode,&gadgetdata,userdata);
											break;
										}
									/* end-switch */
									}
								/* end-while */
								}
							while (running);
				if (win) CloseWindow(win);
				}
			else GUIC_ErrorReport(win,ERROR_NO_WINDOW_OPENED);
			if (gadgetlist) FreeGadgets(gadgetlist);
			}
		else GUIC_ErrorReport(NULL,ERROR_NO_GADGETS_CREATED);
		}
	else GUIC_ErrorReport(NULL,ERROR_NO_VISUALINFO);
}

void SetPref(struct Window *win, struct Gadget *wingads[])
{
   GT_SetGadgetAttrs(wingads[showstr], win, NULL,
                     GTST_String, showername,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[Play], win, NULL,
                     GTST_String, playername,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr1], win, NULL,
                     GTST_String, userprg1,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr2], win, NULL,
                     GTST_String, userprg2,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr3], win, NULL,
                     GTST_String, userprg3,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr4], win, NULL,
                     GTST_String, userprg4,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr5], win, NULL,
                     GTST_String, userprg5,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr6], win, NULL,
                     GTST_String, userprg6,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr7], win, NULL,
                     GTST_String, userprg7,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr8], win, NULL,
                     GTST_String, userprg8,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[showpar], win, NULL,
                     GTST_String, paramshow,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[playpar], win, NULL,
                     GTST_String, paramplay,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr1par], win, NULL,
                     GTST_String, paramusr1,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr2par], win, NULL,
                     GTST_String, paramusr2,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr3par], win, NULL,
                     GTST_String, paramusr3,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr4par], win, NULL,
                     GTST_String, paramusr4,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr5par], win, NULL,
                     GTST_String, paramusr5,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr6par], win, NULL,
                     GTST_String, paramusr6,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr7par], win, NULL,
                     GTST_String, paramusr7,
                     TAG_DONE);
   GT_SetGadgetAttrs(wingads[usr8par], win, NULL,
                     GTST_String, paramusr8,
                     TAG_DONE);
}


