Pointer button events

/*      Button events are sent to report a change in pointer button
**      state.  Depending on the event type, the button is either being
**      pressed or released.
*/
typedef struct gii_pbutton_event {

        COMMON_DATA;

        uint32  button;         /* button number. This is a number, NOT a mask */

} gii_pbutton_event;

gii_pbutton_event simply specifies that the button is being pressed (type evPtrButtonPress) or released (type evPtrButtonRelease).

Pointer buttons are specified in order of common usage, with 1 being the primary button:

#define GII_PBUTTON_LEFT        1       /* Left or primary button */
#define GII_PBUTTON_PRIMARY     1
#define GII_PBUTTON_FIRST       1

#define GII_PBUTTON_RIGHT       2       /* Right/Secondary button */
#define GII_PBUTTON_SECONDARY   2
#define GII_PBUTTON_SECOND      2

#define GII_PBUTTON_MIDDLE      3       /* Middle or tertiary  */
#define GII_PBUTTON_TERTIARY    3
#define GII_PBUTTON_THIRD       3

Of course, applications should avoid hardcoding mouse button values.