#ifndef INTUITION_GADGETCLASS_H
#define INTUITION_GADGETCLASS_H 1
/*
** $Filename: intuition/gadgetclass.h $
** $Release: 2.04 Includes, V37.4 $
** $Revision: 36.6 $
** $Date: 91/11/08 $
**
** Custom and 'boopsi' gadget class interface
**
** (C) Copyright 1989-1991 Commodore-Amiga, Inc.
** All Rights Reserved
*/

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif

#ifndef INTUITION_INTUITION_H
#include <intuition/intuition.h>
#endif

#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif





#define GA_Dummy (TAG_USER +0x30000)
#define GA_Left (GA_Dummy + 0x0001)
#define GA_RelRight (GA_Dummy + 0x0002)
#define GA_Top (GA_Dummy + 0x0003)
#define GA_RelBottom (GA_Dummy + 0x0004)
#define GA_Width (GA_Dummy + 0x0005)
#define GA_RelWidth (GA_Dummy + 0x0006)
#define GA_Height (GA_Dummy + 0x0007)
#define GA_RelHeight (GA_Dummy + 0x0008)
#define GA_Text (GA_Dummy + 0x0009) 
#define GA_Image (GA_Dummy + 0x000A)
#define GA_Border (GA_Dummy + 0x000B)
#define GA_SelectRender (GA_Dummy + 0x000C)
#define GA_Highlight (GA_Dummy + 0x000D)
#define GA_Disabled (GA_Dummy + 0x000E)
#define GA_GZZGadget (GA_Dummy + 0x000F)
#define GA_ID (GA_Dummy + 0x0010)
#define GA_UserData (GA_Dummy + 0x0011)
#define GA_SpecialInfo (GA_Dummy + 0x0012)
#define GA_Selected (GA_Dummy + 0x0013)
#define GA_EndGadget (GA_Dummy + 0x0014)
#define GA_Immediate (GA_Dummy + 0x0015)
#define GA_RelVerify (GA_Dummy + 0x0016)
#define GA_FollowMouse (GA_Dummy + 0x0017)
#define GA_RightBorder (GA_Dummy + 0x0018)
#define GA_LeftBorder (GA_Dummy + 0x0019)
#define GA_TopBorder (GA_Dummy + 0x001A)
#define GA_BottomBorder (GA_Dummy + 0x001B)
#define GA_ToggleSelect (GA_Dummy + 0x001C)

 
#define GA_SysGadget (GA_Dummy + 0x001D)
 
#define GA_SysGType (GA_Dummy + 0x001E)
 

#define GA_Previous (GA_Dummy + 0x001F)
 

#define GA_Next (GA_Dummy + 0x0020)
 

#define GA_DrawInfo (GA_Dummy + 0x0021)
 


#define GA_IntuiText (GA_Dummy + 0x0022)
 

#define GA_LabelImage (GA_Dummy + 0x0023)
 

#define GA_TabCycle (GA_Dummy + 0x0024)
 



#define PGA_Dummy (TAG_USER + 0x31000)
#define PGA_Freedom (PGA_Dummy + 0x0001)
 
#define PGA_Borderless (PGA_Dummy + 0x0002)
#define PGA_HorizPot (PGA_Dummy + 0x0003)
#define PGA_HorizBody (PGA_Dummy + 0x0004)
#define PGA_VertPot (PGA_Dummy + 0x0005)
#define PGA_VertBody (PGA_Dummy + 0x0006)
#define PGA_Total (PGA_Dummy + 0x0007)
#define PGA_Visible (PGA_Dummy + 0x0008)
#define PGA_Top (PGA_Dummy + 0x0009)

#define PGA_NewLook (PGA_Dummy + 0x000A)



#define STRINGA_Dummy (TAG_USER +0x32000)
#define STRINGA_MaxChars (STRINGA_Dummy + 0x0001)
#define STRINGA_Buffer (STRINGA_Dummy + 0x0002)
#define STRINGA_UndoBuffer (STRINGA_Dummy + 0x0003)
#define STRINGA_WorkBuffer (STRINGA_Dummy + 0x0004)
#define STRINGA_BufferPos (STRINGA_Dummy + 0x0005)
#define STRINGA_DispPos (STRINGA_Dummy + 0x0006)
#define STRINGA_AltKeyMap (STRINGA_Dummy + 0x0007)
#define STRINGA_Font (STRINGA_Dummy + 0x0008)
#define STRINGA_Pens (STRINGA_Dummy + 0x0009)
#define STRINGA_ActivePens (STRINGA_Dummy + 0x000A)
#define STRINGA_EditHook (STRINGA_Dummy + 0x000B)
#define STRINGA_EditModes (STRINGA_Dummy + 0x000C)


#define STRINGA_ReplaceMode (STRINGA_Dummy + 0x000D)
#define STRINGA_FixedFieldMode (STRINGA_Dummy + 0x000E)
#define STRINGA_NoFilterMode (STRINGA_Dummy + 0x000F)

#define STRINGA_Justification (STRINGA_Dummy + 0x0010)
 
#define STRINGA_LongVal (STRINGA_Dummy + 0x0011)
#define STRINGA_TextVal (STRINGA_Dummy + 0x0012)

#define STRINGA_ExitHelp (STRINGA_Dummy + 0x0013)
 

#define SG_DEFAULTMAXCHARS (128)



#define LAYOUTA_Dummy (TAG_USER + 0x38000)
#define LAYOUTA_LayoutObj (LAYOUTA_Dummy + 0x0001)
#define LAYOUTA_Spacing (LAYOUTA_Dummy + 0x0002)
#define LAYOUTA_Orientation (LAYOUTA_Dummy + 0x0003)


#define LORIENT_NONE 0
#define LORIENT_HORIZ 1
#define LORIENT_VERT 2




#define GM_Dummy (-1) 
#define GM_HITTEST (0) 
#define GM_RENDER (1) 
#define GM_GOACTIVE (2) 
#define GM_HANDLEINPUT (3) 
#define GM_GOINACTIVE (4) 




struct gpHitTest {
 ULONG MethodID;
 struct GadgetInfo *gpht_GInfo;
 struct {
 WORD X;
 WORD Y;
 } gpht_Mouse;
};

#define GMR_GADGETHIT (0x00000004) 


struct gpRender {
 ULONG MethodID;
 struct GadgetInfo *gpr_GInfo; 
 struct RastPort *gpr_RPort; 
 LONG gpr_Redraw; 
};


#define GREDRAW_UPDATE (2) 
#define GREDRAW_REDRAW (1) 
#define GREDRAW_TOGGLE (0) 


struct gpInput {
 ULONG MethodID;
 struct GadgetInfo *gpi_GInfo;
 struct InputEvent *gpi_IEvent;
 LONG *gpi_Termination;
 struct {
 WORD X;
 WORD Y;
 } gpi_Mouse;
};



#define GMR_MEACTIVE (0)
#define GMR_NOREUSE (1 << 1)
#define GMR_REUSE (1 << 2)
#define GMR_VERIFY (1 << 3) 


#define GMR_NEXTACTIVE (1 << 4)
#define GMR_PREVACTIVE (1 << 5)


struct gpGoInactive {
 ULONG MethodID;
 struct GadgetInfo *gpgi_GInfo;

 
 ULONG gpgi_Abort; 
};



#ifndef INTUITION_IOBSOLETE_H
#include <intuition/iobsolete.h>
#endif

#endif
