gii_event_type

Langue: en

Version: 274025 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

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)