INPUT Types Reference

Per-function autodoc pages link to these types via the type name (e.g., [List](types-input.md#list)).

Clickable inner types: inside each struct definition, field types that are themselves structs/unions/enums are clickable hyperlinks to their own definitions.

Contents

inputevent.h


IENewTablet

Source: devices/inputevent.h

Since: 3.1+


struct IENewTablet
{
    /* Pointer to a hook you wish to be called back through, in
     * order to handle scaling.  You will be provided with the
     * width and height you are expected to scale your tablet
     * to, perhaps based on some user preferences.
     * If NULL, the tablet's specified range will be mapped directly
     * to that width and height for you, and you will not be
     * called back.
     */
    struct Hook *ient_CallBack;

    /* Post-scaling coordinates and fractional coordinates.
     * DO NOT FILL THESE IN AT THE TIME THE EVENT IS WRITTEN!
     * Your driver will be called back and provided information
     * about the width and height of the area to scale the
     * tablet into.  It should scale the tablet coordinates
     * (perhaps based on some preferences controlling aspect
     * ratio, etc.) and place the scaled result into these
     * fields.  The ient_ScaledX and ient_ScaledY fields are
     * in screen-pixel resolution, but the origin ( [0,0]-point )
     * is not defined.  The ient_ScaledXFraction and
     * ient_ScaledYFraction fields represent sub-pixel position
     * information, and should be scaled to fill a UWORD fraction.
     */
    UWORD ient_ScaledX, ient_ScaledY;
    UWORD ient_ScaledXFraction, ient_ScaledYFraction;

    /* Current tablet coordinates along each axis: */
    ULONG ient_TabletX, ient_TabletY;

    /* Tablet range along each axis.  For example, if ient_TabletX
     * can take values 0-999, ient_RangeX should be 1000.
     */
    ULONG ient_RangeX, ient_RangeY;

    /* Pointer to tag-list of additional tablet attributes.
     * See  for the tag values.
     */
    struct TagItem *ient_TagList;
};


IEPointerPixel

Source: devices/inputevent.h

Since: 2.0+


struct IEPointerPixel    {
    struct Screen *iepp_Screen;   /* pointer to an open screen */
    struct {                /* pixel coordinates in iepp_Screen */
    WORD    X;
    WORD    Y;
    }           iepp_Position;
};


IEPointerTablet

Source: devices/inputevent.h

Since: 2.0+


struct IEPointerTablet  {
    struct {
    UWORD   X;
    UWORD   Y;
    }           iept_Range; /* 0 is min, these are max  */
    struct {
    UWORD   X;
    UWORD   Y;
    }           iept_Value; /* between 0 and iept_Range */

    WORD        iept_Pressure;  /* -128 to 127 (unused, set to 0)  */
};


InputEvent

Source: devices/inputevent.h

Since: 1.3+


struct InputEvent {
    struct InputEvent *ie_NextEvent; /* the chronologically next event */
    UBYTE   ie_Class;           /* the input event class */
    UBYTE   ie_SubClass;        /* optional subclass of the class */
    UWORD   ie_Code;            /* the input event code */
    UWORD   ie_Qualifier;       /* qualifiers in effect for the event*/
    union {
    struct {
        WORD    ie_x;       /* the pointer position for the event*/
        WORD    ie_y;
    } ie_xy;
    APTR    ie_addr;        /* the event address */
    struct {
        UBYTE   ie_prev1DownCode;   /* previous down keys for dead */  [2.0+]
        UBYTE   ie_prev1DownQual;   /*   key translation: the ie_Code */  [2.0+]
        UBYTE   ie_prev2DownCode;   /*   & low byte of ie_Qualifier for */  [2.0+]
        UBYTE   ie_prev2DownQual;   /*   last & second last down keys */  [2.0+]
    } ie_dead;
    } ie_position;
    TimeVal_Type ie_TimeStamp;  /* the system tick at the event */
};