1 #ifndef  CLIB_MUIMASTER_PROTOS_H
    2 #define  CLIB_MUIMASTER_PROTOS_H
    3 
    4 /*
    5 	muimaster.library C prototypes
    6 
    7 	Copyright © 2002-2020 Stefan Stuntz & The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #if defined(__ixemul__) && !defined(__IXEMUL_EXEC_MIXING_ALLOWED)
   11 # error "Mixing ixemul and native library calls is not supported. Native application should be built with -noixemul"
   12 #endif
   13 
   14 #ifndef EXEC_TYPES_H
   15 #include <exec/types.h>
   16 #endif
   17 #ifndef INTUITION_CLASSES_H
   18 #include <intuition/classes.h>
   19 #endif
   20 #ifndef UTILITY_TAGITEM_H
   21 #include <utility/tagitem.h>
   22 #endif
   23 #ifndef LIBRARIES_MUI_H
   24 #include <libraries/mui.h>
   25 #endif
   26 
   27 #ifdef __cplusplus
   28 extern "C" {
   29 #endif
   30 
   31 /****************************************/
   32 /* functions to be used in applications */
   33 /****************************************/
   34 
   35 Boopsiobject *MUI_NewObjectA         (char *classname,struct TagItem *tags);
   36 #if !defined(USE_INLINE_STDARG)
   37 Boopsiobject *MUI_NewObject          (char *classname,Tag tag1,...);
   38 #endif
   39 Boopsiobject *MUI_MakeObjectA        (LONG type,ULONG *params);
   40 #if !defined(USE_INLINE_STDARG)
   41 Boopsiobject *MUI_MakeObject         (LONG type,...);
   42 #endif
   43 VOID    MUI_DisposeObject      (Boopsiobject *obj);
   44 LONG    MUI_RequestA           (APTR app,APTR win,LONGBITS flags,char *title,char *gadgets,char *format,APTR params);
   45 LONG    MUI_RequestObjectA     (APTR app,APTR win,LONGBITS flags,char *title,char *gadgets,Boopsiobject *obj,char *format,APTR params);
   46 #if !defined(USE_INLINE_STDARG)
   47 LONG    MUI_Request            (APTR app,APTR win,LONGBITS flags,char *title,char *gadgets,char *format,...);
   48 LONG    MUI_RequestObject      (APTR app,APTR win,LONGBITS flags,char *title,char *gadgets,Boopsiobject *obj,char *format,...);
   49 #endif
   50 LONG    MUI_Error              (VOID);
   51 APTR    MUI_AllocAslRequest    (unsigned long reqType, struct TagItem *tagList);
   52 #if !defined(USE_INLINE_STDARG)
   53 APTR    MUI_AllocAslRequestTags(unsigned long reqType, Tag Tag1, ...);
   54 #endif
   55 VOID    MUI_FreeAslRequest     (APTR requester );
   56 BOOL    MUI_AslRequest         (APTR requester, struct TagItem *tagList);
   57 #if !defined(USE_INLINE_STDARG)
   58 BOOL    MUI_AslRequestTags     (APTR requester, Tag Tag1, ...);
   59 #endif
   60 
   61 /******************************************/
   62 /* functions to be used in custom classes */
   63 /******************************************/
   64 
   65 LONG                    MUI_SetError         (LONG num);
   66 struct IClass *         MUI_GetClass         (char *classname);
   67 VOID                    MUI_FreeClass        (struct IClass *classptr);
   68 VOID                    MUI_RequestIDCMP     (Boopsiobject *obj,ULONG flags);
   69 VOID                    MUI_RejectIDCMP      (Boopsiobject *obj,ULONG flags);
   70 VOID                    MUI_Redraw           (Boopsiobject *obj,ULONG flags);
   71 APTR                    MUI_AddClipping      (struct MUI_RenderInfo *mri,WORD left,WORD top,WORD width,WORD height);
   72 VOID                    MUI_RemoveClipping   (struct MUI_RenderInfo *mri,APTR handle);
   73 APTR                    MUI_AddClipRegion    (struct MUI_RenderInfo *mri,struct Region *r);
   74 VOID                    MUI_RemoveClipRegion (struct MUI_RenderInfo *mri,APTR handle);
   75 BOOL                    MUI_BeginRefresh     (struct MUI_RenderInfo *mri,ULONG flags);
   76 VOID                    MUI_EndRefresh       (struct MUI_RenderInfo *mri,ULONG flags);
   77 struct MUI_CustomClass *MUI_CreateCustomClass(struct Library *base,char *supername,struct MUI_CustomClass *supermcc,int datasize,APTR dispatcher);
   78 BOOL                    MUI_DeleteCustomClass(struct MUI_CustomClass *mcc);
   79 LONG                    MUI_ObtainPen        (struct MUI_RenderInfo *mri,struct MUI_PenSpec *spec,ULONG flags);
   80 VOID                    MUI_ReleasePen       (struct MUI_RenderInfo *mri,LONG pen);
   81 LONG                    MUI_GetRGBColor      (const struct MUI_RenderInfo *mri, const struct MUI_PenSpec *spec, ULONG *color);
   82 
   83 /*************************************************************/
   84 /* layout function, use only in custom layout callback hook! */
   85 /*************************************************************/
   86 
   87 BOOL MUI_Layout(Boopsiobject *obj,LONG left,LONG top,LONG width,LONG height,ULONG flags);
   88 
   89 #ifdef __cplusplus
   90 }
   91 #endif
   92 
   93 #endif /* CLIB_MUIMASTER_PROTOS_H */