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_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:
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 indicate which types of events the program is interested in. The list below
sums the available event masks:
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