/* The Main FILE its Got The IDCMP And Stuff */

#include <Includes/Main_Global.h>
/*****************************************************************************************************/
/*					GLOBAL VARIBLES						     */
/*****************************************************************************************************/

	struct 	List 		FileList;
	struct 	Node		*NodeFinger;
	struct 	Base_Entry 	*Base_PTR;		// A Pointer To The Main Data_Base
	   int 			Number;		       // The Number of Entrys In The Main Data_Base
	   
	struct	ObjApp		*App;		      // A Pointer To The Main Application GUI Base
        struct 	Library 	*MUIMasterBase;		     // An MUI Library
	struct  Program_Data    *Data;

/*****************************************************************************************************/
/*	       				   PROTOTYPES						     */
/*****************************************************************************************************/


	    

/*****************************************************************************************************/
/*	       				   __main()						     */
/*****************************************************************************************************/

main( void )
{

     Open_Librarys();
     Data = malloc(sizeof(struct Program_Data));
     
     
     Init_Memory();
     Data->Total_Files=0;
     Data->Total_Size=0;
     Data->Size_String = Allocate_Memory(20);
     Data->Files_String = Allocate_Memory(20);
     Data->DIZ_Class  = MUI_CreateCustomClass(NULL,MUIC_Area ,NULL,sizeof(struct InstanceData),DIZ_View_Dispatcher);
     App = CreateApp();
     if(App)          
        {
           Data->Description = NewObject(Data->DIZ_Class->mcc_Class,NULL,MUIA_Font,MUIV_Font_Fixed,TAG_DONE);           
           DoMethod(App->Information,OM_ADDMEMBER,Data->Description);
           set(App->HardCopys,MUIA_Disabled,TRUE);
           set(App->Archive_Extract,MUIA_Disabled,TRUE);
           set(App->Archive_Information,MUIA_Disabled,TRUE);
           set(App->Archive_Directory,MUIA_Disabled,TRUE);
	   
           set(App->Open_Lister,MUIA_Disabled,TRUE);
           set(App->List_Format,MUIA_Disabled,TRUE);
           set(App->Main_Lister,MUIA_List_Format,"WEIGHT=200 P=\0338 ,WEIGHT=100 P=\033r,WEIGHT=10 P=\033b");
           set(App->Main_Window,MUIA_Window_Open,TRUE);
          Handle_Input();
          set(App->Main_Window,MUIA_Window_Open,FALSE);
          DisposeApp(App);
          Deallocate_Memory(Data->Size_String);
          
        }
        else
         printf("Failed To Create The Application\n");
        
     if(Data->DIZ_Class)
        MUI_DeleteCustomClass(Data->DIZ_Class);
        
     Cleanup_Memory();
     free(Data);
     Close_Librarys();
}
            
/*****************************************************************************************************/
/*                      	     Programs main WAIT() Loop.				             */
/*****************************************************************************************************/



void Handle_Input( void )
{

	ULONG	signals;
	ULONG	Fred;
	BOOL	running	=TRUE;


	
	while(running)
		{
			switch(Fred=DoMethod(App->App,MUIM_Application_Input,&signals))
				{
				case	MUIV_Application_ReturnID_Quit:		
						running = FALSE;
					break;	
				}
                        if (running && signals) Wait(signals);
		}
	
}

void Open_Librarys( void )
{ 
         if (!(MUIMasterBase = OpenLibrary(MUIMASTER_NAME,MUIMASTER_VMIN)))
              printf("Failed to open %s.\n",MUIMASTER_NAME); // Some Smart Routine Here
}
 
 
void Close_Librarys( void )
{
              if (MUIMasterBase)
              CloseLibrary(MUIMasterBase);
}
