IFND LIBRARIES_COMMODITIES_I LIBRARIES_COMMODITIES_I SET 1 ** $Filename: libraries/commodities.i $ ** $Release: 2.04 Includes, V37.4 $ ** $Revision: 37.0 $ ** $Date: 91/04/15 $ ** ** Commodities definitions ** ** (C) Copyright 1988-1999 Amiga, Inc. ** All Rights Reserved *-----------------------------------------------------------* IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND DEVICES_INPUTEVENT_I INCLUDE "devices/inputevent.i" ENDC *************** * Broker stuff *************** * buffer sizes CBD_NAMELEN EQU 24 CBD_TITLELEN EQU 40 CBD_DESCRLEN EQU 40 * CxBroker errors CBERR_OK EQU 0 ; No error CBERR_SYSERR EQU 1 ; System error , no memory, etc CBERR_DUP EQU 2 ; uniqueness violation CBERR_VERSION EQU 3 ; didn't understand nb_VERSION NB_VERSION EQU 5 ; Version of NewBroker structure STRUCTURE NewBroker,0 BYTE nb_Version ; set to NB_VERSION BYTE nb_Reserve1 ; for alignment APTR nb_Name APTR nb_Title APTR nb_Descr WORD nb_Unique WORD nb_Flags BYTE nb_Pri BYTE nb_Reserve2 ; for alignment APTR nb_Port WORD nb_ReservedChannel ;plans for later port sharing *********************** * Flags for nb_Unique *********************** NBU_DUPLICATE EQU 0 NBU_UNIQUE EQU 1 ; will not allow duplicates NBU_NOTIFY EQU 2 ; sends CXM_UNIQUE to existing broker * Flags for nb_Flags COF_SHOW_HIDE EQU 4 ******** * cxusr ******** ******************************** ** Commodities Object Types ** ******************************** CX_INVALID EQU 0 ; not a valid object (probably null) CX_FILTER EQU 1 ; input event messages only CX_TYPEFILTER EQU 2 ; filter on message type CX_SEND EQU 3 ; sends a message CX_SIGNAL EQU 4 ; sends a signal CX_TRANSLATE EQU 5 ; translates IE into chain CX_BROKER EQU 6 ; application representative CX_DEBUG EQU 7 ; dumps kprintf to serial port CX_CUSTOM EQU 8 ; application provids function CX_ZERO EQU 9 ; system terminator node ***************** ** CxMsg types ** ***************** CXM_UNIQUE EQU $10 ; (1 << 4) sent down broker by CxBroker() ; Obsolete: subsumed by CXM_COMMAND (below) * Messages of this type rattle around the Commodities input network. * They will be sent to you by a Sender object, and passed to you * as a synchronous function call by a Custom object. * * The message port or function entry point is stored in the object, * and the ID field of the message will be set to what you arrange * issuing object. * * The Data field will point to the input event triggering the * message. CXM_IEVENT EQU $20 ;(1 << 5) * These messages are sent to a port attached to your Broker. * They are sent to you when the controller program wants your * program to do something. The ID field identifies the command. * * The Data field will be used later. * CXM_COMMAND EQU $40 ;(1 << 6) * ID values CXCMD_DISABLE EQU 15 ; please disable yourself CXCMD_ENABLE EQU 17 ; please enable yourself CXCMD_APPEAR EQU 19 ; open your window, if you can CXCMD_DISAPPEAR EQU 21 ; go dormant CXCMD_KILL EQU 23 ; go away for good CXCMD_UNIQUE EQU 25 ; someone tried to create a brok ; with your name. Suggest you Appear. CXCMD_LIST_CHG EQU 27 ; Used by Exchange program. Someone ; has changed the broker list * return values for BrokerCommand() CMDE_OK EQU 0 CMDE_NOBROKER EQU -1 CMDE_NOPORT EQU -2 CMDE_NOMEM EQU -3 * IMPORTANT NOTE: * Only CXM_IEVENT messages are passed through the input network. * * Other types of messages are sent to an optional port in your broker. * * This means that you must test the message type in your message handling, * if input messages and command messages come to the same port. * * Older programs have no broker port, so processing loops which * make assumptions about type won't encounter the new message types. * * The TypeFilter CxObject is hereby obsolete. * * It is less convenient for the application, but eliminates testing * for type of input messages. ********************************************************** ** CxObj Error Flags (return values from CxObjError()) ** ********************************************************** COERR_ISNULL EQU 1 ; you called CxError(NULL) COERR_NULLATTACH EQU 2 ; someone attached NULL to my list COERR_BADFILTER EQU 4 ; a bad filter description was given COERR_BADTYPE EQU 8 ; unmatched type-specific operation ****************************** * Input Expression structure * ****************************** IX_VERSION EQU 2 STRUCTURE InputXpression,0 UBYTE ix_Version ; must be set to IX_VERSION UBYTE ix_Class ; class must match exactly UWORD ix_Code ; Bits that we want UWORD ix_CodeMask ; Set bits here to indicate ; which bits in ix_Code are ; don't care bits. UWORD ix_Qualifier ; Bits that we want UWORD ix_QualMask ; Set bits here to indicate ; which bits in ix_Qualifier ; are don't care bits UWORD ix_QualSame ; synonyms in qualifier LABEL ix_SIZEOF * QualSame identifiers IXSYM_SHIFT EQU 1 ; left- and right- shift are equivalent IXSYM_CAPS EQU 2 ; either shift or caps lock are equivalent IXSYM_ALT EQU 4 ; left- and right- alt are equivalent * corresponding QualSame masks IXSYM_SHIFTMASK EQU IEQUALIFIER_LSHIFT!IEQUALIFIER_RSHIFT IXSYM_CAPSMASK EQU IXSYM_SHIFTMASK!IEQUALIFIER_CAPSLOCK IXSYM_ALTMASK EQU IEQUALIFIER_LALT!IEQUALIFIER_RALT IX_NORMALQUALS EQU $7FFF ;for QualMask field: avoid RELATIVEMOUSE ENDC ; LIBRARIES_COMMODITIES_I