(window-get-point w)
(window-get-crosshairs w)
(window-get-cross w)
These functions get a point position by mouse click; they return
(x y)
.
The following function gets a point position by mouse click. It returns
(button (x y))
where button
is 1
for the left
button, 2
for middle, 3
for right.
(window-get-click w)
The following function gets a point position by mouse click within a
specified region. It returns (button (x y))
or NIL
if the
mouse leaves the region. If boxflg
is t
, a box will be
drawn outside the region while the mouse is being tracked.
(window-track-mouse-in-region w x y sizex sizey &optional boxflg)
The following functions get a point position indicated by drawing a line
from a specified origin position to the cursor position; they return
(x y)
at the cursor position when a mouse button is clicked. The
latex
version restricts the slope of the line to be a slope that
LaTeX can draw; if flg
is non-nil
, the slope is
restricted to be a LaTeX vector
slope.
(window-get-line-position w orgx orgy)
(window-get-latex-position w orgx orgy flg)
The following function gets a position by moving a “ghost” icon,
defined by the icon drawing function fn
. This allows exact
positioning of an object by the user.
(window-get-icon-position w fn args &optional (dx 0) (dy 0))
The function fn
has arguments (fn w x y . args)
, where
x
and y
are the offset within the window w
at which
the icon is to be drawn, and args
is a list of arbitrary
arguments, e.g., the size of the icon, that are passed through to the
drawing function. The icon is drawn in xor
mode, so it must be
drawn using only “plain” drawing functions, without resetting window
attributes. The returned value is (x y)
at the cursor position
when a button is clicked. dx
and dy
, if specified, are
offsets of x
and y
from the cursor position.
The following function gets a position by moving a “ghost” box icon.
(window-get-box-position w width height &optional (dx 0) (dy 0))
By default, the lower-left corner of the box is placed at the cursor
position; dx
and dy
may be used to offset the box from the
cursor, e.g., to move the box by a different corner. The returned value
is (x y)
at the cursor position when a button is clicked.
The following function gets coordinates of a box of arbitrary size and position.
(window-get-region w)
The user first clicks for one corner of the box, moves the mouse and
clicks again for the opposite corner, then moves the box into the
desired position. The returned value is ((x y) (width height))
,
where (x y)
is the lower-left corner of the box.
The following function gets the size of a box by mouse selection,
echoing the size in pixels below the box. offsety
should be at
least 30
to leave room to display the size of the box.
(window-get-box-size w offsetx offsety)
The following function adjusts one side of a box.
(window-adjust-box-side w x y width height side)
side
specifies the side of the box to be adjusted: left
,
right
, top
, or bottom
. The result is
((x y) (width height))
for the resulting box.
(window-get-circle w &optional center:vector)
(window-get-ellipse w &optional center:vector)
These functions interactively get a circle or ellipse. For an ellipse, a
circle is gotten first for the horizontal size; then the vertical size
of the ellipse is adjusted. window-get-circle
returns
((x y) radius)
. window-get-ellipse
returns
((x y) (xradius yradius))
.
window-track-mouse
is the basic function for following the mouse
and performing some action as it moves. This function is used in the
implementation of menus and the mouse-interaction functions described in
this section.
(window-track-mouse w fn &optional outflg)
Each time the mouse position changes or a mouse button is pressed, the
function fn
is called with arguments (x y code)
where
x
and y
are the cursor position, code
is a button
code (0
if no button, 1
for the left button, 2
for
the middle button, or 3
for the right button).
window-track-mouse
continues to track the mouse until fn
returns a value other than nil
, at which time
window-track-mouse
returns that value. Usually, it is a good idea
for fn
to return a value other than nil
upon a mouse
click. If the argument outflg
is non-nil
, the function
fn
will be called for button clicks outside the window w
;
note, however, that such clicks will not be seen if the containing
window intercepts them, so that this feature will work only if the
window w
is inside another Lisp user window.