| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version |
Arguments: object buttons cursor-position
This generic function is called when the user moves the mouse
cursor within the interior (client) area of
a window,
dialog-item
,
or hotspot
.
An application may add methods to this generic function to respond to
mouse events in these objects. The built-in methods should not be
overridden, though, because they perform some standard internal tasks.
object is the window, dialog-item, or hotspot in which the event occurred.
buttons is an integer indicating which mouse buttons and shift keys were down when the event occurred. The value is the result of applying logior to the values of the following bit-flag variables:
left-mouse-button
middle-mouse-button
right-mouse-button
first-x-button
(see *ignore-mouse-x-buttons*
)
second-x-button
(see *ignore-mouse-x-buttons*
),
shift-key
control-key
alt-key
Other bits might be turned on as well, so functions such as logtest should be used to determine whether a particular mouse button or shift key was down; for example,
(logtest left-mouse-button buttons)
will return true if and only if the left mouse button was down. For "down" events, the value includes the button or key being pressed now; for "up" events, the value does not include the button or key being released.
cursor-position is a position object indicating
the location of the mouse cursor when the event occurred. It is in
"stream coordinates", which are relative to the origin of the possibly
scrolled page (canvas) of the window; pixels are the unit of distance
unless the window is a scaling-stream
. (The origin of a
stream is typically left at 0,0, which indicates the top-left corner
of the scrollable page; see stream-origin.)
Note: the value of the cursor-position argument becomes invalid when mouse-moved returns, in order to avoid the inefficiency of consing position objects for frequent mouse-moved events. If an application needs to keep this argument around to reference it after mouse-moved has returned, it should call copy-position on the value and save the copy rather than the original value.
This cursor-position restriction
also applies if an application is still using the deprecated
generic function event when the message argument is
the value of the constant mouse-moved
; in this case the
data argument is the position that must not be referenced after the
event method returns.
By default, an incoming mouse movement message will not result in a call to mouse-moved if it appears that the mouse cursor has not really moved. See ignore-redundant-mouse-moves.
See cg-events.htm for information about event handling in Common Graphics.
Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.2 page.
Created 2012.5.30.
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version |