X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=man%2Fcurs_mouse.3x;h=0a75065f1ec906f05c034846a943389daf7b13c1;hb=fe7c48d7d5115212f09b4ec0d84b189a76953f0d;hp=16bc45df2d20966a7570aed4396c959478faa2bf;hpb=65ee0f2ca50c827bf271df7a087edd7da49f598d;p=ncurses.git diff --git a/man/curs_mouse.3x b/man/curs_mouse.3x index 16bc45df..0a75065f 100644 --- a/man/curs_mouse.3x +++ b/man/curs_mouse.3x @@ -1,6 +1,6 @@ '\" t .\"*************************************************************************** -.\" Copyright (c) 1998-2006,2008 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 * @@ -27,7 +27,7 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: curs_mouse.3x,v 1.31 2008/11/23 00:09:53 tom Exp $ +.\" $Id: curs_mouse.3x,v 1.41 2015/04/11 10:23:49 tom Exp $ .TH curs_mouse 3X "" .na .hy 0 @@ -36,27 +36,25 @@ \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 +\fB#include \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 @@ -137,7 +135,7 @@ REPORT_MOUSE_POSITION report mouse movement _ .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 @@ -149,6 +147,9 @@ x in the event structure coordinates will be screen-relative character-cell 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 @@ -156,8 +157,8 @@ a \fBKEY_MOUSE\fR event onto the input queue, and associates with that event 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 @@ -197,10 +198,10 @@ second) that can elapse between press and release events for them to 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 @@ -217,6 +218,7 @@ upon successful completion. 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. @@ -262,7 +264,7 @@ Under \fBncurses\fR(3X), these calls are implemented using either 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 @@ -281,10 +283,17 @@ corresponds to private mode 1000 of xterm: .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. @@ -307,10 +316,5 @@ the terminal description, then the terminal may send mouse events. .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).