#ifndef INTUITION_CLASSUSR_H
#define INTUITION_CLASSUSR_H 1
/*
** $Filename: intuition/classusr.h $
** $Release: 2.04 Includes, V37.4 $
** $Revision: 36.2 $
** $Date: 91/11/08 $
**
** For application users of Intuition object classes
**
** (C) Copyright 1989-1991 Commodore-Amiga, Inc.
** All Rights Reserved
*/


#ifndef UTILITY_HOOKS_H
#include <utility/hooks.h>
#endif


typedef ULONG Object; 

typedef UBYTE *ClassID;


typedef struct {
 ULONG MethodID;
 
} *Msg;


#define ROOTCLASS "rootclass" 
#define IMAGECLASS "imageclass" 
#define FRAMEICLASS "frameiclass"
#define SYSICLASS "sysiclass"
#define FILLRECTCLASS "fillrectclass"
#define GADGETCLASS "gadgetclass" 
#define PROPGCLASS "propgclass"
#define STRGCLASS "strgclass"
#define BUTTONGCLASS "buttongclass"
#define FRBUTTONCLASS "frbuttonclass"
#define GROUPGCLASS "groupgclass"
#define ICCLASS "icclass" 
#define MODELCLASS "modelclass"




#define OM_Dummy (0x100)
#define OM_NEW (0x101) 
#define OM_DISPOSE (0x102) 
#define OM_SET (0x103) 
#define OM_GET (0x104) 
#define OM_ADDTAIL (0x105) 
#define OM_REMOVE (0x106) 
#define OM_NOTIFY (0x107) 
#define OM_UPDATE (0x108) 
#define OM_ADDMEMBER (0x109) 
#define OM_REMMEMBER (0x10A) 




struct opSet {
 ULONG MethodID;
 struct TagItem *ops_AttrList; 
 struct GadgetInfo *ops_GInfo; 
};


struct opUpdate {
 ULONG MethodID;
 struct TagItem *opu_AttrList; 
 struct GadgetInfo *opu_GInfo; 
 ULONG opu_Flags; 
};


#define OPUF_INTERIM (1<<0)


struct opGet {
 ULONG MethodID;
 ULONG opg_AttrID;
 ULONG *opg_Storage; 
};


struct opAddTail {
 ULONG MethodID;
 struct List *opat_List;
};


#define opAddMember opMember
struct opMember {
 ULONG MethodID;
 Object *opam_Object;
};


#endif
