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.  See
      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.