gpm: Event Types
3.3 Event Types
===============
The 'type' field in 'Gpm_Event' is made up of bit-wide flags. The
existing bit masks belong to two groups: bare events and cooked events.
The bit-mask 'GPM_BARE_EVENTS' is provided to extract bare events, by
and-ing ('&') it with the 'type' field. For any event, exactly one bit
will be set in the resulting bitmask.
Bare events are the following:
'GPM_MOVE'
A motion event, with all buttons up.
'GPM_DRAG'
A motion event, but one or more buttons are kept pressed.
'GPM_DOWN'
A button press event. The 'buttons' field will report which
buttons are pressed after the event.
'GPM_UP'
A button release event. The 'buttons' field will report which
buttons are being released. Note that this is different from the
previous case.
'GPM_ENTER'
This means "enter in the current Region of Interest", and such
event can only happen if the high-level library is used. When the
type is 'GPM_ENTER', all the other fields are undefined.
High Level Lib.
'GPM_LEAVE'
This is only delivered by the high level library, too. Events of
type 'GPM_LEAVE' have all other fields undefined.
Cooked events are the following:
'GPM_SINGLE'
This bit may be set at button-press, drag and button release
events, and can be used to identify a single press. The time
interval used to choose a double click from two single clicks is
set by a parameter in the daemon (configurable at daemon
invocation).
'GPM_DOUBLE'
Used to identify a double click (press, drag, release)
'GPM_TRIPLE'
Used to identify a triple click (press, drag, release)
'GPM_MFLAG'
The "motion flag" is true if some dragging happened between
button-press and button-release. It can be used by those
applications which respond to events at button release. It is
available at drag and release.