LibGII event structures
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 comon 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 :man:`giiEventSend(3)`.
System Message: ERROR/3 (../ggi-core/libgii/doc/libgii.txt, line 762); backlink
Unknown interpreted text role "man".
- time
Indicates when the event in question has been generated. See
:man:`gettimeofday(2)` for more info on the timeval structure.
System Message: ERROR/3 (../ggi-core/libgii/doc/libgii.txt, line 766); backlink
Unknown interpreted text role "man".
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
:man:`gii_key_event(3)`, :man:`gii_pmove_event(3)`,
:man:`gii_pbutton_event(3)`, :man:`gii_cmd_event(3)`,
:man:`gii_val_event(3)`, :man:`gii_expose_event(3)`
System Message: ERROR/3 (../ggi-core/libgii/doc/libgii.txt, line 821); backlink
Unknown interpreted text role "man".
System Message: ERROR/3 (../ggi-core/libgii/doc/libgii.txt, line 821); backlink
Unknown interpreted text role "man".
System Message: ERROR/3 (../ggi-core/libgii/doc/libgii.txt, line 821); backlink
Unknown interpreted text role "man".
System Message: ERROR/3 (../ggi-core/libgii/doc/libgii.txt, line 821); backlink
Unknown interpreted text role "man".
System Message: ERROR/3 (../ggi-core/libgii/doc/libgii.txt, line 821); backlink
Unknown interpreted text role "man".
System Message: ERROR/3 (../ggi-core/libgii/doc/libgii.txt, line 821); backlink
Unknown interpreted text role "man".