Man Linux: Main Page and Category List

NAME

       mouse_x,   mouse_y,  mouse_z,  mouse_w,  mouse_b,  mouse_pos  -  Global
       variable with the mouse position/button state. Allegro game programming
       library.

SYNOPSIS

       #include <allegro.h>

       extern volatile int mouse_x;

       extern volatile int mouse_y;

       extern volatile int mouse_z;

       extern volatile int mouse_w;

       extern volatile int mouse_b;

       extern volatile int mouse_pos;

DESCRIPTION

       Global  variables  containing  the  current  mouse  position and button
       state.  Wherever possible these values will be updated  asynchronously,
       but   if  mouse_needs_poll()  returns  TRUE,  you  must  manually  call
       poll_mouse() to update them with the current input state. The `mouse_x'
       and  `mouse_y'  positions  are integers ranging from zero to the bottom
       right corner of the screen. The `mouse_z' and `mouse_w' variables  hold
       the current vertical and horizontal wheel position, when using an input
       driver that supports wheel mice. The `mouse_b' variable is  a  bitfield
       indicating  the  state of each button: bit 0 is the left button,  bit 1
       the right, and bit 2 the middle button. Additional non  standard  mouse
       buttons  might  be  available  as  higher  bits in this variable. Usage
       example:

          if (mouse_b & 1)
             printf("Left button is pressed\n");

          if (!(mouse_b & 2))
             printf("Right button is not pressed\n");

       The `mouse_pos' variable has the current X coordinate in the  upper  16
       bits  and   the  Y  in  the  lower 16 bits. This may be useful in tight
       polling loops where a mouse interrupt could occur between your  reading
       of  the  two  separate  variables, since you can copy this value into a
       local variable with a single instruction and then split it up  at  your
       leisure. Example:

          int pos, x, y;

          pos = mouse_pos;
          x = pos >> 16;
          y = pos & 0x0000ffff;

SEE ALSO

       install_mouse(3alleg),   poll_mouse(3alleg),  mouse_needs_poll(3alleg),
       exalpha(3alleg),  exlights(3alleg),  exmouse(3alleg),  exshade(3alleg),
       exspline(3alleg), extrans(3alleg)