Topic : The ATARI Compendium
Author : Scott Sanders / JAY Software
Version : 1.25 (20/6/2003)
Subject : Documentation
Nodes : 1117
Index Size : 32614
HCP-Version : 6
Compiled on : Atari
@charset : UTF-8
@lang : en
@default :
@help : %About
@options : +g -i -t4 +y +z
@width : 100
View Ref-Fileevnt_button()evnt_keybd()evnt_mesag()evnt_mouse()Event Libraryevnt_multi() AESSyntaxWORD evnt_multi( events, bclicks, bmask, bstate, m1flag, m1x, m1y, m1w,
m1h, m2flag, m2x, m2y, m2w, m2h, msg, locount, hicount, mx, my, mb,
ks, kc, mc )
WORD events, bclicks, bmask, bstate, m1flag, m1x, m1y, m1w, m1h, m2flag,
m2x, m2y, m2w, m2h;
WORD *msg;
WORD locount, hicount;
WORD *mx, *my, *ks, *kc, *mc;
Function evnt_multi() suspends the application until a valid message
that the application is interested in occurs. This call
combines the functionality of evnt_button(), evnt_keybd(),
evnt_mesag(), evnt_mouse(), and evnt_timer() into one
call.
This call is usually the cornerstone of all GEMapplications that must process system events.
Opcode 25 (0x19)
Availability All AESversions.
Parameters events is a bit mask which tells the function which events
your application is interested in. You should logically
'OR' any of the following values together:
Name Mask Function
MU_KEYBD 0x01 Wait for a user keypress.
MU_BUTTON 0x02 Wait for the specified mouse button
state.
MU_M1 0x04 Wait for a mouse/rectangle event as
specified.
MU_M2 0x08 Wait for a mouse/rectangle event as
specified.
MU_MESAG 0x10 Wait for a message.
MU_TIMER 0x20 Wait the specified amount of time.
For usage of bclicks, bmask, bstate, mx, my, kc, and ks,
you should consult evnt_button().
For usage of m1flag, m1x, m1y, m1w, m1h, m2flag, m2x, m2y,m2w, and m2h, consult evnt_mouse().
For usage of msg, see evnt_mesag().
For usage of locount and hicount, see evnt_timer().
Binding intin[0] = events;
intin[1] = bclicks;
intin[2] = bmask;
intin[3] = bstate;
intin[4] = m1flag;
intin[5] = m1x;
intin[6] = m1y;
intin[7] = m1w;
intin[8] = m1h;
intin[9] = m2flag;
intin[10] = m2x;
intin[11] = m2y;
intin[12] = m2w;
intin[13] = m2h;
intin[14] = locount;
intin[15] = hicount;
addrin[0] = msg;
crys_if(0x19);
*mx = intout[1];
*my = intout[2];
*mb = intout[3];
*ks = intout[4];
*kc = intout[5];
*mc = intout[6];
return intout[0];
Return Value The function returns a bit mask of which events actually
happened as in events. This may be one or more events and
your application should be prepared to handle each.
Version Notes The only facet of evnt_multi() which has changed from AES version 4.0 is that which relates to evnt_mesag(). For
further information you should consult that section.
Caveats Under TOS 1.0, calling this function from a desk accessory with the MU_TIMER mask and locount and hicount being equal
to 0 could hang the system.
See Also evnt_button(), evnt_keybd(), evnt_mesag(), evnt_mouse(),
evnt_timer()Group Event Library