IDCMP_MOUSEBUTTONS
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
SELECTDOWN, SELECTUP, MENUDOWN, MENUUP, MIDDLEDOWN or MIDDLEUP,
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.
IDCMP_MOUSEMOVE
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
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.