[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

    Contains reports about mouse button up and down events.  The events
    will be sent to the application only if they are not used internally
    by Intuition.

    The Code field contains information on the specific mouse button
    event this message represents.  The Code field will be equal to
    depending on the button pressed or released.  In general, the select
    button is the left mouse button, the menu button is the right mouse
    button and the middle button is an optional third button usually
    located between the select and menu buttons.

    Often, a mouse button event has extra meaning to Intuition, and the
    application may hear about it through a more specific message, for
    example a gadget or menu event.  Other times, no event is generated
    at all, such as when the user depth-arranges a screen by clicking on
    the screen depth gadget.  Note that menu button events are normally
    consumed by Intuition for menu handling.  If an application wishes to
    hear IDCMP_MOUSEBUTTONS events for the menu button, it must set the
    WA_RMBTrap attribute for its window.  See the "Intuition  Windows"
    chapter for more information.

    Reports about mouse movements, sent in the form of x and y
    coordinates relative to the upper left corner of the window.  One
    message will be sent to the application for each "tick" of the mouse.

    The application can opt to receive IDCMP_MOUSEMOVE events only while
    certain gadgets are active, or during normal window operation.  These
    events are sent whenever a gadget with GACT_FOLLOWMOUSE gadget is
    active, or for any window that has the WA_ReportMouse attribute set.
    This window attribute can be set or cleared by the application at
    will.  See the "Intuition Windows" chapter for full details.

    Requesting IDCMP_MOUSEMOVE messages can create a very large volume of
    messages arriving at the window's IDCMP.  Do not request these
    messages unless the program is prepared to keep up with them.
    Starting in V36, Intuition limits the number of mouse move events
    that pile up at your IDCMP.

    All IDCMP messages contain a mouse x and y position that can be
    absolute values or delta values.  See IDCMP_DELTAMOVE, below.  If the
    application requires a less frequent reporting of the mouse position,
    consider using IDCMP_INTUITICKS.  While IDCMP_MOUSEMOVE events are
    generated by changes in the mouse's position, IDCMP_INTUITICKS
    IntuiMessages are based on a timer.  Since they contain mouse
    coordinates, they effectively sample the mouse position.  These
    message come often enough for many applications, but not so
    frequently as to swamp the application.

    The program will not be sent IDCMP_MOUSEMOVE messages while Intuition
    has the layers of the screen locked (during menu operations and
    window sizing/dragging).  This avoids problems of messages
    accumulating while the program is blocked, waiting to render into a
    locked layer.

    IDCMP_DELTAMOVE is not a message type, and events will never be sent
    to the application with this IDCMP identifier.  This flag is a
    modifier, which changes how mouse movements are reported.  When this
    flag is set, mouse movements are sent as delta values rather than as
    absolute positions.

    The deltas are the amount of change of the mouse position from the
    last reported position.  If the mouse does not move, then the delta
    values will be zero.

    This flag works in conjunction with the IDCMP_MOUSEMOVE flag.  When
    IDCMP_DELTAMOVE is set, IDCMP_MOUSEBUTTONS messages will also have
    relative values, instead of the absolute window position of the mouse.

    Delta mouse movements are reported even after the Intuition pointer
    has reached the limits of the display.  That is, if the pointer has
    reached the edge of the display and the user continues to move the
    mouse in the same direction, the IDCMP_MOUSEMOVE messages will
    continue to report changes in the mouse position even though the
    pointer is no longer moving.

[Back to Amiga Developer Docs]