'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2010,2013 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.31 2008/11/23 00:09:53 tom Exp $
+.\" $Id: curs_mouse.3x,v 1.39 2013/06/22 18:09:42 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
+\fBint getmouse(MEVENT *event);\fR
.br
\fBint ungetmouse(MEVENT *event);\fR
.br
coordinates.
The returned state mask will have exactly one bit set to
indicate the event type.
+The corresponding data in the queue is marked invalid.
+A subsequent call to \fBgetmouse\fP will retrieve the next older
+item from the queue.
.PP
The \fBungetmouse\fR function behaves analogously to \fBungetch\fR.
It pushes
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
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.
.TP 5
\fBungetmouse\fP
returns an error if the FIFO is full.
xterm's built-in mouse-tracking API or
platform-specific drivers including
.RS
-Alessandro Rubini's gpm server.
+Alessandro Rubini's gpm server
.br
FreeBSD sysmouse
.br
.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).