/* prf_filereq.c */
/* V1.1 3-9-92 */

#include "prf.h"

struct FileRequester *FileReq;
struct TagItem       FRTags[] =
                     {
                      ASL_Hail,NULL,
                      ASL_FuncFlags,0L,
                      ASL_LeftEdge,0L,
                      ASL_TopEdge,0L,
                      ASL_Width,SWD_WIDTH,
                      ASL_Height,SWD_HEIGHT,
                      ASL_Dir,0L,
                      ASL_Pattern,(ULONG)"~(#?.info)",
                      TAG_DONE,0L
                     };

void __regargs Prf_SavePrefs(struct prf_info *info,UBYTE *filename)
{
 FRTags[0].ti_Data = (ULONG)SAVEPREFS_TITLE;
 FRTags[1].ti_Data = (ULONG)FILF_SAVE;
 FRTags[2].ti_Data = SwdTags[0].ti_Data;
 FRTags[3].ti_Data = SwdTags[1].ti_Data;
 FRTags[6].ti_Data = (ULONG)info->SaveReqDir;
 if(FileReq = (struct FileRequester *)AllocAslRequest(ASL_FileRequest,FRTags))
 {
  if(RequestFile(FileReq))
  {
   strcpy(filename,FileReq->rf_Dir);
   strcpy(info->SaveReqDir,FileReq->rf_Dir);
   AddPart(filename,FileReq->rf_File,STR_SIZE);
  }
 }
 FreeAslRequest((APTR)FileReq);
}

void __regargs Prf_FileReq(struct prf_info *info)
{
 UBYTE f[STR_SIZE];
 FRTags[0].ti_Data = (ULONG)FILEREQ_TITLE;
 FRTags[1].ti_Data = (ULONG)FILF_MULTISELECT | FILF_PATGAD;
 FRTags[2].ti_Data = SwdTags[0].ti_Data;
 FRTags[3].ti_Data = SwdTags[1].ti_Data;
 FRTags[6].ti_Data = (ULONG)info->FileReqDir;
 if(FileReq = (struct FileRequester *)AllocAslRequest(ASL_FileRequest,FRTags))
 {
  if(RequestFile(FileReq))
  {
   if(FileReq->rf_NumArgs != 0)
   {
    long i;
    for(i = 0; i < FileReq->rf_NumArgs;i++)
    {
     long cmd = CMD_INSERTTAIL;
     strcpy(info->FileReqDir,FileReq->rf_Dir);
     NameFromLock(FileReq->rf_ArgList[i].wa_Lock,f,256);
     AddPart(f,FileReq->rf_ArgList[i].wa_Name,256);
     info->Special1 = (APTR)f;
     info->Special2 = (APTR)&cmd;
     InsertName(info);
     info->Special1 = NULL;
     info->Special2 = NULL;
    }
   }
  }
  FreeAslRequest((APTR)FileReq);
 }
}



