#ifndef __INC_POS_PINTUI_ICLASS_H
#define __INC_POS_PINTUI_ICLASS_H
/*******************************************************************
 Includes Release 24
 (C) Copyright 1995-1997 proDAD
     All Rights Reserved

 $AUT Holger Burkarth
 $DAT >>IClass.h<<   05 Aug 1996    08:12:27 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PEXEC_CLASS_H
#include <pExec/Class.h>
#endif
#ifndef __INC_POS_PINTUI_ICI_H
#include <pIntui/ICI.h>
#endif

/*----------------------------------
-----------------------------------*/
struct pOS_IntuiMethod
{
  ULONG  imth_Method;  /* (enum pOS_IntuiClassMethods) */

  union {
    struct { /* ICLMTH_New */
            ULONG               *imnw_Pad;
      const struct pOS_TagItem  *imnw_Tags;
    } imth_New;

    /* ICLMTH_Dispose */

    struct { /* ICLMTH_Set */
      const struct pOS_IClassInfo *imst_Info;
      const struct pOS_TagItem    *imst_Tags;
    } imth_Set;

    struct { /* ICLMTH_Notify */
      const struct pOS_IClassInfo *imny_Info;
      const struct pOS_TagItem    *imny_Tags;
            ULONG                  imny_Flags;
    } imth_Notify;

    struct { /* ICLMTH_Update */
      const struct pOS_IClassInfo *imud_Info;
      const struct pOS_TagItem    *imud_Tags;
            ULONG                  imud_Flags;
    } imth_Update;

    struct { /* ICLMTH_Get */
            ULONG    imgt_ID;
            ULONG   *imgt_Variable;
    } imth_Get;

  } imth_U;
};


enum pOS_IntuiClassMethods
{
  ICLMTH_Dummy=0x100,
  ICLMTH_New,           /* construct */
  ICLMTH_Dispose,       /* destruct */
  ICLMTH_Set,           /* set attributes (in tag list) */
  ICLMTH_Get,           /* return single attribute value */
  ICLMTH_Notify,        /* */
  ICLMTH_Update         /* update object */
};



#endif
