*** classusr.i **************************************************************
*
*  For application users of Intuition object classes
*
*  $Id: classusr.i,v 1.3 90/05/01 14:10:15 jimm Exp $
*
*  Confidential Information: Commodore-Amiga, Inc.
*  Copyright (C) 1989, 1990 Commodore-Amiga, Inc.
*  All Rights Reserved
*
****************************************************************************/


    IFND INTUITION_CLASSUSR_I
INTUITION_CLASSUSR_I SET 1


    IFND UTILITY_HOOKS_I
    INCLUDE 'utility/hooks.i'
    ENDC

* beginning of "method message" passed to class dispatchers
 STRUCTURE Msg,0
    ULONG msg_MethodID
    ; method-specific data follows, some examples below

* class id's for Intuition basic classes
* (see classusr.h and use the strings, don't worry about the macros

* dispatched method ID's
* NOTE: Applications should use Intuition entry points, not these,
* for NewObject, DisposeObject, SetAttrs, SetGadgetAttrs, and GetAttr.

    ENUM $101
    EITEM OM_NEW		; 'o' parameter is "true class"
    EITEM OM_DISPOSE		; delete self (no parameters)
    EITEM OM_SET		; set attribute (list)
    EITEM OM_GET		; return single attribute value	
    EITEM OM_ADDTAIL		; add self to a List
    EITEM OM_REMOVE		; remove self from list (no parameters)
    EITEM OM_NOTIFY		; send to self: notify dependents
    EITEM OM_UPDATE		; notification message from someone
    EITEM OM_ADDMEMBER		; used by various classes with lists
    EITEM OM_REMMEMBER		; used by various classes with lists

* Parameter Fardels (Messages)

* OM_NEW and OM_SET
 STRUCTURE opSet,4
    ; ULONG		MethodI
    APTR		ops_AttrList	; new attributes
    APTR		ops_GInfo	; always there for gadgets,
					; but will be NULL for OM_NEW

* OM_NOTIFY, and OM_UPDATE
 STRUCTURE opUpdate,4
    ; ULONG		MethodID
    APTR		opu_AttrList	; new attributes
    APTR		opu_GInfo	; always there for gadgets,
					; but will be NULL for OM_NEW
    ULONG		opu_Flags	; defined below	

* this flag means that the update message is being issued from
* something like an active gadget, ala FOLLOWMOUSE.  When
* the gadget goes inactive, it will issue a final update
* message with this bit cleared.  Examples of use are for
* FOLLOWMOUSE equivalents for propgadclass, and repeat strobes
* for buttons.

OPUB_INTERIM	EQU 	0
OPUF_INTERIM	EQU 	1

* OM_GET
 STRUCTURE opGet,4
    ; ULONG		MethodID
    ULONG		opg_AttrID
    APTR		opg_Storage	; may be other types, but "int"
					; types are all ULONG

* OM_ADDTAIL
 STRUCTURE opAddTail,4
    ; ULONG		MethodID
    APTR		opat_List

* OM_ADDMEMBER, OM_REMMEMBER

 STRUCTURE opMember,4
    ; ULONG		MethodID
    APTR		opam_Object

 ENDC	; IFND INTUITION_CLASSUSR_I
