#include <Global/Main_Global.h>

void Operators_Selected( Object *Fred )
{ 
char   *Cream;
char   *Frame;
char buffer[20];
struct Single_Frame *Temp;

 LONG id = MUIV_List_NextSelected_Start;
 int x;


set(App->Operator_Parms,MUIA_Window_Open,TRUE);

/*
 x = MUI_Request(App->App,NULL,0,NULL,"*_Start|_End","What Stage of the Operator is This Effect?\n");
              
 DoMethod(App->List_Operators,MUIM_List_GetEntry,MUIV_List_GetEntry_Active,&Cream);
 DoMethod(App->Frames_Lister,MUIM_List_GetEntry,MUIV_List_GetEntry_Active,&Frame);
 Temp = FindName(Data->Script,Frame);
 
 for(;;)
      {
       DoMethod(App->Frames_Lister,MUIM_List_NextSelected,&id);
      if( id==MUIV_List_NextSelected_End) break;
      sprintf(buffer,"%d",id);
      Temp = FindName(Data->Script,buffer);
      
     
      sprintf(Temp->Command,"%s",Cream);
      }
 */
 
}
void ScreenMode_Start( Object *fred ){}
void ScreenMode_Stop( Object *fred ){}



void Loaders_Selected( Object *Frame)
{
 struct 	FileRequester 		*Requester;
 struct WBArg 		*Files;
 int	Number;
 
 struct Single_Frame *Temp;
 int	Counter=0;
 char	*Buffer;
 
  
  Requester = AllocAslRequestTags(ASL_FileRequest,ASL_Hail,"Please Select Files To Load.",
				  ASLFR_PositiveText,"Accept", ASLFR_NegativeText,"Cancel",
				  ASL_FuncFlags,FILF_MULTISELECT,TAG_DONE);

    if(!AslRequest(Requester,NULL))
      {
        DisplayBeep(0);
      }
      
      Number    = Requester->rf_NumArgs;             	//Number of Files Selected
      Files     = Requester->rf_ArgList;	       //The Files In An Array of WBArgs
      strcpy(Data->FilePath,Requester->rf_Dir);       //The Directroy PATH of the Files
      //set(App->Total_Frames,MUIA_Text_Contents,Number);   
	
     
      for(Counter=0;Counter<Number;Counter++) 
           { 
           	Temp = Allocate_Memory(sizeof(struct Single_Frame));
           	Temp->Command = Allocate_Memory(25);
           	Temp->Loader = Allocate_Memory(25);
           	Temp->SaverOpts = Allocate_Memory(100);
           	Temp->Saver = Allocate_Memory(25);
           	Temp->SaveName = Allocate_Memory(40);
           	Temp->SF_Node.ln_Name = Allocate_Memory(20);
           	sprintf(Temp->SF_Node.ln_Name,"%d",Counter);
           	DoMethod(App->List_Loaders,MUIM_List_GetEntry,MUIV_List_GetEntry_Active,&Buffer);
           	sprintf(Temp->Loader,"%s",Buffer);
           	AddTail(Data->Script,Temp);
           
                DoMethod(App->Frames_Lister,MUIM_List_InsertSingle,Files[Counter].wa_Name,MUIV_List_Insert_Bottom);
	   }    
      FreeAslRequest( Requester);
}


void Savers_Selected( Object *Frame)
{
 LONG id = MUIV_List_NextSelected_Start;
 struct Single_Frame *Temp;
 struct FileRequester *Requester;
 struct WBArg	*Files;
 char	buffer[20];
 int    len=0;
 char	*TBuffer;
 int	x=0;
 char   *Cream;
 
 DoMethod(App->List_Savers,MUIM_List_GetEntry,MUIV_List_GetEntry_Active,&Cream);
 if(!strcmp("ANIM",strupr(Cream)))
   {  
     Requester = AllocAslRequestTags(ASL_FileRequest,ASL_Hail,"Please Select Name of Animation To Create/Append.",
	    			     ASLFR_PositiveText,"Accept", ASLFR_NegativeText,"Cancel",
				     ASLFR_DoSaveMode,TRUE,TAG_DONE);
    if(!AslRequest(Requester,NULL))
      {
        DisplayBeep(0);
      }
      
      Files     = Requester->rf_ArgList;	       //The Files In An Array of WBArgs
      strcpy(Data->SavePath,Requester->rf_Dir);       //The Directroy PATH of the Files
      len = strlen(Data->SavePath);
      if(Data->SavePath[len-1]!=':')
         {
          Data->SavePath[len]='/';
          Data->SavePath[len+1]=NULL;
         }
      
   }
   else
   {  
    for(;;)
        {
          Requester = AllocAslRequestTags(ASL_FileRequest,ASL_Hail,"Please Select Directory Where File Are To Be Saved.",
	        			     ASLFR_PositiveText,"Accept", ASLFR_NegativeText,"Cancel",
	        			     ASLFR_DrawersOnly,TRUE,TAG_DONE);
          if(!AslRequest(Requester,NULL))
               DisplayBeep(0);
    
            x = MUI_Request(App->App,NULL,0,NULL,"_Overwrite|*_New Directory","Files Already Exist In That Directory\n");
            if(x==1) break;
         }
        sprintf(Data->SavePath,"%s",Requester->rf_Dir);
    }
    
   for(;;)
      {
       DoMethod(App->Frames_Lister,MUIM_List_NextSelected,&id);
      if( id==MUIV_List_NextSelected_End) break;
      sprintf(buffer,"%d",id);
      Temp = FindName(Data->Script,buffer);
      if(!strcmp("ANIM",strupr(Cream)))
        {
        sprintf(Temp->SaveName,"%s",Requester->rf_File);    
        sprintf(Temp->SaverOpts,"IMAGE APPEND SMALLER");
        }
        else
         {
          DoMethod(App->Frames_Lister,MUIM_List_GetEntry,id,&TBuffer);
          sprintf(Temp->SaverOpts,"IMAGE");
          sprintf(Temp->SaveName,TBuffer);
         }      
      sprintf(Temp->Saver,"%s",Cream);
      }   
  
  if(Requester)
   FreeAslRequest( Requester);
}

