a1200   NEWS   APPS   DOCS   ABOUT
a1200
----
a1200
----
Autodocs
Include
 classes
 clib
 datatypes
 devices
 diskfont
 dos
 exec
 gadgets
 graphics
 hardware
 images
 intuition
  cghooks.i / .h
  classes.i / .h
  classusr.i / .h
  gadgetclass.i / .h
  icclass.i / .h
  imageclass.i / .h
  intuition.i / .h
  intuitionbase.i / .h
  iobsolete.i / .h
  pointerclass.i / .h
  preferences.i / .h
  screens.i / .h
  sghooks.i / .h
 libraries
 pragma
 pragmas
 prefs
 proto
 reaction
 resources
 rexx
 utility
 workbench
GuruMeditation
Docs » Include » intuition » gadgetclass.i / .h
    IFND INTUITION_GADGETCLASS_I
INTUITION_GADGETCLASS_I SET 1
**
** $VER: gadgetclass.i 44.1 (19.10.1999)
** Includes Release 45.1
**
** Custom and 'boopsi' gadget class interface
**
**  (C) Copyright 1989-2001 Amiga, Inc.
**	    All Rights Reserved
**

	IFND EXEC_TYPES_I
	INCLUDE "exec/types.i"
	ENDC

	IFND INTUITION_INTUITION_I
	INCLUDE "intuition/intuition.i"
	ENDC

	IFND UTILITY_TAGITEM_I
	INCLUDE "utility/tagitem.i"
	ENDC


*
* NOTE:  intuition/iobsolete.i is included at the END of this file!
*

; Gadget Class attributes

GA_Dummy		EQU	(TAG_USER+$30000)
GA_Left			EQU	(GA_Dummy+$0001)
GA_RelRight		EQU	(GA_Dummy+$0002)
GA_Top			EQU	(GA_Dummy+$0003)
GA_RelBottom		EQU	(GA_Dummy+$0004)
GA_Width		EQU	(GA_Dummy+$0005)
GA_RelWidth		EQU	(GA_Dummy+$0006)
GA_Height		EQU	(GA_Dummy+$0007)
GA_RelHeight		EQU	(GA_Dummy+$0008)
GA_Text			EQU	(GA_Dummy+$0009)  ; ti_Data is (UBYTE *)
GA_Image		EQU	(GA_Dummy+$000A)
GA_Border		EQU	(GA_Dummy+$000B)
GA_SelectRender		EQU	(GA_Dummy+$000C)
GA_Highlight		EQU	(GA_Dummy+$000D)
GA_Disabled		EQU	(GA_Dummy+$000E)
GA_GZZGadget		EQU	(GA_Dummy+$000F)
GA_ID			EQU	(GA_Dummy+$0010)
GA_UserData		EQU	(GA_Dummy+$0011)
GA_SpecialInfo		EQU	(GA_Dummy+$0012)
GA_Selected		EQU	(GA_Dummy+$0013)
GA_EndGadget		EQU	(GA_Dummy+$0014)
GA_Immediate		EQU	(GA_Dummy+$0015)
GA_RelVerify		EQU	(GA_Dummy+$0016)
GA_FollowMouse		EQU	(GA_Dummy+$0017)
GA_RightBorder		EQU	(GA_Dummy+$0018)
GA_LeftBorder		EQU	(GA_Dummy+$0019)
GA_TopBorder		EQU	(GA_Dummy+$001A)
GA_BottomBorder		EQU	(GA_Dummy+$001B)
GA_ToggleSelect		EQU	(GA_Dummy+$001C)

* internal use only, until further notice, please
GA_SysGadget		EQU	(GA_Dummy+$001D)
* bool, sets GTYP_SYSGADGET field in type
GA_SysGType		EQU	(GA_Dummy+$001E)
* e.g., GTYP_WUPFRONT, ...

GA_Previous		EQU	(GA_Dummy+$001F)
* previous gadget (or (struct Gadget **)) in linked list
* NOTE: This attribute CANNOT be used to link new gadgets
* into the gadget list of an open window or requester.
* You must use AddGList().

GA_Next			EQU	(GA_Dummy+$0020)
* not implemented

GA_DrawInfo		EQU	(GA_Dummy+$0021)
* some fancy gadgets need to see a DrawInfo
* when created or for layout

* You should use at most ONE of GA_Text, GA_IntuiText, and GA_LabelImage
GA_IntuiText		EQU	(GA_Dummy+$0022)
* ti_Data is (struct IntuiText	*)

