•  Back 
  •  Event Library 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  %About 
  •  Show info about hypertext 
  •  View a new file 
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 Library
evnt_multi()                                                            AES

Syntax

WORD 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 GEM
               applications that must process system events.

Opcode         25 (0x19)

Availability   All AES versions.

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