


gii_event(3)                   GGI                   gii_event(3)


NAME
       gii_event, gii_any_event, gii_event_type, gii_event_mask : LibGII event
       structures

SYNOPSIS
       #include <ggi/events.h>

       typedef union gii_event {

           uint8                   size;

           gii_any_event           any;
           gii_cmd_event           cmd;
           gii_expose_event        expose;
           gii_val_event           val;
           gii_key_event           key;
           gii_pmove_event         pmove;
           gii_pbutton_event       pbutton;
       } gii_event;

       #define COMMON_DATA  \
       uint8   size;           /* size of event in bytes       */\
       uint8   type;           /* type of this event           */\
       sint16  error;          /* error (for replies)          */\
       uint32  origin;         /* origin device (etc)          */\
       uint32  target;         /* target device (etc)          */\
       struct  timeval time     /* timestamp                    */

       typedef struct {

           COMMON_DATA;

       } gii_any_event;


DESCRIPTION
       Events are of type gii_event. It is an union of all of  the  structures
       for each specific type of event.

STRUCTURE MEMBERS
       All  of  the  event structures contains housekeeping information at the
       beginning, as defined by COMMON_DATA.

       Thus, by analyzing the contents of any.type, you can determine what the
       given  event  is,  and  select  the appropriate member of the gii_event
       union to access to get at the event

       The common fields found in any event structure are:

       size   Specifies the size of the given event (in bytes).


       type   An enumeration of the possible types of LibGII events (see  next
              section).



libgii-0.9.x                2004-10-05                          1





gii_event(3)                   GGI                   gii_event(3)


       error  Mainly  there to round things up to a 32-bit boundary, but could
              be used to signal an error in a send-reply sequence.


       origin A device handle: it distinguishes one input device from another.
              Other than that there's no real meaning to the number.


       target Also  a  device handle, but for distinguishes input devices when
              sending events Bto* an input device via giiEventSend(3).


       time   Indicates when the event in question  has  been  generated.  See
              gettimeofday(2) for more info on the timeval structure.



EVENT TYPES
       The  different  types  of  events are defined as an enumeration of type
       gii_event_type. The possible values are:

       o   evNothing          : event is not valid.

       o   evCommand          : report command or do action.

       o   evInformation      : notification of new information.

       o   evExposure         : exposure event.

       o   evKeyPress         : a key has been pressed.

       o   evKeyRelease       : a key has been released.

       o   evKeyRepeat        : automatically repeated keypress.

       o   evPtrRelative      : pointer movement reported in relative  coordi-
           nates.

       o   evPtrAbsolute       : pointer movement reported in absolute coordi-
           nates.

       o   evPtrButtonPress   : a pointer button has been pressed.

       o   evPtrButtonRelease : a pointer button has been released.

       o   evValRelative      : valuator change reported as a relative  value.

       o   evValAbsolute      : valuator change reported as an absolute value.


EVENT MASKS
       gii_event_mask is passed to various event handling functions  to  indi-
       cate which types of events the program is interested in. The list below
       sums the available event masks:



libgii-0.9.x                2004-10-05                          2





gii_event(3)                   GGI                   gii_event(3)


       o   emCommand        : evCommand

       o   emInformation    : evInformation

       o   emExpose         : evExpose

       o   emKeyPress       : evKeyPress

       o   emKeyRelease     : evKeyRelease

       o   emKeyRepeat      : evKeyRepeat

       o   emKey            : Any of evKeyPress, evKeyRelease or evKeyRepeat

       o   emPtrRelative    : evPtrRelative

       o   emPtrAbsolute    : evPtrAbsolute

       o   emPtrButtonPress : evPtrButtonPress

       o   emButtonRelease  : evButtonRelease

       o   emPtrMove        : Any of evPtrRelative or evPtrAbsolute

       o   emPtrButton      : Any of evPtrButtonPress or evPtrButtonRelease

       o   emPointer        : All pointer events

       o   emValRelative    : evValRelative

       o   emValAbsolute    : evValAbsolute

       o   emValuator       : Any of evValRelative or evValAbsolute

       o   emAll            : Any event type

       o   emNothing        : Matches no event type


SEE ALSO
       gii_key_event(3),       gii_pmove_event(3),       gii_pbutton_event(3),
       gii_cmd_event(3), gii_val_event(3), gii_expose_event(3)















libgii-0.9.x                2004-10-05                          3


