#include "aib.h"
#include "extern.h"

/* prototypes */

int request(char *,char *, char *);
void FontChoice(int);
void load_project(void);
void save_project(void);


/* globals */

struct Window *reqwindow;
struct EasyStruct mine= {
  sizeof(struct EasyStruct),0,
  0,0,0};


/**** request  ******************************************************/
int request(char *title, char *body, char *gads)
{
    int retval=0;
    int args = 50;
    LONG savedstate;
    mine.es_Title=title;
    mine.es_TextFormat= body;
    mine.es_GadgetFormat = gads;
   
    savedstate = window->IDCMPFlags;
    ModifyIDCMP(window,0);
    retval = EasyRequestArgs( window, &mine, 0L, &args);
    ModifyIDCMP(window,savedstate);
    GT_RefreshWindow(window,NULL);
    return(retval);
}


/********************  FONT REQUEST ******************************************/

void FontChoice (int type)
{
 LONG savedstate;
 struct TextAttr *test;
 static char Menudeal[256];

 FontRequester = (struct FontRequester *)AllocAslRequest(ASL_FontRequest,FontTags);
 if (FontRequester != NULL)
      {
	 savedstate = window->IDCMPFlags;
         ModifyIDCMP(window,0);
         if (AslRequest(FontRequester,NULL)) {
		switch (type){
		
		case 1:  strcpy(MyFont, FontRequester->fo_Attr.ta_Name);
			 GFontSize = FontRequester->fo_Attr.ta_YSize;
             /*          topaz80.ta_Style= FontRequester->fo_Attr.ta_Style;
                         topaz80.ta_Flags= FontRequester->fo_Attr.ta_Flags; */
	       
 	          	 GT_SetGadgetAttrs(curr_font,window,NULL,
		  		GTTX_Text,MyFont,
				TAG_DONE);
	       		 GT_SetGadgetAttrs(font_size,window,NULL,
				GTNM_Number,GFontSize,
		        	TAG_DONE);

			 break;

		 case 2: strcpy(Menudeal,FontRequester->fo_Attr.ta_Name);
			 menucta.ta_Name= Menudeal;
			 menucta.ta_YSize= FontRequester->fo_Attr.ta_YSize;
                         menucta.ta_Style= FontRequester->fo_Attr.ta_Style;
                         menucta.ta_Flags= FontRequester->fo_Attr.ta_Flags; 
			 test = &menucta;
			 if (!(CustomMenuFont = OpenDiskFont(test)))
				abort_me("Could not locate font");
	       
 	          	 GT_SetGadgetAttrs(menu_font,window,NULL,
		  		GTTX_Text,menucta.ta_Name,
				TAG_DONE);
	       		 GT_SetGadgetAttrs(menu_size,window,NULL,
				GTNM_Number,menucta.ta_YSize,
		        	TAG_DONE);

			 break;
		  }
		
               }
	 
         ModifyIDCMP(window,savedstate);
         FreeAslRequest(FontRequester);
	 GT_RefreshWindow(window,NULL);
      }

}                


/******************************* load request ******************************/

void load_project(void)
{
LONG savedstate;
ULONG dirtag = TAG_IGNORE;

if (AslBase){
	        savedstate = window->IDCMPFlags;
                ModifyIDCMP(window,0);
	if ( (FileRequester = AllocAslRequest(ASL_FileRequest,NULL)) )
		AslRequestTags( (APTR) FileRequester,
			ASL_Hail, "Select a .AIB File",
			ASL_OKText,"LOAD",
			ASL_Window,window,
			ASL_Pattern,(ULONG)"#?.AIB",
			TAG_DONE);

                 ModifyIDCMP(window,savedstate);
		 GT_RefreshWindow(window,NULL);
	}


}


/****************************** save **************************/
void save_project(void)
{
LONG savedstate;
ULONG dirtag = TAG_IGNORE;

if (AslBase){
                savedstate = window->IDCMPFlags;
                ModifyIDCMP(window,0);
	if ( (FileRequester = AllocAslRequest(ASL_FileRequest,NULL)) )
		if (!(AslRequestTags( (APTR) FileRequester,
			ASL_Hail, "Save with .AIB extension",
			ASL_OKText,"SAVE",
			ASL_Pattern, (ULONG)"#?.AIB",
			ASL_Window,window,
			TAG_DONE)))
                
		abort_me("Could not open requester");

	}

                 ModifyIDCMP(window,savedstate);
	 	 GT_RefreshWindow(window,NULL);
}
