
		#include <Global/Main_Global.h>

    struct Library *MUIMasterBase;


ULONG InstallCustomClasses(Object *ClassList)
{
 char			*ClassPath;
 char   		*ParseBuffer;
 struct EClass		*NewClass;
 struct FileInfoBlock	*fib;
 
 BPTR	DirectoryLock;
   
 ClassPath  = Allocate_Memory(1024);
 GetVar("ClassPath",ClassPath,1024,GVF_GLOBAL_ONLY);
 if(!(DirectoryLock = Lock(ClassPath,ACCESS_READ)))
   {
    printf("Unable To Lock Directory %s\n",ClassPath);
    return(FALSE);
   }
 if(!(fib = AllocDosObjectTags( DOS_FIB, TAG_DONE) ) )
   {
    printf("Unable To Allocate File Info Block!!!\n");
    UnLock(DirectoryLock);
    return(FALSE);
   }
 ParseBuffer = Allocate_Memory(1024);
 Examine(DirectoryLock, fib);
 ParsePatternNoCase( "#?.ext", ParseBuffer, 1024);
 while( ExNext( DirectoryLock,fib ) )
      {
       if(MatchPatternNoCase( ParseBuffer, fib->fib_FileName ))            
          {	  
          printf("Inserting Custom Class By The Name of %s\n",fib->fib_FileName);
          strcat(ClassPath,fib->fib_FileName);
          DoMethod(ClassList,MUIM_List_InsertSingle,Make_Class(ClassPath),MUIV_List_Insert_Top);         
          }
      }
 Free_Memory(ParseBuffer);
 Free_Memory(ClassPath);
 FreeDosObject(DOS_FIB, fib);
 UnLock(DirectoryLock);
 return(TRUE);
}

ULONG FlushCustomClasses( Object *ClassList)
{
 
/*      ***!!! MUST WRIGHT A METHOD TO KILL ALL THE CUSTOM CLASSES !!!***
   struct EClass *OldClass;
   for( OldClass = FirstNode( ClassList); OldClass; OldClass = NextNode( OldClass ) )
   {
    Remove(OldClass);
    Kill_Class(OldClass);
   }
   
   */
 return(TRUE);
}


void OpenLibrarys( void )
{
  if(!(MUIMasterBase = OpenLibrary( MUIMASTER_NAME, MUIMASTER_VMIN )))
          {
           printf( "Couldn't Open %s, Version : %d!\n",MUIMASTER_NAME,MUIMASTER_VMIN );
           return( FALSE );
          }


}

void CloseLibrarys( void )
{
  if(MUIMasterBase)
      CloseLibrary(MUIMasterBase);
}