GA_LabelImage		EQU	(GA_Dummy+$0023)
* ti_Data is an image (object), used in place of
* GadgetText

GA_TabCycle		EQU	(GA_Dummy+$0024)
* New for V37:
* Boolean indicates that this gadget is to participate in
* cycling activation with Tab or Shift-Tab.

GA_GadgetHelp		EQU	(GA_Dummy+$0025)
* New for V39:
* Boolean indicates that this gadget sends gadget-help

GA_Bounds		EQU	(GA_Dummy+$0026)
* New for V39:
* ti_Data is a pointer to an IBox structure which is
* to be copied into the extended gadget's bounds.

GA_RelSpecial		EQU	(GA_Dummy+$0027)
* New for V39:
* Boolean indicates that this gadget has the "special relativity"
* property, which is useful for certain fancy relativity
* operations through the GM_LAYOUT method.

GA_TextAttr		EQU	(GA_Dummy+40)
GA_ReadOnly		EQU	(GA_Dummy+41)
GA_Underscore		EQU	(GA_Dummy+42)
GA_ActivateKey		EQU	(GA_Dummy+43)
GA_BackFill		EQU	(GA_Dummy+44)
GA_GadgetHelpText	EQU	(GA_Dummy+45)
GA_UserInput		EQU	(GA_Dummy+46)

* PROPGCLASS attributes

PGA_Dummy		EQU	(TAG_USER+$31000)
PGA_Freedom		EQU	(PGA_Dummy+$0001)
* either or both of FREEVERT and FREEHORIZ
PGA_Borderless		EQU	(PGA_Dummy+$0002)
PGA_HorizPot		EQU	(PGA_Dummy+$0003)
PGA_HorizBody		EQU	(PGA_Dummy+$0004)
PGA_VertPot		EQU	(PGA_Dummy+$0005)
PGA_VertBody		EQU	(PGA_Dummy+$0006)
PGA_Total		EQU	(PGA_Dummy+$0007)
PGA_Visible		EQU	(PGA_Dummy+$0008)
PGA_Top			EQU	(PGA_Dummy+$0009)
; New for V37:
PGA_NewLook		EQU	(PGA_Dummy+$000A)

* STRGCLASS attributes

STRINGA_Dummy  		EQU	(TAG_USER+$32000)
STRINGA_MaxChars	EQU	(STRINGA_Dummy+$0001)
* Note:  There is a minor problem with Intuition when using boopsi integer
* gadgets (which are requested by using STRINGA_LongInt).  Such gadgets
* must not have a STRINGA_MaxChars to be bigger than 15.  Setting
* STRINGA_MaxChars for a boopsi integer gadget will cause a mismatched
* FreeMem() to occur.

STRINGA_Buffer		EQU	(STRINGA_Dummy+$0002)
STRINGA_UndoBuffer	EQU	(STRINGA_Dummy+$0003)
STRINGA_WorkBuffer	EQU	(STRINGA_Dummy+$0004)
STRINGA_BufferPos	EQU	(STRINGA_Dummy+$0005)
STRINGA_DispPos		EQU	(STRINGA_Dummy+$0006)
STRINGA_AltKeyMap	EQU	(STRINGA_Dummy+$0007)
STRINGA_Font		EQU	(STRINGA_Dummy+$0008)
STRINGA_Pens		EQU	(STRINGA_Dummy+$0009)
STRINGA_ActivePens	EQU	(STRINGA_Dummy+$000A)
STRINGA_EditHook	EQU	(STRINGA_Dummy+$000B)
STRINGA_EditModes	EQU	(STRINGA_Dummy+$000C)

* booleans
STRINGA_ReplaceMode	EQU	(STRINGA_Dummy+$000D)
STRINGA_FixedFieldMode	EQU	(STRINGA_Dummy+$000E)
STRINGA_NoFilterMode	EQU	(STRINGA_Dummy+$000F)

STRINGA_Justification	EQU	(STRINGA_Dummy+$0010)
* GACT_STRINGCENTER, GACT_STRINGLEFT, GACT_STRINGRIGHT
STRINGA_LongVal		EQU	(STRINGA_Dummy+$0011)
STRINGA_TextVal		EQU	(STRINGA_Dummy+$0012)

