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

 $AUT Holger Burkarth
 $DAT >>MClass.h<<   03 Nov 1996    13:25:22 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PINTUI_ICLASS_H
#include <pIntui/IClass.h>
#endif
#ifndef __INC_POS_PLAYER_RECT_H
#include <pLayer/Rect.h>
#endif


/*----------------------------------
-----------------------------------*/
struct pOS_MenuMethod
{
  ULONG  imth_Method;

  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_Get */
            ULONG    imgt_ID;
            ULONG   *imgt_Variable;
    } imth_Get;


/********************************************/

    struct { /* MCLMTH_Render */
      const struct pOS_IClassInfo *imre_Info;
            ULONG                  imre_Type;     /* (enum pOS_MenuClassRender) */
            ULONG                  imre_NewTick;  /* wird bei GCLMTHRE_TickFrame verwendet */
            ULONG                  imre_OldTick;  /* Anzahl der IntuiTicks*100 => 1/1000 sec. */
    } imth_Render;

    struct { /* MCLMTH_HandleInput */
      const struct pOS_IClassInfo *imhi_Info;
      const struct pOS_InputEvent *imhi_IE;
      const struct pOS_Point      *imhi_RMouse; /* relativ */
    } imth_HandleInput;

  } imth_U;
};




enum pOS_MenuClassRender
{
  MCLMTHRE_Update=1,    /* incremental update */
  MCLMTHRE_Redraw,      /* redraw */
  MCLMTHRE_Toggle,      /* toggle highlight */
  MCLMTHRE_TickFrame,   /* next Frame# */

  MCLMTHRE_DrawSub=16,  /* draw SubMenu */
  MCLMTHRE_ClearSub     /* SubMenu-Hintergrund wiederherstellen */
};



enum pOS_MenuClassResult
{
  MCLMTHR_None=0,

  MCLMTHR_Activate=   0x0001,
  MCLMTHR_AbortIE=    0x0002,   /* InputEvent wird nicht weitergereicht */
  MCLMTHR_InputDone=  0x0004    /* InputHandle beenden */
};


enum pOS_MenuClassMethods
{
  MCLMTH_Dummy=1,

  MCLMTH_Pad1,
  MCLMTH_Render,        /* draw yourself, in the appropriate state */
  MCLMTH_Pad2,
  MCLMTH_HandleInput    /* handle that input */
};





 struct pOS_MenuDraw {VOID* private; };



#endif
