'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_mouse.3x,v 1.34 2010/01/02 21:45:42 tom Exp $
+.\" $Id: curs_mouse.3x,v 1.41 2015/04/11 10:23:49 tom Exp $
.TH curs_mouse 3X ""
.na
.hy 0
\fBgetmouse\fR, \fBungetmouse\fR,
\fBmousemask\fR, \fBwenclose\fR,
\fBmouse_trafo\fR, \fBwmouse_trafo\fR,
-\fBmouseinterval\fR - mouse interface through curses
+\fBmouseinterval\fR \- mouse interface through curses
.ad
.hy
.SH SYNOPSIS
-.nf
-\fB#include <curses.h>
+\fB#include <curses.h>\fR
.PP
-\fBtypedef unsigned long mmask_t;
+\fBtypedef unsigned long mmask_t;\fR
.PP
-typedef struct
-{
- short id; \fI/* ID to distinguish multiple devices */\fB
- int x, y, z; \fI/* event coordinates */\fB
- mmask_t bstate; \fI/* button state bits */\fB
-}
-MEVENT;\fR
+.nf
+\fBtypedef struct {\fR
+\fB short id; \fR\fI/* ID to distinguish multiple devices */\fR
+\fB int x, y, z; \fR\fI/* event coordinates */\fR
+\fB mmask_t bstate; \fR\fI/* button state bits */\fR
+\fB} MEVENT;\fR
.fi
-.br
+.PP
\fBbool has_mouse(void);\fR
.br
\fBint getmouse(MEVENT *event);\fR
_
.TE
.PP
-Once a class of mouse events have been made visible in a window,
+Once a class of mouse events has been made visible in a window,
calling the \fBwgetch\fR function on that window may return
\fBKEY_MOUSE\fR as an indicator that a mouse event has been queued.
To read the event data and pop the event off the queue, call
the given state data and screen-relative character-cell coordinates.
.PP
The \fBwenclose\fR function tests whether a given pair of screen-relative
-character-cell coordinates is enclosed by a given window, returning TRUE
-if it is and FALSE otherwise.
+character-cell coordinates is enclosed by a given window, returning \fBTRUE\fP
+if it is and \fBFALSE\fP otherwise.
It is useful for determining what subset of
the screen windows enclose the location of a mouse event.
.PP
be recognized as a click.
Use \fBmouseinterval(0)\fR to disable click resolution.
This function returns the previous interval value.
-Use \fBmouseinterval(-1)\fR to obtain the interval without altering it.
+Use \fBmouseinterval(\-1)\fR to obtain the interval without altering it.
The default is one sixth of a second.
.PP
-The \fBhas_mouse\fP function returns TRUE if the mouse driver has been
+The \fBhas_mouse\fP function returns \fBTRUE\fP if the mouse driver has been
successfully initialized.
.PP
Note that mouse events will be ignored when input is in cooked mode, and will
returns an error.
If no mouse driver was initialized, or
if the mask parameter is zero,
-It also returns an error if no more events remain in the queue.
+it also returns an error if no more events remain in the queue.
.TP 5
\fBungetmouse\fP
returns an error if the FIFO is full.
.RS
\\E[?1000%?%p1%{1}%=%th%el%;
.RE
+.PP
The z member in the event structure is not presently used.
It is intended
for use with touch screens (which may be pressure-sensitive) or with
3D-mice/trackballs/power gloves.
+.PP
+The \fBALL_MOUSE_EVENTS\fP class does not include \fBREPORT_MOUSE_POSITION\fP.
+They are distinct.
+For example, in xterm,
+wheel/scrolling mice send position reports as a sequence of
+presses of buttons 4 or 5 without matching button-releases.
.SH BUGS
Mouse events under xterm will not in fact be ignored during cooked mode,
if they have been enabled by \fBmousemask\fR.
.SH SEE ALSO
\fBcurses\fR(3X),
\fBcurs_kernel\fR(3X),
-\fBcurs_slk\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
+\fBcurs_slk\fR(3X),
+\fBcurs_variables\fR(3X).