STRINGA_ExitHelp	EQU	(STRINGA_Dummy+$0013)
* STRINGA_ExitHelp is new for V37, and ignored by V36.
* Set this if you want the gadget to exit when Help is
* pressed.  Look for a code of 0x5F, the rawkey code for Help

SG_DEFAULTMAXCHARS	EQU	(128)

* Gadget Layout related attributes

LAYOUTA_Dummy 		EQU	(TAG_USER+$38000)
LAYOUTA_LayoutObj	EQU	(LAYOUTA_Dummy+$0001)
LAYOUTA_Spacing		EQU	(LAYOUTA_Dummy+$0002)
LAYOUTA_Orientation	EQU	(LAYOUTA_Dummy+$0003)
LAYOUTA_ChildMaxWidth	EQU	(LAYOUTA_Dummy+$0004)
LAYOUTA_ChildMaxHeight	EQU	(LAYOUTA_Dummy+$0005)

* orientation values
LORIENT_NONE		EQU	0
LORIENT_HORIZ		EQU	1
LORIENT_VERT		EQU	2

; Custom gadget hook command ID's
; (gadget class method/message ID's)

GM_HITTEST EQU		0	; return GMR_GADGETHIT if you are clicked
				; (whether or not you are disabled)
GM_RENDER EQU		1	; draw yourself, in the appropriate state
GM_GOACTIVE EQU		2	; you are now going to be fed input
GM_HANDLEINPUT EQU	3	; handle that input
GM_GOINACTIVE EQU	4	; whether or not by choice, you are done
GM_HELPTEST EQU		5	; Will you send gadget help if the mouse is
				; at the specified coordinates?  See below
				; for possible GMR_ values.
GM_LAYOUT EQU		6	; re-evaluate your size based on the GadgetInfo
				; Domain.  Do NOT re-render yourself yet, you
				; will be called when it is time...
GM_DOMAIN EQU		7
GM_KEYTEST EQU		8
GM_KEYGOACTIVE EQU	9
GM_KEYGOINACTIVE EQU	10

; Parameter "Messages" passed to gadget class methods

; All parameter structure begin with a MethodID field
; This definition of an abstract generic "message" is
; equivalent to a better one in intuition/classusr.i, but
; it's left here for historic reasons
 STRUCTURE MsgHeader,0
	ULONG	MethodID
	LABEL	methodid_SIZEOF

; GM_HITTEST and GM_HELPTEST send this message.
; For GM_HITTEST, gpht_Mouse are coordinates relative to the gadget
; select box.  For GM_HELPTEST, the coordinates are relative to
; the gadget bounding box (which defaults to the select box).
 STRUCTURE	gpHitTest,methodid_SIZEOF
    APTR	gpht_GInfo
    WORD	gpht_MouseX
    WORD	gpht_MouseY

; For GM_HITTEST, return GMR_GADGETHIT if you were indeed hit,
; otherwise return zero.
;
; For GM_HELPTEST, return GMR_NOHELPHIT (zero) if you were not hit.
; Typically, return GMR_HELPHIT if you were hit.
; It is possible to pass a UWORD to the application via the Code field
; of the IDCMP_GADGETHELP message.  Return GMR_HELPCODE or'd with
; the UWORD-sized result you wish to return.
;
; GMR_HELPHIT yields a Code value of ((UWORD) ~0), which should
; mean "nothing particular" to the application.

GMR_GADGETHIT	EQU $00000004	; GM_HITTEST hit

GMR_NOHELPHIT	EQU $00000000	; GM_HELPTEST didn't hit
GMR_HELPHIT	EQU $FFFFFFFF	; GM_HELPTEST hit, return code = ~0
GMR_HELPCODE	EQU $00010000	; GM_HELPTEST hit, return low word as code

; GM_RENDER
 STRUCTURE	gpRender,methodid_SIZEOF
    APTR	gpr_GInfo	; gadget context
    APTR	gpr_RPort	; all ready for use
    LONG	gpr_Redraw	; might be a "highlight pass"

; values of gpr_Redraw
GREDRAW_UPDATE	EQU 2	; update for change in attributesvalues
GREDRAW_REDRAW	EQU 1	; redraw gadget
GREDRAW_TOGGLE	EQU 0	; toggle highlight, if applicable

; GM_GOACTIVE, GM_HANDLEINPUT
 STRUCTURE	gpInput,methodid_SIZEOF
    APTR	gpi_GInfo
    APTR	gpi_IEvent
    APTR	gpi_Termination
    WORD	gpi_MouseX
    WORD	gpi_MouseY

    ; (V39) Pointer to TabletData structure, if this event originated
    ; from a tablet which sends IESUBCLASS_NEWTABLET events, or NULL if
    ; not.
    ;
    ; DO NOT ATTEMPT TO READ THIS FIELD UNDER INTUITION PRIOR TO V39!
    ; IT WILL BE INVALID!
    APTR	gpi_TabletData

; GM_HANDLEINPUT and GM_GOACTIVE  return code flags
; return GMR_MEACTIVE (0) alone if you want more input.
; Otherwise, return ONE of GMR_NOREUSE and GMR_REUSE, and optionally
; GMR_VERIFY.

; here are the original constant "equates"
GMR_MEACTIVE	EQU $0000	; (bugfix: was $0001 during beta)
GMR_NOREUSE	EQU $0002
GMR_REUSE	EQU $0004
GMR_VERIFY	EQU $0008	; you MUST set gpi_Termination

* New for V37:
* You can end activation with one of GMR_NEXTACTIVE and GMR_PREVACTIVE,
* which instructs Intuition to activate the next or previous gadget
* that has GFLG_TABCYCLE set.
*
GMR_NEXTACTIVE	EQU $0010
GMR_PREVACTIVE	EQU $0020

; here are standard bit/flag pairs
GMRB_NOREUSE	EQU 1
GMRB_REUSE	EQU 2
GMRB_VERIFY	EQU 3
GMRB_NEXTACTIVE	EQU 4
GMRB_PREVACTIVE	EQU 5

GMRF_NOREUSE	EQU $0002
GMRF_REUSE	EQU $0004
GMRF_VERIFY	EQU $0008
GMRF_NEXTACTIVE	EQU $0010
GMRF_PREVACTIVE	EQU $0020

; GM_GOINACTIVE
 STRUCTURE	gpGoInactive,methodid_SIZEOF
    APTR	gpgi_GInfo

* V37 field only!  DO NOT attempt to read under V36!
    ULONG	gpgi_Abort	; gpgi_Abort=1 if gadget was aborted
				; by Intuition and 0 if gadget went
				; inactive at its own request

* New for V39: Intuition sends GM_LAYOUT to any GREL_ gadget when
* the window opens, or when the gadget is activated, or when the
* window is sized.  Your gadget can set the GA_RelSpecial property
* to get GM_LAYOUT events without Intuition changing the interpretation
* of your gadget select box.

; GM_LAYOUT
 STRUCTURE	gpLayout,methodid_SIZEOF
    APTR	gpl_GInfo
    APTR	gpl_Initial	; non-zero if this method was invoked
				; during AddGList() or OpenWindow()
				; time.  zero if this method was invoked
				; during window resizing.

; GM_DOMAIN
 STRUCTURE	gpDomain,methodid_SIZEOF
    APTR	gpd_GInfo
    APTR	gpd_RPort
    LONG	gpd_Which
    STRUCT	gpd_Domain,ibox_SIZEOF
    APTR	gpd_Attrs

GDOMAIN_MINIMUM		EQU	0
GDOMAIN_NOMINAL		EQU	1
GDOMAIN_MAXIMUM		EQU	2

; GM_KEYTEST
 STRUCTURE	gpKeyTest,methodid_SIZEOF
    APTR	gpkt_GInfo
    APTR	gpkt_IMsg
    ULONG	gpkt_VanillaKey

; GM_KEYGOACTIVE
 STRUCTURE	gpKeyInput,methodid_SIZEOF
    APTR	gpk_GInfo
    APTR	gpk_IEvent
    APTR	gpk_Termination

GMR_KEYACTIVE		EQU $0010
GMR_KEYVERIFY		EQU $0020

; GM_KEYGOINACTIVE
 STRUCTURE	gpKeyGoInactive,methodid_SIZEOF
     APTR	gpki_GInfo
     ULONG	gpki_Abort


* Include obsolete identifiers:
	IFND	INTUITION_IOBSOLETE_I
	INCLUDE "intuition/iobsolete.i"
	ENDC

	ENDC

Comments

Name:
E-mail: Use this if you want a message if you get a response, will not be shown.
Comment:
Select correct short for:

Sanity

SNT
HZ
SCX
PHA

Comments:

$VER: d0.se 1.14 Copyright © 2011-2020 Tobias Geijersson support at d0 dot se