2 Copyright © 2002-2007, The AROS Development Team. All rights reserved.
6 #include <proto/exec.h>
7 #include <proto/intuition.h>
8 #include <proto/graphics.h>
10 #include <proto/muimaster.h>
11 #include <proto/utility.h>
14 #include "muimaster_intern.h"
16 #include "support_classes.h"
18 /*****************************************************************************
21 AROS_LH5(struct MUI_CustomClass
*, MUI_CreateCustomClass
,
24 AROS_LHA(struct Library
*, base
, A0
),
25 AROS_LHA(ClassID
, supername
, A1
),
26 AROS_LHA(struct MUI_CustomClass
*, supermcc
, A2
),
27 AROS_LHA(ULONG
, datasize
, D0
),
28 AROS_LHA(APTR
, dispatcher
, A3
),
31 struct Library
*, MUIMasterBase
, 18, MUIMaster
)
49 *****************************************************************************/
53 struct MUI_CustomClass
*mcc
;
54 struct IClass
*cl
, *super
;
57 if ((supername
== NULL
) && (supermcc
== NULL
))
62 super
= MUI_GetClass(supername
);
63 if (!super
) return NULL
;
65 else super
= supermcc
->mcc_Class
;
67 if (!(mcc
= mui_alloc_struct(struct MUI_CustomClass
)))
71 id
= FilePart(((struct Node
*)base
)->ln_Name
);
73 if (!(cl
= MakeClass(id
, NULL
, super
, datasize
, 0)))
79 mcc
->mcc_UtilityBase
= (struct Library
*)UtilityBase
;
80 mcc
->mcc_DOSBase
= (struct Library
*)DOSBase
;
81 mcc
->mcc_GfxBase
= (struct Library
*)GfxBase
;
82 mcc
->mcc_IntuitionBase
= (struct Library
*)IntuitionBase
;
85 mcc
->mcc_Super
= super
;
86 mcc
->mcc_Module
= NULL
; /* _zune_class_load() will set this */
88 #if defined(__MAXON__) || defined(__amigaos4__)
89 cl
->cl_Dispatcher
.h_Entry
= (HOOKFUNC
)dispatcher
;
91 cl
->cl_Dispatcher
.h_Entry
= (HOOKFUNC
)metaDispatcher
;
92 cl
->cl_Dispatcher
.h_SubEntry
= (HOOKFUNC
)dispatcher
;
94 cl
->cl_Dispatcher
.h_Data
= base
;
99 } /* MUIA_CreateCustomClass */