	#include	<Global/Main_Global.h>

struct EClass * Make_Class( UBYTE *ClassPath )
/* 
   Create A SuperClass
*/
{
 struct EClass *New_Class;
 Msg	msg;
 
 printf("Started MAKE CLASS\n");
 New_Class = Allocate_Memory( sizeof( struct EClass ) );                                    
 New_Class->ec_ID = Allocate_Memory(strlen(ClassPath));
 strcpy(New_Class->ec_ID,ClassPath);
 New_Class->ec_SegList = LoadSeg(ClassPath);
 if(!New_Class->ec_SegList)
    {
     printf("UNABLE TO LOAD SEG\n");
     return(FALSE);
    }
 New_Class->ec_MUIBase = MUIMasterBase;
 New_Class->ec_Dispatcher = (((ULONG)New_Class->ec_SegList)<<2) +4; 
 msg->MethodID = Cray_Image;
 printf("Current State is 0x%lx\n",New_Class->ec_Image);
 New_Class->ec_Dispatcher(New_Class,0,msg);
 printf("Now State is 0x%lx\n",New_Class->ec_Image);
 

 return(New_Class);
}


ULONG SuperMethod(ULONG Attrib,struct EClass *CurClass)
{
 Msg msg;
 msg->MethodID = Attrib;
 return(CurClass->ec_Dispatcher(1,1,msg));
}


void Kill_Class( struct EClass *OldClass)
/*
   Kill A Super Class
*/
{
  Free_Memory(OldClass->ec_ID);
  UnLoadSeg(OldClass->ec_SegList);
  Free_Memory(OldClass);
}


ULONG SuperGet( struct EClass *Current, ULONG Attribute)
/*
   Get Information From The A Super Class
*/
{

 switch(Attribute)
 {
  case	Cray_Image	:	return(Current->ec_Image);
  case  Cray_Name	:	return(Current->ec_ID);
 }
 return(FALSE);
}
