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

 $AUT Holger Burkarth
 $DAT >>pGadget2.h<<   08 Mar 1997    09:02:46 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PEXEC_LIST_H
#include <pExec/List.h>
#endif


#ifdef __cplusplus
extern "C" {
#endif

/*------ GadgetBase  -------------------------------------------------------*/
BOOL pOS_GadgetHandleIEvent(_R_A0 struct pOS_IntuiUnit*,_R_A1 struct pOS_InputEvent*);
VOID pOS_CalcGadgetBox(_R_A0 const struct pOS_Window*,_R_A1 const struct pOS_Gadget*,_R_A2 struct pOS_Rectangle*);
VOID pOS_CalcGadgetInnerBox(_R_A0 const struct pOS_Window*,_R_A1 const struct pOS_Gadget*,_R_A2 struct pOS_Rectangle*);
VOID pOS_CalcGadgetInnerBox2(_R_A0 const struct pOS_Window*,_R_A1 const struct pOS_Gadget*,_R_A2 struct pOS_Rectangle*);
VOID pOS_DrawGadget(_R_A0 const struct pOS_Gadget*,_R_A1 struct pOS_GadgetMethod*,_R_D0 ULONG mode);
__ARID__ APTR pOS_NewGObjectA(_R_A0 struct pOS_NClass*,_R_A1 const CHAR*,_R_D0 ULONG,_R_A2 const struct pOS_TagItem*);
VOID pOS_DisposeGObject(_R_A0 __ARID__ APTR);
struct pOS_RastPort *pOS_ObtainGRastPort(_R_A0 const struct pOS_Gadget*,_R_A1 const struct pOS_IClassInfo*);
VOID pOS_ReleaseGRastPort(_R_A0 const struct pOS_IClassInfo*,_R_A1 struct pOS_RastPort*);
struct pOS_Gadget* pOS_GadgetHitTest(_R_A0 struct pOS_GadgetMethod*,_R_A1 const struct pOS_Gadget*);
struct pOS_Gadget* pOS_GadgetHitTestC(_R_A0 const struct pOS_GadgetMethod*,_R_A1 const struct pOS_Gadget*,_R_D0 ULONG mode);
const CHAR* pOS_LinkGadHelpIDs(_R_A0 struct pOS_Screen*,_R_A1 const struct pOS_Point*,_R_A2 CHAR*,_R_D0 size_t,_R_D1 ULONG level);
VOID pOS_AddLinkGadHelpID(_R_A0 struct pOS_GadgetMethod*,_R_A1 const CHAR*);
ULONG pOS_AddLinkGadHelpAll(_R_A0 const struct pOS_Gadget*,_R_A1 struct pOS_GadgetMethod*);
VOID pOS_CalcRelMousePoint(_R_A0 const struct pOS_Gadget*,_R_A1 const struct pOS_Window*,_R_A2 const struct pOS_Point* ap,_R_A3 struct pOS_Point* rel);
VOID pOS_GadgetDeleteDragList(_R_A0 struct pOS_DragList*);
struct pOS_Gadget* pOS_GadgetDropTest(_R_A0 struct pOS_GadgetMethod*,_R_A1 const struct pOS_Gadget*);
BOOL pOS_GadgetDropIEvent(_R_A0 struct pOS_IntuiUnit*,_R_A1 struct pOS_InputEvent*,_R_A2 struct pOS_DragList*);
VOID pOS_DrawDisableRect(_R_A0 struct pOS_RastPort*,_R_D0 SLONG x1,_R_D1 SLONG y1,_R_D2 SLONG x2,_R_D3 SLONG y2);
BOOL pOS_IsGadgetMember(_R_A0 const struct pOS_Gadget* grpGad,_R_A1 const struct pOS_Gadget* membGad);

__ARID__
struct pOS_GadgetItem* pOS_CreateGadgetItemA(_R_A0 struct pOS_GadgetTagManage*,_R_A1 const struct pOS_GadgetTagItem*,_R_A2 const struct pOS_TagItem*);
__ARID__
struct pOS_GadgetTagManage* pOS_CreateGadgetItemsA(_R_A0 const struct pOS_GadgetTagItem*,_R_A1 const struct pOS_TagItem*);
VOID pOS_DeleteGadgetItems(_R_A0 __ARID__ struct pOS_GadgetTagManage*);
struct pOS_Gadget* pOS_GetSuccGadget(_R_A0 const struct pOS_Window*,_R_A1 const struct pOS_Gadget*);
struct pOS_Gadget* pOS_GetPredGadget(_R_A0 const struct pOS_Window*,_R_A1 const struct pOS_Gadget*);
VOID pOS_CalcGadgetInner(_R_A0 const struct pOS_Window*,_R_A1 const struct pOS_Gadget*,_R_A2 struct pOS_Rectangle*,_R_D0 ULONG flags);



__ARID__ APTR pOS_NewGObject(_R_A0 struct pOS_NClass*,_R_A1 const CHAR*,_R_D0 ULONG,ULONG tag,...);
__ARID__ struct pOS_GadgetItem* pOS_CreateGadgetItem(_R_A0 struct pOS_GadgetTagManage*,_R_A1 const struct pOS_GadgetTagItem*,ULONG tag,...);
__ARID__ struct pOS_GadgetTagManage* pOS_CreateGadgetItems(_R_A0 const struct pOS_GadgetTagItem*,ULONG tag,...);



#ifdef __cplusplus
}
#endif

#endif
