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_t                 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_t   size;           /* size of event in bytes       */\
uint8_t   type;           /* type of this event           */\
int16_t   error;          /* error (for replies)          */\
uint32_t  origin;         /* origin device (etc)          */\
uint32_t  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).
    
 
   
  - 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 to 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:
  - •
 
  - evNothing : event is not valid.
 
  - •
 
  - evCommand : report command or do action.
 
  - •
 
  - evInformation : notification of new
    information.
 
  - •
 
  - evExposure : exposure event.
 
  - •
 
  - evKeyPress : a key has been pressed.
 
  - •
 
  - evKeyRelease : a key has been released.
 
  - •
 
  - evKeyRepeat : automatically repeated keypress.
 
  - •
 
  - evPtrRelative : pointer movement reported in
      relative coordinates.
 
  - •
 
  - evPtrAbsolute : pointer movement reported in
      absolute coordinates.
 
  - •
 
  - evPtrButtonPress : a pointer button has been
      pressed.
 
  - •
 
  - evPtrButtonRelease : a pointer button has been
      released.
 
  - •
 
  - evValRelative : valuator change reported as a
      relative value.
 
  - •
 
  - evValAbsolute : valuator change reported as an
      absolute value.
 
EVENT MASKS¶
gii_event_mask is passed to various event handling functions to indicate
  which types of events the program is interested in. The list below sums the
  available event masks:
  - •
 
  - emCommand : evCommand
 
  - •
 
  - emInformation : evInformation
 
  - •
 
  - emExpose : evExpose
 
  - •
 
  - emKeyPress : evKeyPress
 
  - •
 
  - emKeyRelease : evKeyRelease
 
  - •
 
  - emKeyRepeat : evKeyRepeat
 
  - •
 
  - emKey : Any of evKeyPress,
      evKeyRelease or evKeyRepeat
 
  - •
 
  - emPtrRelative : evPtrRelative
 
  - •
 
  - emPtrAbsolute : evPtrAbsolute
 
  - •
 
  - emPtrButtonPress : evPtrButtonPress
 
  - •
 
  - emButtonRelease : evButtonRelease
 
  - •
 
  - emPtrMove : Any of evPtrRelative or
      evPtrAbsolute
 
  - •
 
  - emPtrButton : Any of evPtrButtonPress or
      evPtrButtonRelease
 
  - •
 
  - emPointer : All pointer events
 
  - •
 
  - emValRelative : evValRelative
 
  - •
 
  - emValAbsolute : evValAbsolute
 
  - •
 
  - emValuator : Any of evValRelative or
      evValAbsolute
 
  - •
 
  - emAll : Any event type
 
  - •
 
  - 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)